mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-26 09:20:08 +00:00 
			
		
		
		
	Deploy PR #899 preview
This commit is contained in:
		
					parent
					
						
							
								59a4ca1692
							
						
					
				
			
			
				commit
				
					
						612f03bb2d
					
				
			
		
					 12 changed files with 53129 additions and 0 deletions
				
			
		
							
								
								
									
										29
									
								
								docs-preview-899/highlightjs/LICENSE
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								docs-preview-899/highlightjs/LICENSE
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| BSD 3-Clause License | ||||
| 
 | ||||
| Copyright (c) 2006, Ivan Sagalaev. | ||||
| All rights reserved. | ||||
| 
 | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are met: | ||||
| 
 | ||||
| * Redistributions of source code must retain the above copyright notice, this | ||||
|   list of conditions and the following disclaimer. | ||||
| 
 | ||||
| * Redistributions in binary form must reproduce the above copyright notice, | ||||
|   this list of conditions and the following disclaimer in the documentation | ||||
|   and/or other materials provided with the distribution. | ||||
| 
 | ||||
| * Neither the name of the copyright holder nor the names of its | ||||
|   contributors may be used to endorse or promote products derived from | ||||
|   this software without specific prior written permission. | ||||
| 
 | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||
| FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
| DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||
| SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||
| CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||
| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
							
								
								
									
										345
									
								
								docs-preview-899/highlightjs/highlight.pack.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										345
									
								
								docs-preview-899/highlightjs/highlight.pack.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,345 @@ | |||
| /*! | ||||
|   Highlight.js v11.9.0 (git: b7ec4bfafc) | ||||
|   (c) 2006-2023 undefined and other contributors | ||||
|   License: BSD-3-Clause | ||||
|  */ | ||||
| var hljs=function(){"use strict";function e(t){ | ||||
| return t instanceof Map?t.clear=t.delete=t.set=()=>{ | ||||
| throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{ | ||||
| throw Error("set is read-only") | ||||
| }),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{ | ||||
| const i=t[n],s=typeof i;"object"!==s&&"function"!==s||Object.isFrozen(i)||e(i) | ||||
| })),t}class t{constructor(e){ | ||||
| void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} | ||||
| ignoreMatch(){this.isMatchIgnored=!0}}function n(e){ | ||||
| return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'") | ||||
| }function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] | ||||
| ;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope | ||||
| ;class o{constructor(e,t){ | ||||
| this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ | ||||
| this.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{ | ||||
| if(e.startsWith("language:"))return e.replace("language:","language-") | ||||
| ;if(e.includes(".")){const n=e.split(".") | ||||
| ;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") | ||||
| }return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)} | ||||
| closeNode(e){s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){ | ||||
| this.buffer+=`<span class="${e}">`}}const r=(e={})=>{const t={children:[]} | ||||
| ;return Object.assign(t,e),t};class a{constructor(){ | ||||
| this.rootNode=r(),this.stack=[this.rootNode]}get top(){ | ||||
| return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ | ||||
| this.top.children.push(e)}openNode(e){const t=r({scope:e}) | ||||
| ;this.add(t),this.stack.push(t)}closeNode(){ | ||||
| if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ | ||||
| for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} | ||||
| walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ | ||||
| return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), | ||||
| t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ | ||||
| "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ | ||||
| a._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e} | ||||
| addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ | ||||
| this.closeNode()}__addSublanguage(e,t){const n=e.root | ||||
| ;t&&(n.scope="language:"+t),this.add(n)}toHTML(){ | ||||
| return new o(this,this.options).value()}finalize(){ | ||||
| return this.closeAllNodes(),!0}}function l(e){ | ||||
| return e?"string"==typeof e?e:e.source:null}function g(e){return h("(?=",e,")")} | ||||
| function u(e){return h("(?:",e,")*")}function d(e){return h("(?:",e,")?")} | ||||
| function h(...e){return e.map((e=>l(e))).join("")}function f(...e){const t=(e=>{ | ||||
| const t=e[e.length-1] | ||||
| ;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} | ||||
| })(e);return"("+(t.capture?"":"?:")+e.map((e=>l(e))).join("|")+")"} | ||||
| function p(e){return RegExp(e.toString()+"|").exec("").length-1} | ||||
| const b=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ | ||||
| ;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n | ||||
| ;let i=l(e),s="";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break} | ||||
| s+=i.substring(0,e.index), | ||||
| i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0], | ||||
| "("===e[0]&&n++)}return s})).map((e=>`(${e})`)).join(t)} | ||||
| const E="[a-zA-Z]\\w*",x="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",_="\\b(0b[01]+)",O={ | ||||
| begin:"\\\\[\\s\\S]",relevance:0},v={scope:"string",begin:"'",end:"'", | ||||
| illegal:"\\n",contains:[O]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", | ||||
| contains:[O]},N=(e,t,n={})=>{const s=i({scope:"comment",begin:e,end:t, | ||||
| contains:[]},n);s.contains.push({scope:"doctag", | ||||
| begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", | ||||
| end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) | ||||
| ;const o=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) | ||||
| ;return s.contains.push({begin:h(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s | ||||
| },S=N("//","$"),M=N("/\\*","\\*/"),R=N("#","$");var j=Object.freeze({ | ||||
| __proto__:null,APOS_STRING_MODE:v,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{ | ||||
| scope:"number",begin:_,relevance:0},BINARY_NUMBER_RE:_,COMMENT:N, | ||||
| C_BLOCK_COMMENT_MODE:M,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:"number", | ||||
| begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{ | ||||
| "on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ | ||||
| t.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E, | ||||
| MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+x,relevance:0}, | ||||
| NUMBER_MODE:{scope:"number",begin:w,relevance:0},NUMBER_RE:w, | ||||
| PHRASAL_WORDS_MODE:{ | ||||
| begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ | ||||
| },QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, | ||||
| end:/\/[gimuy]*/,contains:[O,{begin:/\[/,end:/\]/,relevance:0,contains:[O]}]}, | ||||
| RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", | ||||
| SHEBANG:(e={})=>{const t=/^#![ ]*\// | ||||
| ;return e.binary&&(e.begin=h(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t, | ||||
| end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, | ||||
| TITLE_MODE:{scope:"title",begin:E,relevance:0},UNDERSCORE_IDENT_RE:x, | ||||
| UNDERSCORE_TITLE_MODE:{scope:"title",begin:x,relevance:0}});function A(e,t){ | ||||
| "."===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){ | ||||
| void 0!==e.className&&(e.scope=e.className,delete e.className)}function T(e,t){ | ||||
| t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", | ||||
| e.__beforeBegin=A,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, | ||||
| void 0===e.relevance&&(e.relevance=0))}function L(e,t){ | ||||
| Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function B(e,t){ | ||||
| if(e.match){ | ||||
| if(e.begin||e.end)throw Error("begin & end are not supported with match") | ||||
| ;e.begin=e.match,delete e.match}}function P(e,t){ | ||||
| void 0===e.relevance&&(e.relevance=1)}const D=(e,t)=>{if(!e.beforeMatch)return | ||||
| ;if(e.starts)throw Error("beforeMatch cannot be used with starts") | ||||
| ;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] | ||||
| })),e.keywords=n.keywords,e.begin=h(n.beforeMatch,g(n.begin)),e.starts={ | ||||
| relevance:0,contains:[Object.assign(n,{endsParent:!0})] | ||||
| },e.relevance=0,delete n.beforeMatch | ||||
| },H=["of","and","for","in","not","or","if","then","parent","list","value"],C="keyword" | ||||
| ;function $(e,t,n=C){const i=Object.create(null) | ||||
| ;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{ | ||||
| Object.assign(i,$(e[n],t,n))})),i;function s(e,n){ | ||||
| t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") | ||||
| ;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){ | ||||
| return t?Number(t):(e=>H.includes(e.toLowerCase()))(e)?0:1}const z={},W=e=>{ | ||||
| console.error(e)},X=(e,...t)=>{console.log("WARN: "+e,...t)},G=(e,t)=>{ | ||||
| z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0) | ||||
| },K=Error();function F(e,t,{key:n}){let i=0;const s=e[n],o={},r={} | ||||
| ;for(let e=1;e<=t.length;e++)r[e+i]=s[e],o[e+i]=!0,i+=p(t[e-1]) | ||||
| ;e[n]=r,e[n]._emit=o,e[n]._multi=!0}function Z(e){(e=>{ | ||||
| e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, | ||||
| delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ | ||||
| _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope | ||||
| }),(e=>{if(Array.isArray(e.begin)){ | ||||
| if(e.skip||e.excludeBegin||e.returnBegin)throw W("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), | ||||
| K | ||||
| ;if("object"!=typeof e.beginScope||null===e.beginScope)throw W("beginScope must be object"), | ||||
| K;F(e,e.begin,{key:"beginScope"}),e.begin=m(e.begin,{joinWith:""})}})(e),(e=>{ | ||||
| if(Array.isArray(e.end)){ | ||||
| if(e.skip||e.excludeEnd||e.returnEnd)throw W("skip, excludeEnd, returnEnd not compatible with endScope: {}"), | ||||
| K | ||||
| ;if("object"!=typeof e.endScope||null===e.endScope)throw W("endScope must be object"), | ||||
| K;F(e,e.end,{key:"endScope"}),e.end=m(e.end,{joinWith:""})}})(e)}function V(e){ | ||||
| function t(t,n){ | ||||
| return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":"")) | ||||
| }class n{constructor(){ | ||||
| this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} | ||||
| addRule(e,t){ | ||||
| t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), | ||||
| this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) | ||||
| ;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(m(e,{joinWith:"|" | ||||
| }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex | ||||
| ;const t=this.matcherRe.exec(e);if(!t)return null | ||||
| ;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] | ||||
| ;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){ | ||||
| this.rules=[],this.multiRegexes=[], | ||||
| this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ | ||||
| if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n | ||||
| ;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), | ||||
| t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ | ||||
| return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ | ||||
| this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ | ||||
| const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex | ||||
| ;let n=t.exec(e) | ||||
| ;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ | ||||
| const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} | ||||
| return n&&(this.regexIndex+=n.position+1, | ||||
| this.regexIndex===this.count&&this.considerAll()),n}} | ||||
| if(e.compilerExtensions||(e.compilerExtensions=[]), | ||||
| e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.") | ||||
| ;return e.classNameAliases=i(e.classNameAliases||{}),function n(o,r){const a=o | ||||
| ;if(o.isCompiled)return a | ||||
| ;[I,B,Z,D].forEach((e=>e(o,r))),e.compilerExtensions.forEach((e=>e(o,r))), | ||||
| o.__beforeBegin=null,[T,L,P].forEach((e=>e(o,r))),o.isCompiled=!0;let c=null | ||||
| ;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords), | ||||
| c=o.keywords.$pattern, | ||||
| delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=$(o.keywords,e.case_insensitive)), | ||||
| a.keywordPatternRe=t(c,!0), | ||||
| r&&(o.begin||(o.begin=/\B|\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\B|\b/), | ||||
| o.end&&(a.endRe=t(a.end)), | ||||
| a.terminatorEnd=l(a.end)||"",o.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(o.end?"|":"")+r.terminatorEnd)), | ||||
| o.illegal&&(a.illegalRe=t(o.illegal)), | ||||
| o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>i(e,{ | ||||
| variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?i(e,{ | ||||
| starts:e.starts?i(e.starts):null | ||||
| }):Object.isFrozen(e)?i(e):e))("self"===e?o:e)))),o.contains.forEach((e=>{n(e,a) | ||||
| })),o.starts&&n(o.starts,r),a.matcher=(e=>{const t=new s | ||||
| ;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" | ||||
| }))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" | ||||
| }),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){ | ||||
| return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{ | ||||
| constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}} | ||||
| const Y=n,Q=i,ee=Symbol("nomatch"),te=n=>{ | ||||
| const i=Object.create(null),s=Object.create(null),o=[];let r=!0 | ||||
| ;const a="Could not find the language '{}', did you forget to load/include a language module?",l={ | ||||
| disableAutodetect:!0,name:"Plain text",contains:[]};let p={ | ||||
| ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, | ||||
| languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", | ||||
| cssSelector:"pre code",languages:null,__emitter:c};function b(e){ | ||||
| return p.noHighlightRe.test(e)}function m(e,t,n){let i="",s="" | ||||
| ;"object"==typeof t?(i=e, | ||||
| n=t.ignoreIllegals,s=t.language):(G("10.7.0","highlight(lang, code, ...args) has been deprecated."), | ||||
| G("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), | ||||
| s=e,i=t),void 0===n&&(n=!0);const o={code:i,language:s};N("before:highlight",o) | ||||
| ;const r=o.result?o.result:E(o.language,o.code,n) | ||||
| ;return r.code=o.code,N("after:highlight",r),r}function E(e,n,s,o){ | ||||
| const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(R) | ||||
| ;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(R),n="" | ||||
| ;for(;t;){n+=R.substring(e,t.index) | ||||
| ;const s=_.case_insensitive?t[0].toLowerCase():t[0],o=(i=s,N.keywords[i]);if(o){ | ||||
| const[e,i]=o | ||||
| ;if(M.addText(n),n="",c[s]=(c[s]||0)+1,c[s]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{ | ||||
| const n=_.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0] | ||||
| ;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(R)}var i | ||||
| ;n+=R.substring(e),M.addText(n)}function g(){null!=N.subLanguage?(()=>{ | ||||
| if(""===R)return;let e=null;if("string"==typeof N.subLanguage){ | ||||
| if(!i[N.subLanguage])return void M.addText(R) | ||||
| ;e=E(N.subLanguage,R,!0,S[N.subLanguage]),S[N.subLanguage]=e._top | ||||
| }else e=x(R,N.subLanguage.length?N.subLanguage:null) | ||||
| ;N.relevance>0&&(j+=e.relevance),M.__addSublanguage(e._emitter,e.language) | ||||
| })():l(),R=""}function u(e,t){ | ||||
| ""!==e&&(M.startScope(t),M.addText(e),M.endScope())}function d(e,t){let n=1 | ||||
| ;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue} | ||||
| const i=_.classNameAliases[e[n]]||e[n],s=t[n];i?u(s,i):(R=s,l(),R=""),n++}} | ||||
| function h(e,t){ | ||||
| return e.scope&&"string"==typeof e.scope&&M.openNode(_.classNameAliases[e.scope]||e.scope), | ||||
| e.beginScope&&(e.beginScope._wrap?(u(R,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), | ||||
| R=""):e.beginScope._multi&&(d(e.beginScope,t),R="")),N=Object.create(e,{parent:{ | ||||
| value:N}}),N}function f(e,n,i){let s=((e,t)=>{const n=e&&e.exec(t) | ||||
| ;return n&&0===n.index})(e.endRe,i);if(s){if(e["on:end"]){const i=new t(e) | ||||
| ;e["on:end"](n,i),i.isMatchIgnored&&(s=!1)}if(s){ | ||||
| for(;e.endsParent&&e.parent;)e=e.parent;return e}} | ||||
| if(e.endsWithParent)return f(e.parent,n,i)}function b(e){ | ||||
| return 0===N.matcher.regexIndex?(R+=e[0],1):(T=!0,0)}function m(e){ | ||||
| const t=e[0],i=n.substring(e.index),s=f(N,e,i);if(!s)return ee;const o=N | ||||
| ;N.endScope&&N.endScope._wrap?(g(), | ||||
| u(t,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(), | ||||
| d(N.endScope,e)):o.skip?R+=t:(o.returnEnd||o.excludeEnd||(R+=t), | ||||
| g(),o.excludeEnd&&(R=t));do{ | ||||
| N.scope&&M.closeNode(),N.skip||N.subLanguage||(j+=N.relevance),N=N.parent | ||||
| }while(N!==s.parent);return s.starts&&h(s.starts,e),o.returnEnd?0:t.length} | ||||
| let w={};function y(i,o){const a=o&&o[0];if(R+=i,null==a)return g(),0 | ||||
| ;if("begin"===w.type&&"end"===o.type&&w.index===o.index&&""===a){ | ||||
| if(R+=n.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`) | ||||
| ;throw t.languageName=e,t.badRule=w.rule,t}return 1} | ||||
| if(w=o,"begin"===o.type)return(e=>{ | ||||
| const n=e[0],i=e.rule,s=new t(i),o=[i.__beforeBegin,i["on:begin"]] | ||||
| ;for(const t of o)if(t&&(t(e,s),s.isMatchIgnored))return b(n) | ||||
| ;return i.skip?R+=n:(i.excludeBegin&&(R+=n), | ||||
| g(),i.returnBegin||i.excludeBegin||(R=n)),h(i,e),i.returnBegin?0:n.length})(o) | ||||
| ;if("illegal"===o.type&&!s){ | ||||
| const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"<unnamed>")+'"') | ||||
| ;throw e.mode=N,e}if("end"===o.type){const e=m(o);if(e!==ee)return e} | ||||
| if("illegal"===o.type&&""===a)return 1 | ||||
| ;if(I>1e5&&I>3*o.index)throw Error("potential infinite loop, way more iterations than matches") | ||||
| ;return R+=a,a.length}const _=O(e) | ||||
| ;if(!_)throw W(a.replace("{}",e)),Error('Unknown language: "'+e+'"') | ||||
| ;const v=V(_);let k="",N=o||v;const S={},M=new p.__emitter(p);(()=>{const e=[] | ||||
| ;for(let t=N;t!==_;t=t.parent)t.scope&&e.unshift(t.scope) | ||||
| ;e.forEach((e=>M.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{ | ||||
| if(_.__emitTokens)_.__emitTokens(n,M);else{for(N.matcher.considerAll();;){ | ||||
| I++,T?T=!1:N.matcher.considerAll(),N.matcher.lastIndex=A | ||||
| ;const e=N.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e) | ||||
| ;A=e.index+t}y(n.substring(A))}return M.finalize(),k=M.toHTML(),{language:e, | ||||
| value:k,relevance:j,illegal:!1,_emitter:M,_top:N}}catch(t){ | ||||
| if(t.message&&t.message.includes("Illegal"))return{language:e,value:Y(n), | ||||
| illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A, | ||||
| context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:k},_emitter:M};if(r)return{ | ||||
| language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:N} | ||||
| ;throw t}}function x(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{ | ||||
| const t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)} | ||||
| ;return t._emitter.addText(e),t})(e),s=t.filter(O).filter(k).map((t=>E(t,e,!1))) | ||||
| ;s.unshift(n);const o=s.sort(((e,t)=>{ | ||||
| if(e.relevance!==t.relevance)return t.relevance-e.relevance | ||||
| ;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1 | ||||
| ;if(O(t.language).supersetOf===e.language)return-1}return 0})),[r,a]=o,c=r | ||||
| ;return c.secondBest=a,c}function w(e){let t=null;const n=(e=>{ | ||||
| let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" | ||||
| ;const n=p.languageDetectRe.exec(t);if(n){const t=O(n[1]) | ||||
| ;return t||(X(a.replace("{}",n[1])), | ||||
| X("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} | ||||
| return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return | ||||
| ;if(N("before:highlightElement",{el:e,language:n | ||||
| }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) | ||||
| ;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), | ||||
| console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), | ||||
| console.warn("The element with unescaped HTML:"), | ||||
| console.warn(e)),p.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML) | ||||
| ;t=e;const i=t.textContent,o=n?m(i,{language:n,ignoreIllegals:!0}):x(i) | ||||
| ;e.innerHTML=o.value,e.dataset.highlighted="yes",((e,t,n)=>{const i=t&&s[t]||n | ||||
| ;e.classList.add("hljs"),e.classList.add("language-"+i) | ||||
| })(e,n,o.language),e.result={language:o.language,re:o.relevance, | ||||
| relevance:o.relevance},o.secondBest&&(e.secondBest={ | ||||
| language:o.secondBest.language,relevance:o.secondBest.relevance | ||||
| }),N("after:highlightElement",{el:e,result:o,text:i})}let y=!1;function _(){ | ||||
| "loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(w):y=!0 | ||||
| }function O(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]} | ||||
| function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ | ||||
| s[e.toLowerCase()]=t}))}function k(e){const t=O(e) | ||||
| ;return t&&!t.disableAutodetect}function N(e,t){const n=e;o.forEach((e=>{ | ||||
| e[n]&&e[n](t)}))} | ||||
| "undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ | ||||
| y&&_()}),!1),Object.assign(n,{highlight:m,highlightAuto:x,highlightAll:_, | ||||
| highlightElement:w, | ||||
| highlightBlock:e=>(G("10.7.0","highlightBlock will be removed entirely in v12.0"), | ||||
| G("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{p=Q(p,e)}, | ||||
| initHighlighting:()=>{ | ||||
| _(),G("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")}, | ||||
| initHighlightingOnLoad:()=>{ | ||||
| _(),G("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.") | ||||
| },registerLanguage:(e,t)=>{let s=null;try{s=t(n)}catch(t){ | ||||
| if(W("Language definition for '{}' could not be registered.".replace("{}",e)), | ||||
| !r)throw t;W(t),s=l} | ||||
| s.name||(s.name=e),i[e]=s,s.rawDefinition=t.bind(null,n),s.aliases&&v(s.aliases,{ | ||||
| languageName:e})},unregisterLanguage:e=>{delete i[e] | ||||
| ;for(const t of Object.keys(s))s[t]===e&&delete s[t]}, | ||||
| listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v, | ||||
| autoDetection:k,inherit:Q,addPlugin:e=>{(e=>{ | ||||
| e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ | ||||
| e["before:highlightBlock"](Object.assign({block:t.el},t)) | ||||
| }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ | ||||
| e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),o.push(e)}, | ||||
| removePlugin:e=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),n.debugMode=()=>{ | ||||
| r=!1},n.safeMode=()=>{r=!0},n.versionString="11.9.0",n.regex={concat:h, | ||||
| lookahead:g,either:f,optional:d,anyNumberOfTimes:u} | ||||
| ;for(const t in j)"object"==typeof j[t]&&e(j[t]);return Object.assign(n,j),n | ||||
| },ne=te({});return ne.newInstance=()=>te({}),ne}() | ||||
| ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `bash` grammar compiled for Highlight.js 11.9.0 */ | ||||
| (()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/, | ||||
| end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{ | ||||
| className:"variable",variants:[{ | ||||
| begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={ | ||||
| className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE] | ||||
| },i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),c={ | ||||
| begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, | ||||
| end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/, | ||||
| contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(o);const r={begin:/\$?\(\(/, | ||||
| end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] | ||||
| },l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 | ||||
| }),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, | ||||
| contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ | ||||
| name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, | ||||
| keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"], | ||||
| literal:["true","false"], | ||||
| built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] | ||||
| },contains:[l,e.SHEBANG(),m,r,i,c,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{ | ||||
| className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}})() | ||||
| ;hljs.registerLanguage("bash",e)})();/*! `nix` grammar compiled for Highlight.js 11.9.0 */ | ||||
| (()=>{var e=(()=>{"use strict";return e=>{const n={ | ||||
| keyword:["rec","with","let","in","inherit","assert","if","else","then"], | ||||
| literal:["true","false","or","and","null"], | ||||
| built_in:["import","abort","baseNameOf","dirOf","isNull","builtins","map","removeAttrs","throw","toString","derivation"] | ||||
| },s={className:"subst",begin:/\$\{/,end:/\}/,keywords:n},a={className:"string", | ||||
| contains:[{className:"char.escape",begin:/''\$/},s],variants:[{begin:"''", | ||||
| end:"''"},{begin:'"',end:'"'}] | ||||
| },i=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{ | ||||
| begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{ | ||||
| className:"attr",begin:/\S+/,relevance:.2}]}];return s.contains=i,{name:"Nix", | ||||
| aliases:["nixos"],keywords:n,contains:i}}})();hljs.registerLanguage("nix",e) | ||||
| })();/*! `shell` grammar compiled for Highlight.js 11.9.0 */ | ||||
| (()=>{var s=(()=>{"use strict";return s=>({name:"Shell Session", | ||||
| aliases:["console","shellsession"],contains:[{className:"meta.prompt", | ||||
| begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, | ||||
| subLanguage:"bash"}}]})})();hljs.registerLanguage("shell",s)})(); | ||||
							
								
								
									
										6
									
								
								docs-preview-899/highlightjs/loader.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								docs-preview-899/highlightjs/loader.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| /* This file is NOT part of highlight.js */ | ||||
| document.addEventListener('DOMContentLoaded', (event) => { | ||||
|     document.querySelectorAll('.programlisting, .screen').forEach((element) => { | ||||
|         hljs.highlightElement(element); | ||||
|     }); | ||||
| }); | ||||
							
								
								
									
										70
									
								
								docs-preview-899/highlightjs/mono-blue.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								docs-preview-899/highlightjs/mono-blue.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | |||
| pre code.hljs { | ||||
|     display: block; | ||||
|     overflow-x: auto; | ||||
|     padding: 1em; | ||||
| } | ||||
| code.hljs { | ||||
|     padding: 3px 5px; | ||||
| } | ||||
| /* | ||||
|   Five-color theme from a single blue hue. | ||||
| */ | ||||
| .hljs { | ||||
|     background: #eaeef3; | ||||
|     color: #00193a; | ||||
| } | ||||
| .hljs-keyword, | ||||
| .hljs-selector-tag, | ||||
| .hljs-title, | ||||
| .hljs-section, | ||||
| .hljs-doctag, | ||||
| .hljs-name, | ||||
| .hljs-strong { | ||||
|     font-weight: bold; | ||||
| } | ||||
| .hljs-comment { | ||||
|     color: var(--color-1); | ||||
| } | ||||
| .hljs-string, | ||||
| .hljs-title, | ||||
| .hljs-section, | ||||
| .hljs-built_in, | ||||
| .hljs-literal, | ||||
| .hljs-type, | ||||
| .hljs-addition, | ||||
| .hljs-tag, | ||||
| .hljs-quote, | ||||
| .hljs-name, | ||||
| .hljs-selector-id, | ||||
| .hljs-selector-class { | ||||
|     color: var(--color-2); | ||||
| } | ||||
| .hljs-meta, | ||||
| .hljs-subst, | ||||
| .hljs-symbol, | ||||
| .hljs-regexp, | ||||
| .hljs-attribute, | ||||
| .hljs-deletion, | ||||
| .hljs-variable, | ||||
| .hljs-template-variable, | ||||
| .hljs-link, | ||||
| .hljs-bullet { | ||||
|     color: var(--color-3); | ||||
| } | ||||
| .hljs-emphasis { | ||||
|     font-style: italic; | ||||
| } | ||||
| 
 | ||||
| :root { | ||||
|     --color-1: #738191; | ||||
|     --color-2: #0048ab; | ||||
|     --color-3: #4c81c9; | ||||
| } | ||||
| 
 | ||||
| @media (prefers-color-scheme: dark) { | ||||
|     :root { | ||||
|         --color-1: #8b9caf; | ||||
|         --color-2: #3b85e7; | ||||
|         --color-3: #5795e7; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										1321
									
								
								docs-preview-899/index.xhtml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1321
									
								
								docs-preview-899/index.xhtml
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										50226
									
								
								docs-preview-899/options.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50226
									
								
								docs-preview-899/options.html
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										56
									
								
								docs-preview-899/quirks.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs-preview-899/quirks.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,56 @@ | |||
| <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | ||||
|   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
|  <head> | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||||
|  <title>Appendix A. Known Issues and Quirks</title> | ||||
| <link rel="stylesheet" type="text/css" href="style.css" /> | ||||
| <script src="highlightjs/highlight.pack.js" type="text/javascript"></script><script src="highlightjs/loader.js" type="text/javascript"></script><script src="script/anchor-use.js" type="text/javascript"></script><script src="script/anchor-min.js" type="text/javascript"></script><script src="script/search.js" type="text/javascript"></script> | ||||
|  <meta name="generator" content="nixos-render-docs" /> | ||||
|  <link rel="home" href="index.xhtml" title="nvf manual" /> | ||||
|  <link rel="up" href="index.xhtml" title="nvf manual" /><link rel="prev" href="index.xhtml" title="nvf manual" /><link rel="next" href="options.html" title="Appendix B. nvf Configuration Options" /> | ||||
|  </head> | ||||
|  <body> | ||||
|   <div class="navheader"> | ||||
|    <table width="100%" summary="Navigation header"> | ||||
|     <tr> | ||||
|     <th colspan="3" align="center">Appendix A. Known Issues and Quirks</th> | ||||
|     </tr> | ||||
|     <tr> | ||||
|     <td width="20%" align="left"><a accesskey="p" href="index.xhtml">Prev</a> </td> | ||||
|     <th width="60%" align="center"> </th> | ||||
|     <td width="20%" align="right"> <a accesskey="n" href="options.html">Next</a></td> | ||||
|     </tr> | ||||
|    </table> | ||||
|    <hr /> | ||||
|   </div><div class="appendix"> <div class="titlepage">  <div>   <div>    <h1 id="ch-known-issues-quirks" class="title" >Appendix A. Known Issues and Quirks   </h1>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="chapter">  <a href="quirks.html#ch-quirks-nodejs">NodeJS</a> </span></dt> </dl></div><p>At times, certain plugins and modules may refuse to play nicely with your setup, | ||||
| be it a result of generating Lua from Nix, or the state of packaging. This page, | ||||
| in turn, will list any known modules or plugins that are known to misbehave, and | ||||
| possible workarounds that you may apply.</p><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="ch-quirks-nodejs" class="title" >NodeJS   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="quirks.html#sec-eslint-plugin-prettier">eslint-plugin-prettier</a> </span></dt> </dl></div><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-eslint-plugin-prettier" class="title" style="clear: both">eslint-plugin-prettier   </h2>  </div> </div></div><p>When working with NodeJS, everything works as expected, but some projects have | ||||
| settings that can fool nvf.</p><p>If <a class="link" href="https://github.com/prettier/eslint-plugin-prettier"  target="_top">this plugin</a> or similar | ||||
| is included, you might get a situation where your eslint configuration diagnoses | ||||
| your formatting according to its own config (usually <code class="literal">.eslintrc.js</code>).</p><p>The issue there is your formatting is made via prettierd.</p><p>This results in auto-formatting relying on your prettier config, while your | ||||
| eslint config diagnoses formatting | ||||
| <a class="link" href="https://prettier.io/docs/en/comparison.html"  target="_top">which it’s not supposed to</a>)</p><p>In the end, you get discrepancies between what your editor does and what it | ||||
| wants.</p><p>Solutions are:</p><div class="orderedlist"><ol class="orderedlist compact"  type="1"><li class="listitem"><p>Don’t add a formatting config to eslint, and separate prettier and eslint.</p></li><li class="listitem"><p>PR this repo to add an ESLint formatter and configure nvf to use it.</p></li></ol></div> | ||||
| </div> | ||||
| 
 | ||||
| </div> | ||||
| </div>  <div class="navfooter"> | ||||
|    <hr /> | ||||
|    <table width="100%" summary="Navigation footer"> | ||||
|     <tr> | ||||
|     <td width="40%" align="left"><a accesskey="p" href="index.xhtml">Prev</a> </td> | ||||
|     <td width="20%" align="center"> </td> | ||||
|     <td width="40%" align="right"> <a accesskey="n" href="options.html">Next</a></td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|      <td width="40%" align="left" valign="top">nvf manual </td> | ||||
|      <td width="20%" align="center"><a accesskey="h" href="index.xhtml">Home</a></td> | ||||
|      <td width="40%" align="right" valign="top"> Appendix B. nvf Configuration Options</td> | ||||
|     </tr> | ||||
|    </table> | ||||
|   </div> | ||||
|  </body> | ||||
| </html> | ||||
							
								
								
									
										382
									
								
								docs-preview-899/release-notes.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										382
									
								
								docs-preview-899/release-notes.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,382 @@ | |||
| <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | ||||
|   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
|  <head> | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||||
|  <title>Appendix C. Release Notes</title> | ||||
| <link rel="stylesheet" type="text/css" href="style.css" /> | ||||
| <script src="highlightjs/highlight.pack.js" type="text/javascript"></script><script src="highlightjs/loader.js" type="text/javascript"></script><script src="script/anchor-use.js" type="text/javascript"></script><script src="script/anchor-min.js" type="text/javascript"></script><script src="script/search.js" type="text/javascript"></script> | ||||
|  <meta name="generator" content="nixos-render-docs" /> | ||||
|  <link rel="home" href="index.xhtml" title="nvf manual" /> | ||||
|  <link rel="up" href="index.xhtml" title="nvf manual" /><link rel="prev" href="options.html" title="Appendix B. nvf Configuration Options" /> | ||||
|  </head> | ||||
|  <body> | ||||
|   <div class="navheader"> | ||||
|    <table width="100%" summary="Navigation header"> | ||||
|     <tr> | ||||
|     <th colspan="3" align="center">Appendix C. Release Notes</th> | ||||
|     </tr> | ||||
|     <tr> | ||||
|     <td width="20%" align="left"><a accesskey="p" href="options.html">Prev</a> </td> | ||||
|     <th width="60%" align="center"> </th> | ||||
|     <td width="20%" align="right"> </td> | ||||
|     </tr> | ||||
|    </table> | ||||
|    <hr /> | ||||
|   </div><div class="appendix"> <div class="titlepage">  <div>   <div>    <h1 id="ch-release-notes" class="title" >Appendix C. Release Notes   </h1>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.1">Release 0.1</a> </span></dt><dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.2">Release 0.2</a> </span></dt><dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.3">Release 0.3</a> </span></dt><dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.4">Release 0.4</a> </span></dt><dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.5">Release 0.5</a> </span></dt><dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.6">Release 0.6</a> </span></dt><dt> <span class="chapter">  <a href="release-notes.html#sec-release-0.7">Release 0.7</a> </span></dt> </dl></div><p>This section lists the release notes for tagged version of <span class="strong"><strong>nvf</strong></span> and the | ||||
| current main current main branch</p><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.1" class="title" >Release 0.1   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-release-0.1-changelog">Changelog</a> </span></dt> </dl></div><p>This is the current master branch and information here is not final. These are | ||||
| changes from the v0.1 tag.</p><p>Special thanks to <a class="link" href="https://github.com/nix-community/home-manager/"  target="_top">home-manager</a> | ||||
| for this release. Docs/manual generation, the new module evaluation system, and | ||||
| DAG implementation are from them.</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.1-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><p><a class="link" href="https://github.com/jordanisaacs"  target="_top">jordanisaacs</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Removed hare language support (lsp/tree-sitter/etc). <code class="literal">vim.lsp.hare</code> is no | ||||
| longer defined. If you use hare and would like it added back, please file an | ||||
| issue.</p></li><li class="listitem"><p><a class="xref" href="options.html#opt-vim.startPlugins"  ><code class="option">vim.startPlugins</code></a> & <a class="xref" href="options.html#opt-vim.optPlugins"  ><code class="option">vim.optPlugins</code></a> are now an enum of | ||||
| <code class="literal">string</code> for options sourced from the flake inputs. Users can still provide | ||||
| vim plugin packages.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>If you are contributing and adding a new plugin, add the plugin name to | ||||
| <code class="literal">availablePlugins</code> in [types-plugin.nix].</p></li></ul></div></li><li class="listitem"><p><code class="literal">neovimBuilder</code> has been removed for configuration. Using an overlay is no | ||||
| longer required. See the manual for the new way to configuration.</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Treesitter grammars are now configurable with | ||||
| <a class="xref" href="options.html#opt-vim.treesitter.grammars"  ><code class="option">vim.treesitter.grammars</code></a>. Utilizes the nixpkgs <code class="literal">nvim-treesitter</code> | ||||
| plugin rather than a custom input in order to take advantage of build support | ||||
| of pinned versions. See the <a class="link" href="https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees"  target="_top">relevant discourse post</a> for more information. | ||||
| Packages can be found under the <code class="literal">vimPlugins.nvim-treesitter.builtGrammars</code> | ||||
| namespace.</p></li><li class="listitem"><p><code class="literal">vim.configRC</code> and <a class="xref" href="options.html#opt-vim.luaConfigRC"  ><code class="option">vim.luaConfigRC</code></a> are now of type DAG lines. This | ||||
| allows for ordering of the config. Usage is the same is in home-manager’s | ||||
| <code class="literal">home.activation</code> option.</p></li></ul></div><pre><code class="programlisting nix">vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here" | ||||
| </code></pre><p><a class="link" href="https://github.com/MoritzBoehme"  target="_top">MoritzBoehme</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p><code class="literal">catppuccin</code> theme is now available as a neovim theme <a class="xref" href="options.html#opt-vim.theme.style"  ><code class="option">vim.theme.style</code></a> | ||||
| and Lualine theme <a class="xref" href="options.html#opt-vim.statusline.lualine.theme"  ><code class="option">vim.statusline.lualine.theme</code></a>.</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.2" class="title" >Release 0.2   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-release-0.2-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.2</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.2-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><p><a class="link" href="https://github.com/notashelf"  target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added two minimap plugins under <code class="literal">vim.minimap</code>. <code class="literal">codewindow.nvim</code> is enabled by | ||||
| default, while <code class="literal">minimap.vim</code> is available with its code-minimap dependency.</p></li><li class="listitem"><p>A complementary plugin, <code class="literal">obsidian.nvim</code> and the Neovim alternative for Emacs’ | ||||
| orgmode with <code class="literal">orgmode.nvim</code> have been added. Both will be disabled by default.</p></li><li class="listitem"><p>Smooth scrolling for ANY movement command is now available with | ||||
| <code class="literal">cinnamon.nvim</code></p></li><li class="listitem"><p>You will now notice a dashboard on startup. This is provided by the | ||||
| <code class="literal">alpha.nvim</code> plugin. You can use any of the three available dashboard plugins, | ||||
| or disable them entirely.</p></li><li class="listitem"><p>There is now a scrollbar on active buffers, which can highlight errors by | ||||
| hooking to your LSPs. This is on by default, but can be toggled off under | ||||
| <code class="literal">vim.visuals</code> if seen necessary.</p></li><li class="listitem"><p>Discord Rich Presence has been added through <code class="literal">presence.nvim</code> for those who | ||||
| want to flex that they are using the <span class="emphasis"><em>superior</em></span> text editor.</p></li><li class="listitem"><p>An icon picker is now available with telescope integration. You can use | ||||
| <code class="literal">:IconPickerInsert</code> or <code class="literal">:IconPickerYank</code> to add icons to your code.</p></li><li class="listitem"><p>A general-purpose cheatsheet has been added through <code class="literal">cheatsheet.nvim</code>. Forget | ||||
| no longer!</p></li><li class="listitem"><p><code class="literal">ccc.nvim</code> has been added to the default plugins to allow picking colors with | ||||
| ease.</p></li><li class="listitem"><p>Most UI components of Neovim have been replaced through the help of | ||||
| <code class="literal">noice.nvim</code>. There are also notifications and custom UI elements available | ||||
| for Neovim messages and prompts.</p></li><li class="listitem"><p>A (floating by default) terminal has been added through <code class="literal">toggleterm.nvim</code>.</p></li><li class="listitem"><p>Harness the power of ethical (<code class="literal">tabnine.nvim</code>) and not-so-ethical | ||||
| (<code class="literal">copilot.lua</code>) AI by those new assistant plugins. Both are off by default, | ||||
| TabNine needs to be wrapped before it’s working.</p></li><li class="listitem"><p>Experimental mouse gestures have been added through <code class="literal">gesture.nvim</code>. See plugin | ||||
| page and the relevant module for more details on how to use.</p></li><li class="listitem"><p>Re-open last visited buffers via <code class="literal">nvim-session-manager</code>. Disabled by default | ||||
| as deleting buffers seems to be problematic at the moment.</p></li><li class="listitem"><p>Most of NvimTree’s configuration options have been changed with some options | ||||
| being toggled to off by default.</p></li><li class="listitem"><p>Lualine had its configuration simplified and style toned down. Less color, | ||||
| more info.</p></li><li class="listitem"><p>Modules where multiple plugin configurations were in the same directory have | ||||
| been simplified. Each plugin inside a single module gets its directory to be | ||||
| imported.</p></li><li class="listitem"><p>Separate config options with the same parent attribute have been merged into | ||||
| one for simplicity.</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.3" class="title" >Release 0.3   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-release-0.3-changelog">Changelog</a> </span></dt> </dl></div><p>Release 0.3 had to come out before I wanted it to due to Neovim 0.9 dropping | ||||
| into nixpkgs-unstable. The Treesitter changes have prompted a Treesitter rework, | ||||
| which was followed by reworking the languages system. Most of the changes to | ||||
| those are downstreamed from the original repository. The feature requests that | ||||
| was originally planned for 0.3 have been moved to 0.4, which should come out | ||||
| soon.</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.3-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>We have transitioned to flake-parts, from flake-utils to extend the | ||||
| flexibility of this flake. This means the flake structure is different than | ||||
| usual, but the functionality remains the same.</p></li><li class="listitem"><p>We now provide a home-manager module. Do note that it is still far from | ||||
| perfect, but it works.</p></li><li class="listitem"><p><code class="literal">nodejs_16</code> is now bundled with <code class="literal">Copilot.lua</code> if the user has enabled Copilot | ||||
| assistant.</p></li><li class="listitem"><p>which-key section titles have been fixed. This is to be changed once again in | ||||
| a possible keybind rewrite, but now it should display the correct titles | ||||
| instead of <code class="literal">+prefix</code></p></li><li class="listitem"><p>Most of <code class="literal">presence.nvim</code>’s options have been made fully configurable through | ||||
| your configuration file.</p></li><li class="listitem"><p>Most of the modules have been refactored to separate <code class="literal">config</code> and <code class="literal">options</code> | ||||
| attributes.</p></li><li class="listitem"><p>Darwin has been deprecated as the Zig package is marked as broken. We will | ||||
| attempt to use the Zig overlay to return Darwin support.</p></li><li class="listitem"><p><code class="literal">Fidget.nvim</code> has been added as a neat visual addition for LSP installations.</p></li><li class="listitem"><p><code class="literal">diffview.nvim</code> has been added to provide a convenient diff utility.</p></li><li class="listitem"><p>Treesitter grammars are now configurable with | ||||
| <a class="xref" href="options.html#opt-vim.treesitter.grammars"  ><code class="option">vim.treesitter.grammars</code></a>. Utilizes the nixpkgs <code class="literal">nvim-treesitter</code> | ||||
| plugin rather than a custom input in order to take advantage of build support | ||||
| of pinned versions. See <a class="link" href="https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees"  target="_top">discourse</a> for more information. Packages can be | ||||
| found under the <code class="literal">pkgs.vimPlugins.nvim-treesitter.builtGrammars</code> attribute. | ||||
| Treesitter grammars for supported languages should be enabled within the | ||||
| module. By default no grammars are installed, thus the following grammars | ||||
| which do not have a language section are not included anymore: <span class="strong"><strong>comment</strong></span>, | ||||
| <span class="strong"><strong>toml</strong></span>, <span class="strong"><strong>make</strong></span>, <span class="strong"><strong>html</strong></span>, <span class="strong"><strong>css</strong></span>, <span class="strong"><strong>graphql</strong></span>, <span class="strong"><strong>json</strong></span>.</p></li><li class="listitem"><p>A new section has been added for language support: <code class="literal">vim.languages.<language></code>.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>The options <code class="literal">enableLSP</code> <a class="xref" href="options.html#opt-vim.languages.enableTreesitter"  ><code class="option">vim.languages.enableTreesitter</code></a>, etc. will | ||||
| enable the respective section for all languages that have been enabled.</p></li><li class="listitem"><p>All LSP languages have been moved here</p></li><li class="listitem"><p><code class="literal">plantuml</code> and <code class="literal">markdown</code> have been moved here</p></li><li class="listitem"><p>A new section has been added for <code class="literal">html</code>. The old | ||||
| <code class="literal">vim.treesitter.autotagHtml</code> can be found at | ||||
| <a class="xref" href="options.html#opt-vim.languages.html.treesitter.autotagHtml"  ><code class="option">vim.languages.html.treesitter.autotagHtml</code></a>.</p></li></ul></div></li><li class="listitem"><p><code class="literal">vim.git.gitsigns.codeActions</code> has been added, allowing you to turn on | ||||
| Gitsigns’ code actions.</p></li><li class="listitem"><p>Removed the plugins document in the docs. Was too unwieldy to keep updated.</p></li><li class="listitem"><p><code class="literal">vim.visual.lspkind</code> has been moved to <a class="xref" href="options.html#opt-vim.lsp.lspkind.enable"  ><code class="option">vim.lsp.lspkind.enable</code></a></p></li><li class="listitem"><p>Improved handling of completion formatting. When setting | ||||
| <code class="literal">vim.autocomplete.sources</code>, can also include optional menu mapping. And can | ||||
| provide your own function with <code class="literal">vim.autocomplete.formatting.format</code>.</p></li><li class="listitem"><p>For <code class="literal">vim.visuals.indentBlankline.fillChar</code> and | ||||
| <code class="literal">vim.visuals.indentBlankline.eolChar</code> options, turning them off should be done | ||||
| by using <code class="literal">null</code> rather than <code class="literal">""</code> now.</p></li><li class="listitem"><p>Transparency has been made optional and has been disabled by default. | ||||
| <a class="xref" href="options.html#opt-vim.theme.transparent"  ><code class="option">vim.theme.transparent</code></a> option can be used to enable or disable | ||||
| transparency for your configuration.</p></li><li class="listitem"><p>Fixed deprecated configuration method for Tokyonight, and added new style | ||||
| “moon”</p></li><li class="listitem"><p>Dart language support as well as extended flutter support has been added. | ||||
| Thanks to @FlafyDev for his contributions towards Dart language support.</p></li><li class="listitem"><p>Elixir language support has been added through <code class="literal">elixir-tools.nvim</code>.</p></li><li class="listitem"><p><code class="literal">hop.nvim</code> and <code class="literal">leap.nvim</code> have been added for fast navigation.</p></li><li class="listitem"><p><code class="literal">modes.nvim</code> has been added to the UI plugins as a minor error highlighter.</p></li><li class="listitem"><p><code class="literal">smartcollumn.nvim</code> has been added to dynamically display a colorcolumn when | ||||
| the limit has been exceeded, providing per-buftype column position and more.</p></li><li class="listitem"><p><code class="literal">project.nvim</code> has been added for better project management inside Neovim.</p></li><li class="listitem"><p>More configuration options have been added to <code class="literal">nvim-session-manager</code>.</p></li><li class="listitem"><p>Editorconfig support has been added to the core functionality, with an enable | ||||
| option.</p></li><li class="listitem"><p><code class="literal">venn-nvim</code> has been dropped due to broken keybinds.</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.4" class="title" >Release 0.4   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-release-0.4-changelog">Changelog</a> </span></dt> </dl></div><p>Following the release of v0.3, I have decided to release v0.4 with a massive new | ||||
| change: customizable keybinds. As of the 0.4 release, keybinds will no longer be | ||||
| hardcoded and instead provided by each module’s own keybinds section. The old | ||||
| keybind system (<code class="literal">vim.keybinds = {}</code>) is now considered deprecated and the new | ||||
| lib functions are recommended to be used for adding keybinds for new plugins, or | ||||
| adding keybinds to existing plugins.</p><p>Alongside customizable keybinds, there are a few quality of life updates, such | ||||
| as <code class="literal">lazygit</code> integration and the new experimental Lua loader of Neovim 0.9 | ||||
| thanks to our awesome contributors who made this update possible during my | ||||
| absence.</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.4-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><p><a class="link" href="https://github.com/n3oney"  target="_top">n3oney</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Streamlined keybind adding process towards new functions in extended stdlib.</p></li><li class="listitem"><p>Moved default keybinds into keybinds section of each module</p></li><li class="listitem"><p>Simplified luaConfigRC and configRC setting - they can now just take strings</p></li><li class="listitem"><p>Refactored the resolveDag function - you can just provide a string now, which | ||||
| will default to dag.entryAnywhere</p></li><li class="listitem"><p>Fixed formatting sometimes removing parts of files</p></li><li class="listitem"><p>Made formatting synchronous</p></li><li class="listitem"><p>Gave null-ls priority over other formatters</p></li></ul></div><p><a class="link" href="https://github.com/horriblename"  target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added <code class="literal">clangd</code> as alternative lsp for C/++.</p></li><li class="listitem"><p>Added <code class="literal">toggleterm</code> integration for <code class="literal">lazygit</code>.</p></li><li class="listitem"><p>Added new option <code class="literal">enableluaLoader</code> to enable neovim’s experimental module | ||||
| loader for faster startup time.</p></li><li class="listitem"><p>Fixed bug where flutter-tools can’t find <code class="literal">dart</code> LSP</p></li><li class="listitem"><p>Added Debug Adapter (DAP) support for clang, rust, go, python and dart.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf"  target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Made Copilot’s Node package configurable. It is recommended to keep as | ||||
| default, but providing a different NodeJS version is now possible.</p></li><li class="listitem"><p>Added <code class="literal">vim.cursorlineOpt</code> for configuring Neovim’s <code class="literal">vim.o.cursorlineopt</code>.</p></li><li class="listitem"><p>Added <code class="literal">filetree.nvimTreeLua.view.cursorline</code>, default false, to enable | ||||
| cursorline in nvimtre.</p></li><li class="listitem"><p>Added Fidget.nvim support for the Catppuccin theme.</p></li><li class="listitem"><p>Updated bundled NodeJS version used by <code class="literal">Copilot.lua</code>. v16 is now marked as | ||||
| insecure on Nixpkgs, and we updated to v18</p></li><li class="listitem"><p>Enabled Catppuccin modules for plugins available by default.</p></li><li class="listitem"><p>Added experimental Svelte support under <code class="literal">vim.languages</code>.</p></li><li class="listitem"><p>Removed unnecessary scrollbar element from notifications and codeaction | ||||
| warning UI.</p></li><li class="listitem"><p><code class="literal">vim.utility.colorizer</code> has been renamed to <code class="literal">vim.utility.ccc</code> after the plugin | ||||
| it uses</p></li><li class="listitem"><p>Color preview via <code class="literal">nvim-colorizer.lua</code></p></li><li class="listitem"><p>Updated Lualine statusline UI</p></li><li class="listitem"><p>Added vim-illuminate for smart highlighting</p></li><li class="listitem"><p>Added a module for enabling Neovim’s spellchecker</p></li><li class="listitem"><p>Added prettierd as an alternative formatter to prettier - currently defaults | ||||
| to prettier</p></li><li class="listitem"><p>Fixed presence.nvim inheriting the wrong client id</p></li><li class="listitem"><p>Cleaned up documentation</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.5" class="title" >Release 0.5   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-release-0.5-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.5</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.5-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><p><a class="link" href="https://github.com/vagahbond"  target="_top">vagahbond</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added phan language server for PHP</p></li><li class="listitem"><p>Added phpactor language server for PHP</p></li></ul></div><p><a class="link" href="https://github.com/horriblename"  target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added transparency support for tokyonight theme</p></li><li class="listitem"><p>Fixed a bug where cmp’s close and scrollDocs mappings wasn’t working</p></li><li class="listitem"><p>Streamlined and simplified extra plugin API with the addition of | ||||
| <a class="xref" href="options.html#opt-vim.extraPlugins"  ><code class="option">vim.extraPlugins</code></a></p></li><li class="listitem"><p>Allow using command names in place of LSP packages to avoid automatic | ||||
| installation</p></li><li class="listitem"><p>Add lua LSP and Treesitter support, and neodev.nvim plugin support</p></li><li class="listitem"><p>Add <a class="xref" href="options.html#opt-vim.lsp.mappings.toggleFormatOnSave"  ><code class="option">vim.lsp.mappings.toggleFormatOnSave</code></a> keybind</p></li></ul></div><p><a class="link" href="https://github.com/amanse"  target="_top">amanse</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added daily notes options for obsidian plugin</p></li><li class="listitem"><p>Added <code class="literal">jdt-language-server</code> for Java</p></li></ul></div><p><a class="link" href="https://github.com/yavko"  target="_top">yavko</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added Deno Language Server for Javascript/Typescript</p></li><li class="listitem"><p>Added support for multiple languages under <code class="literal">vim.spellChecking.languages</code>, and | ||||
| added vim-dirtytalk through <code class="literal">vim.spellChecking.enableProgrammingWordList</code></p></li></ul></div><p><a class="link" href="https://github.com/FrothyMarrow"  target="_top">frothymarrow</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Renamed <code class="literal">vim.visuals.cursorWordline</code> to <code class="literal">vim.visuals.cursorline.enable</code></p></li><li class="listitem"><p>Added <code class="literal">vim.visuals.cursorline.lineNumbersOnly</code> to display cursorline only in | ||||
| the presence of line numbers</p></li><li class="listitem"><p>Added Oxocarbon to the list of available themes.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf"  target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added GitHub Copilot to nvim-cmp completion sources.</p></li><li class="listitem"><p>Added <a class="xref" href="options.html#opt-vim.ui.borders.enable"  ><code class="option">vim.ui.borders.enable</code></a> for global and individual plugin border | ||||
| configuration.</p></li><li class="listitem"><p>LSP integrated breadcrumbs with <a class="xref" href="options.html#opt-vim.ui.breadcrumbs.enable"  ><code class="option">vim.ui.breadcrumbs.enable</code></a> through | ||||
| nvim-navic</p></li><li class="listitem"><p>LSP navigation helper with nvim-navbuddy, depends on nvim-navic (automatically | ||||
| enabled if navic is enabled)</p></li><li class="listitem"><p>Added nvim-navic integration for Catppuccin theme</p></li><li class="listitem"><p>Fixed mismatching Zig language description</p></li><li class="listitem"><p>Added support for <code class="literal">statix</code> and <code class="literal">deadnix</code> through | ||||
| <a class="xref" href="options.html#opt-vim.languages.nix.extraDiagnostics.types"  ><code class="option">vim.languages.nix.extraDiagnostics.types</code></a></p></li><li class="listitem"><p>Added <code class="literal">lsp_lines</code> plugin for showing diagnostic messages</p></li><li class="listitem"><p>Added a configuration option for choosing the leader key</p></li><li class="listitem"><p>The package used for neovim is now customizable by the user, using | ||||
| <a class="xref" href="options.html#opt-vim.package"  ><code class="option">vim.package</code></a>. For best results, always use an unwrapped package</p></li><li class="listitem"><p>Added highlight-undo plugin for highlighting undo/redo targets</p></li><li class="listitem"><p>Added bash LSP and formatter support</p></li><li class="listitem"><p>Disabled Lualine LSP status indicator for Toggleterm buffer</p></li><li class="listitem"><p>Added <code class="literal">nvim-docs-view</code>, a plugin to display LSP hover documentation in a side | ||||
| panel</p></li><li class="listitem"><p>Switched to <code class="literal">nixosOptionsDoc</code> in option documentation. To quote home-manager | ||||
| commit: “Output is mostly unchanged aside from some minor typographical and | ||||
| formatting changes, along with better source links.”</p></li><li class="listitem"><p>Updated indent-blankine.nvim to v3 - this comes with a few option changes, | ||||
| which will be migrated with <code class="literal">renamedOptionModule</code></p></li></ul></div><p><a class="link" href="https://poz.pet"  target="_top">poz</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Fixed scrollOffset not being used</p></li><li class="listitem"><p>Updated clangd to 16</p></li><li class="listitem"><p>Disabled <code class="literal">useSystemClipboard</code> by default</p></li></ul></div><p><a class="link" href="https://github.com/ksonj"  target="_top">ksonj</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Add support to change mappings to utility/surround</p></li><li class="listitem"><p>Add black-and-isort python formatter</p></li><li class="listitem"><p>Removed redundant “Enable …” in <code class="literal">mkEnableOption</code> descriptions</p></li><li class="listitem"><p>Add options to modify LSP key bindings and add proper which-key descriptions</p></li><li class="listitem"><p>Changed type of <code class="literal">statusline.lualine.activeSection</code> and | ||||
| <code class="literal">statusline.lualine.inactiveSection</code> from <code class="literal">attrsOf str</code> to | ||||
| <code class="literal">attrsOf (listOf str)</code></p></li><li class="listitem"><p>Added <code class="literal">statusline.lualine.extraActiveSection</code> and | ||||
| <code class="literal">statusline.lualine.extraInactiveSection</code></p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.6" class="title" >Release 0.6   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-breaking-changes-and-migration-guide">Breaking Changes and Migration Guide</a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-release-0.6-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.6</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-breaking-changes-and-migration-guide" class="title" style="clear: both">Breaking Changes and Migration Guide   </h2>  </div> </div></div><p>In v0.6 we are introducing <code class="literal">setupOpts</code>: many plugin related options are moved | ||||
| into their respective <code class="literal">setupOpts</code> submodule, e.g. <code class="literal">nvimTree.disableNetrw</code> is | ||||
| renamed to <code class="literal">nvimTree.setupOpts.disable_netrw</code>.</p><p><span class="emphasis"><em>Why?</em></span> in short, you can now pass in anything to setupOpts and it will be passed | ||||
| to your <code class="literal">require'plugin'.setup{...}</code>. No need to wait for us to support every | ||||
| single plugin option.</p><p>The warnings when you rebuild your config should be enough to guide you through | ||||
| what you need to do, if there’s an option that was renamed but wasn’t listed in | ||||
| the warning, please file a bug report!</p><p>To make your migration process less annoying, here’s a keybind that will help | ||||
| you with renaming stuff from camelCase to snake_case (you’ll be doing that a | ||||
| lot):</p><pre><code class="programlisting lua">-- paste this in a temp.lua file and load it in vim with :source /path/to/temp.lua | ||||
| function camelToSnake() | ||||
|     -- Get the current word under the cursor | ||||
|     local word = vim.fn.expand("<cword>") | ||||
|     -- Replace each capital letter with an underscore followed by its lowercase equivalent | ||||
|     local snakeCase = string.gsub(word, "%u", function(match) | ||||
|         return "_" .. string.lower(match) | ||||
|     end) | ||||
|     -- Remove the leading underscore if present | ||||
|     if string.sub(snakeCase, 1, 1) == "_" then | ||||
|         snakeCase = string.sub(snakeCase, 2) | ||||
|     end | ||||
|     vim.fn.setreg(vim.v.register, snakeCase) | ||||
|     -- Select the word under the cursor and paste | ||||
|     vim.cmd("normal! viwP") | ||||
| end | ||||
| 
 | ||||
| vim.api.nvim_set_keymap('n', '<leader>a', ':lua camelToSnake()<CR>', { noremap = true, silent = true }) | ||||
| </code></pre> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.6-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><p><a class="link" href="https://github.com/ksonj"  target="_top">ksonj</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added Terraform language support.</p></li><li class="listitem"><p>Added <code class="literal">ChatGPT.nvim</code>, which can be enabled with | ||||
| <a class="xref" href="options.html#opt-vim.assistant.chatgpt.enable"  ><code class="option">vim.assistant.chatgpt.enable</code></a>. Do keep in mind that this option | ||||
| requires <code class="literal">OPENAI_API_KEY</code> environment variable to be set.</p></li></ul></div><p><a class="link" href="https://github.com/donnerinoern"  target="_top">donnerinoern</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added Gruvbox theme.</p></li><li class="listitem"><p>Added marksman LSP for Markdown.</p></li><li class="listitem"><p>Fixed markdown preview with Glow not working and added an option for changing | ||||
| the preview keybind.</p></li><li class="listitem"><p>colorizer.nvim: switched to a maintained fork.</p></li><li class="listitem"><p>Added <code class="literal">markdown-preview.nvim</code>, moved <code class="literal">glow.nvim</code> to a brand new | ||||
| <code class="literal">vim.utility.preview</code> category.</p></li></ul></div><p><a class="link" href="https://github.com/elijahimmer"  target="_top">elijahimmer</a></p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Added rose-pine theme.</p></li></ul></div><p><a class="link" href="https://poz.pet"  target="_top">poz</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Added <code class="literal">vim.autocomplete.alwaysComplete</code>. Allows users to have the autocomplete | ||||
| window popup only when manually activated.</p></li></ul></div><p><a class="link" href="https://github.com/horriblename"  target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Fixed empty winbar when breadcrumbs are disabled.</p></li><li class="listitem"><p>Added custom <code class="literal">setupOpts</code> for various plugins.</p></li><li class="listitem"><p>Removed support for deprecated plugin “nvim-compe”.</p></li><li class="listitem"><p>Moved most plugins to <code class="literal">setupOpts</code> method.</p></li></ul></div><p><a class="link" href="https://github.com/frothymarrow"  target="_top">frothymarrow</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added option <code class="literal">vim.luaPackages</code> to wrap neovim with extra Lua packages.</p></li><li class="listitem"><p>Rewrote the entire <code class="literal">fidget.nvim</code> module to include extensive configuration | ||||
| options. Option <code class="literal">vim.fidget-nvim.align.bottom</code> has been removed in favor of | ||||
| <code class="literal">vim.fidget-nvim.notification.window.align</code>, which now supports <code class="literal">top</code> and | ||||
| <code class="literal">bottom</code> values. <code class="literal">vim.fidget-nvim.align.right</code> has no longer any equivalent | ||||
| and also has been removed.</p></li><li class="listitem"><p><code class="literal">which-key.nvim</code> categories can now be customized through | ||||
| <a class="link" href="options.html#opt-vim.binds.whichKey.register"  >vim.binds.whichKey.register</a></p></li><li class="listitem"><p>Added <code class="literal">magick</code> to <code class="literal">vim.luaPackages</code> for <code class="literal">image.nvim</code>.</p></li><li class="listitem"><p>Added <code class="literal">alejandra</code> to the default devShell.</p></li><li class="listitem"><p>Migrated neovim-flake to <code class="literal">makeNeovimUnstable</code> wrapper.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf"  target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Finished moving to <code class="literal">nixosOptionsDoc</code> in the documentation and changelog. All | ||||
| documentation options and files are fully free of Asciidoc, and will now use | ||||
| Nixpkgs flavored markdown.</p></li><li class="listitem"><p>Bumped plugin inputs to their latest versions.</p></li><li class="listitem"><p>Deprecated <code class="literal">presence.nvim</code> in favor of <code class="literal">neocord</code>. This means | ||||
| <code class="literal">vim.rich-presence.presence-nvim</code> is removed and will throw a warning if used. | ||||
| You are recommended to rewrite your neocord configuration from scratch based | ||||
| on the. <a class="link" href="https://github.com/IogaMaster/neocord"  target="_top">official documentation</a></p></li><li class="listitem"><p>Removed Tabnine plugin due to the usage of imperative tarball downloads. If | ||||
| you’d like to see it back, please create an issue.</p></li><li class="listitem"><p>Added support for css and tailwindcss through | ||||
| vscode-language-servers-extracted & tailwind-language-server. Those can be | ||||
| enabled through <code class="literal">vim.languages.css</code> and <code class="literal">vim.languages.tailwind</code>.</p></li><li class="listitem"><p>Lualine module now allows customizing <code class="literal">always_divide_middle</code>, <code class="literal">ignore_focus</code> | ||||
| and <code class="literal">disabled_filetypes</code> through the new options: | ||||
| <a class="link" href="options.html#opt-vim.statusline.lualine.alwaysDivideMiddle"  >vim.statusline.lualine.alwaysDivideMiddle</a>, | ||||
| <a class="link" href="options.html#opt-vim.statusline.lualine.ignoreFocus"  >vim.statusline.lualine.ignoreFocus</a> | ||||
| and | ||||
| <a class="link" href="options.html#opt-vim.statusline.lualine.disabledFiletypes"  >vim.statusline.lualine.disabledFiletypes</a>.</p></li><li class="listitem"><p>Updated all plugin inputs to their latest versions (<span class="strong"><strong>21.04.2024</strong></span>) - this | ||||
| brought minor color changes to the Catppuccin theme.</p></li><li class="listitem"><p>Moved home-manager module entrypoint to <code class="literal">flake/modules</code> and added an | ||||
| experimental Nixos module. This requires further testing before it can be | ||||
| considered ready for use.</p></li><li class="listitem"><p>Made lib calls explicit. E.g. <code class="literal">lib.strings.optionalString</code> instead of | ||||
| <code class="literal">lib.optionalString</code>. This is a pattern expected to be followed by all | ||||
| contributors in the future.</p></li><li class="listitem"><p>Added <code class="literal">image.nvim</code> for image previews.</p></li><li class="listitem"><p>The final neovim package is now exposed. This means you can build the neovim | ||||
| package that will be added to your package list without rebuilding your system | ||||
| to test if your configuration yields a broken package.</p></li><li class="listitem"><p>Changed the tree structure to distinguish between core options and plugin | ||||
| options.</p></li><li class="listitem"><p>Added plugin auto-discovery from plugin inputs. This is mostly from | ||||
| <a class="link" href="https://github.com/jordanisaacs/neovim-flake"  target="_top">JordanIsaac’s neovim-flake</a>. | ||||
| Allows contributors to add plugin inputs with the <code class="literal">plugin-</code> prefix to have | ||||
| them automatically discovered for the <code class="literal">plugin</code> type in <code class="literal">lib/types</code>.</p></li><li class="listitem"><p>Moved internal <code class="literal">wrapLuaConfig</code> to the extended library, structured its | ||||
| arguments to take <code class="literal">luaBefore</code>, <code class="literal">luaConfig</code> and <code class="literal">luaAfter</code> as strings, which | ||||
| are then concatted inside a lua block.</p></li><li class="listitem"><p>Added <a class="xref" href="options.html#opt-vim.luaConfigPre"  ><code class="option">vim.luaConfigPre</code></a> and <a class="xref" href="options.html#opt-vim.luaConfigPost"  ><code class="option">vim.luaConfigPost</code></a> for inserting | ||||
| verbatim Lua configuration before and after the resolved Lua DAG respectively. | ||||
| Both of those options take strings as the type, so you may read the contents | ||||
| of a Lua file from a given path.</p></li><li class="listitem"><p>Added <code class="literal">vim.spellchecking.ignoredFiletypes</code> and | ||||
| <code class="literal">vim.spellChecking.programmingWordlist.enable</code> for ignoring certain filetypes | ||||
| in spellchecking and enabling <code class="literal">vim-dirtytalk</code> respectively. The previously | ||||
| used <code class="literal">vim.spellcheck.vim-dirtytalk</code> aliases to the latter option.</p></li><li class="listitem"><p>Exposed <code class="literal">withRuby</code>, <code class="literal">withNodeJs</code>, <code class="literal">withPython3</code>, and <code class="literal">python3Packages</code> from | ||||
| the <code class="literal">makeNeovimConfig</code> function under their respective options.</p></li><li class="listitem"><p>Added <a class="xref" href="options.html#opt-vim.extraPackages"  ><code class="option">vim.extraPackages</code></a> for appending additional packages to the | ||||
| wrapper PATH, making said packages available while inside the Neovim session.</p></li><li class="listitem"><p>Made Treesitter options configurable, and moved treesitter-context to | ||||
| <code class="literal">setupOpts</code> while it is enabled.</p></li><li class="listitem"><p>Added <a class="xref" href="options.html#opt-vim.notify.nvim-notify.setupOpts.render"  ><code class="option">vim.notify.nvim-notify.setupOpts.render</code></a> which takes either a | ||||
| string of enum, or a Lua function. The default is “compact”, but you may | ||||
| change it according to nvim-notify documentation.</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="chapter"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.7" class="title" >Release 0.7   </h2>  </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-breaking-changes-and-migration-guide-0-7">Breaking Changes and Migration Guide</a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-release-0.7-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.7</p><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-breaking-changes-and-migration-guide-0-7" class="title" style="clear: both">Breaking Changes and Migration Guide   </h2>  </div> </div></div><div class="toc"> <dl class="toc">  <dt> <span class="section">  <a href="release-notes.html#sec-vim-configrc-removed"><code class="literal">vim.configRC</code> removed</a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-vim-maps-rewrite"><code class="literal">vim.maps</code> rewrite</a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-nvim-code-action-menu-deprecation"><code class="literal">vim.lsp.nvimCodeActionMenu</code> removed in favor of <code class="literal">vim.ui.fastaction</code></a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-type-based-modules-removed"><code class="literal">type</code> based modules removed</a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-nixpkgs-fmt-deprecation"><code class="literal">nixpkgs-fmt</code> removed in favor of <code class="literal">nixfmt</code></a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-leader-changes">leader changes</a> </span></dt><dt> <span class="section">  <a href="release-notes.html#sec-vim-opt-changes"><code class="literal">vim.*</code> changes</a> </span></dt> </dl></div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-vim-configrc-removed" class="title" ><code class="literal">vim.configRC</code> removed   </h3>  </div> </div></div><p>In v0.7 we are removing <code class="literal">vim.configRC</code> in favor of making <code class="literal">vim.luaConfigRC</code> the | ||||
| top-level DAG, and thereby making the entire configuration Lua based. This | ||||
| change introduces a few breaking changes:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p><code class="literal">vim.configRC</code> has been removed, which means that you have to convert all of | ||||
| your custom vimscript-based configuration to Lua. As for how to do that, you | ||||
| will have to consult the Neovim documentation and your search engine.</p></li><li class="listitem"><p>After migrating your Vimscript-based configuration to Lua, you might not be | ||||
| able to use the same entry names in <code class="literal">vim.luaConfigRC</code>, because those have also | ||||
| slightly changed. See the new <a class="link" href="/index.xhtml#ch-dag-entries"  target="_top">DAG entries in nvf manual</a> for more details.</p></li></ul></div><p><span class="strong"><strong>Why?</strong></span></p><p>Neovim being an aggressive refactor of Vim, is designed to be mainly Lua based; | ||||
| making good use of its extensive Lua API. Additionally, Vimscript is slow and | ||||
| brings unnecessary performance overhead while working with different | ||||
| configuration formats.</p> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-vim-maps-rewrite" class="title" ><code class="literal">vim.maps</code> rewrite   </h3>  </div> </div></div><p>Instead of specifying map modes using submodules (e.g., <code class="literal">vim.maps.normal</code>), a | ||||
| new <code class="literal">vim.keymaps</code> submodule with support for a <code class="literal">mode</code> option has been | ||||
| introduced. It can be either a string, or a list of strings, where a string | ||||
| represents the short-name of the map mode(s), that the mapping should be set | ||||
| for. See <code class="literal">:help map-modes</code> for more information.</p><p>For example:</p><pre><code class="programlisting nix">vim.maps.normal."<leader>m" = { ... }; | ||||
| </code></pre><p>has to be replaced by</p><pre><code class="programlisting nix">vim.keymaps = [ | ||||
|   { | ||||
|     key = "<leader>m"; | ||||
|     mode = "n"; | ||||
|   } | ||||
|   ... | ||||
| ]; | ||||
| </code></pre> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-nvim-code-action-menu-deprecation" class="title" ><code class="literal">vim.lsp.nvimCodeActionMenu</code> removed in favor of <code class="literal">vim.ui.fastaction</code>   </h3>  </div> </div></div><p>The nvim-code-action-menu plugin has been archived and broken for a long time, | ||||
| so it’s being replaced with a young, but better alternative called | ||||
| fastaction.nvim. Simply remove everything set under | ||||
| <code class="literal">vim.lsp.nvimCodeActionMenu</code>, and set <code class="literal">vim.ui.fastaction.enable</code> to <code class="literal">true</code>.</p><p>Note that we are looking to add more alternatives in the future like | ||||
| dressing.nvim and actions-preview.nvim, in case fastaction doesn’t work for | ||||
| everyone.</p> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-type-based-modules-removed" class="title" ><code class="literal">type</code> based modules removed   </h3>  </div> </div></div><p>As part of the autocompletion rewrite, modules that used to use a <code class="literal">type</code> option | ||||
| have been replaced by per-plugin modules instead. Since both modules only had | ||||
| one type, you can simply change</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p><code class="literal">vim.autocomplete.*</code> -> <code class="literal">vim.autocomplete.nvim-cmp.*</code></p></li><li class="listitem"><p><code class="literal">vim.autopairs.enable</code> -> <code class="literal">vim.autopairs.nvim-autopairs.enable</code></p></li></ul></div> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-nixpkgs-fmt-deprecation" class="title" ><code class="literal">nixpkgs-fmt</code> removed in favor of <code class="literal">nixfmt</code>   </h3>  </div> </div></div><p><code class="literal">nixpkgs-fmt</code> has been archived for a while, and it’s finally being removed in | ||||
| favor of nixfmt (more information can be found | ||||
| <a class="link" href="https://github.com/nix-community/nixpkgs-fmt?tab=readme-ov-file#nixpkgs-fmt---nix-code-formatter-for-nixpkgs"  target="_top">here</a>.</p><p>To migrate to <code class="literal">nixfmt</code>, simply change <code class="literal">vim.languages.nix.format.type</code> to | ||||
| <code class="literal">nixfmt</code>.</p> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-leader-changes" class="title" >leader changes   </h3>  </div> </div></div><p>This has been deprecated in favor of using the more generic <code class="literal">vim.globals</code> (you | ||||
| can use <code class="literal">vim.globals.mapleader</code> to change this instead).</p><p>Rust specific keymaps now use <code class="literal">maplocalleader</code> instead of <code class="literal">localleader</code> by | ||||
| default. This is to avoid conflicts with other modules. You can change | ||||
| <code class="literal">maplocalleader</code> with <code class="literal">vim.globals.maplocalleader</code>, but it’s recommended to set | ||||
| it to something other than <code class="literal">mapleader</code> to avoid conflicts.</p> | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h3 id="sec-vim-opt-changes" class="title" ><code class="literal">vim.*</code> changes   </h3>  </div> </div></div><p>Inline with the <a class="link" href="release-notes.html#sec-leader-changes" title="leader changes" >leader changes</a>, we have removed some | ||||
| options that were under <code class="literal">vim</code> as convenient shorthands for <code class="literal">vim.o.*</code> options.</p><div class="warning"><h3 class="title">Warning</h3><p>As v0.7 features the addition of <a class="xref" href="options.html#opt-vim.options"  ><code class="option">vim.options</code></a>, those options are now | ||||
| considered as deprecated. You should migrate to the appropriate options in the | ||||
| <code class="literal">vim.options</code> submodule.</p></div><p>The changes are, in no particular order:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p><code class="literal">colourTerm</code>, <code class="literal">mouseSupport</code>, <code class="literal">cmdHeight</code>, <code class="literal">updateTime</code>, <code class="literal">mapTime</code>, | ||||
| <code class="literal">cursorlineOpt</code>, <code class="literal">splitBelow</code>, <code class="literal">splitRight</code>, <code class="literal">autoIndent</code> and <code class="literal">wordWrap</code> have | ||||
| been mapped to their <a class="xref" href="options.html#opt-vim.options"  ><code class="option">vim.options</code></a> equivalents. Please see the module | ||||
| definition for the updated options.</p></li><li class="listitem"><p><code class="literal">tabWidth</code> has been <span class="strong"><strong>removed</strong></span> as it lead to confusing behaviour. You can | ||||
| replicate the same functionality by setting <code class="literal">shiftwidth</code>, <code class="literal">tabstop</code> and | ||||
| <code class="literal">softtabstop</code> under <code class="literal">vim.options</code> as you see fit.</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div><div class="section"> <div class="titlepage">  <div>   <div>    <h2 id="sec-release-0.7-changelog" class="title" style="clear: both">Changelog   </h2>  </div> </div></div><p><a class="link" href="https://github.com/ItsSorae"  target="_top">ItsSorae</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add support for <a class="link" href="https://typst.app/"  target="_top">typst</a> under <code class="literal">vim.languages.typst</code> This | ||||
| will enable the <code class="literal">typst-lsp</code> language server, and the <code class="literal">typstfmt</code> formatter</p></li></ul></div><p><a class="link" href="https://github.com/frothymarrow"  target="_top">frothymarrow</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Modified type for | ||||
| <a class="xref" href="options.html#opt-vim.visuals.fidget-nvim.setupOpts.progress.display.overrides"  ><code class="option">vim.visuals.fidget-nvim.setupOpts.progress.display.overrides</code></a> from | ||||
| <code class="literal">anything</code> to a <code class="literal">submodule</code> for better type checking.</p></li><li class="listitem"><p>Fix null <code class="literal">vim.lsp.mappings</code> generating an error and not being filtered out.</p></li><li class="listitem"><p>Add basic transparency support for <code class="literal">oxocarbon</code> theme by setting the highlight | ||||
| group for <code class="literal">Normal</code>, <code class="literal">NormalFloat</code>, <code class="literal">LineNr</code>, <code class="literal">SignColumn</code> and optionally | ||||
| <code class="literal">NvimTreeNormal</code> to <code class="literal">none</code>.</p></li><li class="listitem"><p>Fix <a class="xref" href="options.html#opt-vim.ui.smartcolumn.setupOpts.custom_colorcolumn"  ><code class="option">vim.ui.smartcolumn.setupOpts.custom_colorcolumn</code></a> using the wrong | ||||
| type <code class="literal">int</code> instead of the expected type <code class="literal">string</code>.</p></li></ul></div><p><a class="link" href="https://github.com/horriblename"  target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Fix broken treesitter-context keybinds in visual mode</p></li><li class="listitem"><p>Deprecate use of <code class="literal">__empty</code> to define empty tables in Lua. Empty attrset are no | ||||
| longer filtered and thus should be used instead.</p></li><li class="listitem"><p>Add dap-go for better dap configurations</p></li><li class="listitem"><p>Make noice.nvim customizable</p></li><li class="listitem"><p>Standardize border style options and add custom borders</p></li><li class="listitem"><p>Remove <code class="literal">vim.disableDefaultRuntimePaths</code> in wrapper options.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>As nvf uses <code class="literal">$NVIM_APP_NAME</code> as of recent changes, we can safely assume any | ||||
| configuration in <code class="literal">$XDG_CONFIG_HOME/nvf</code> is intentional.</p></li></ul></div></li></ul></div><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Switch from <a class="link" href="https://github.com/simrat39/rust-tools.nvim"  target="_top">rust-tools.nvim</a> to the more feature-packed <a class="link" href="https://github.com/mrcjkb/rustaceanvim"  target="_top">rustaceanvim</a>. This | ||||
| switch entails a whole bunch of new features and options, so you are | ||||
| recommended to go through rustacean.nvim’s README to take a closer look at its | ||||
| features and usage</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add <a class="link" href="https://github.com/mrcjkb/lz.n"  target="_top">lz.n</a> support and lazy-load some builtin plugins.</p></li><li class="listitem"><p>Add simpler helper functions for making keymaps</p></li></ul></div><p><a class="link" href="https://poz.pet"  target="_top">poz</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Add <a class="link" href="https://github.com/ocaml/ocaml-lsp"  target="_top">ocaml-lsp</a> support</p></li><li class="listitem"><p>Fix “Emac” typo</p></li><li class="listitem"><p>Add <a class="link" href="https://github.com/otavioschwanck/new-file-template.nvim"  target="_top">new-file-template.nvim</a> to automatically fill new file contents using | ||||
| templates</p></li><li class="listitem"><p>Make <a class="link" href="https://github.com/nvim-neo-tree/neo-tree.nvim"  target="_top">neo-tree.nvim</a> display file icons properly by enabling | ||||
| <code class="literal">visuals.nvimWebDevicons</code></p></li></ul></div><p><a class="link" href="https://github.com/diniamo"  target="_top">diniamo</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Move the <code class="literal">theme</code> dag entry to before <code class="literal">luaScript</code>.</p></li><li class="listitem"><p>Add rustfmt as the default formatter for Rust.</p></li><li class="listitem"><p>Enabled the terminal integration of catppuccin for theming Neovim’s built-in | ||||
| terminal (this also affects toggleterm).</p></li><li class="listitem"><p>Migrate bufferline to setupOpts for more customizability</p></li><li class="listitem"><p>Use <code class="literal">clangd</code> as the default language server for C languages</p></li><li class="listitem"><p>Expose <code class="literal">lib.nvim.types.pluginType</code>, which for example allows the user to | ||||
| create abstractions for adding plugins</p></li><li class="listitem"><p>Migrate indent-blankline to setupOpts for more customizability. While the | ||||
| plugin’s options can now be found under <code class="literal">indentBlankline.setupOpts</code>, the | ||||
| previous iteration of the module also included out of place/broken options, | ||||
| which have been removed for the time being. These are:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p><code class="literal">listChar</code> - this was already unused</p></li><li class="listitem"><p><code class="literal">fillChar</code> - this had nothing to do with the plugin, please configure it | ||||
| yourself by adding <code class="literal">vim.opt.listchars:append({ space = '<char>' })</code> to your | ||||
| lua configuration</p></li><li class="listitem"><p><code class="literal">eolChar</code> - this also had nothing to do with the plugin, please configure it | ||||
| yourself by adding <code class="literal">vim.opt.listchars:append({ eol = '<char>' })</code> to your | ||||
| lua configuration</p></li></ul></div></li><li class="listitem"><p>Replace <code class="literal">vim.lsp.nvimCodeActionMenu</code> with <code class="literal">vim.ui.fastaction</code>, see the | ||||
| breaking changes section above for more details</p></li><li class="listitem"><p>Add a <code class="literal">setupOpts</code> option to nvim-surround, which allows modifying options that | ||||
| aren’t defined in nvf. Move the alternate nvim-surround keybinds to use | ||||
| <code class="literal">setupOpts</code>.</p></li><li class="listitem"><p>Remove <code class="literal">autopairs.type</code>, and rename <code class="literal">autopairs.enable</code> to | ||||
| <code class="literal">autopairs.nvim-autopairs.enable</code>. The new | ||||
| <a class="xref" href="options.html#opt-vim.autopairs.nvim-autopairs.enable"  ><code class="option">vim.autopairs.nvim-autopairs.enable</code></a> supports <code class="literal">setupOpts</code> format by | ||||
| default.</p></li><li class="listitem"><p>Refactor of <code class="literal">nvim-cmp</code> and completion related modules</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>Remove <code class="literal">autocomplete.type</code> in favor of per-plugin enable options such as | ||||
| <a class="xref" href="options.html#opt-vim.autocomplete.nvim-cmp.enable"  ><code class="option">vim.autocomplete.nvim-cmp.enable</code></a>.</p></li><li class="listitem"><p>Deprecate legacy Vimsnip in favor of Luasnip, and integrate | ||||
| friendly-snippets for bundled snippets. <a class="xref" href="options.html#opt-vim.snippets.luasnip.enable"  ><code class="option">vim.snippets.luasnip.enable</code></a> | ||||
| can be used to toggle Luasnip.</p></li><li class="listitem"><p>Add sorting function options for completion sources under | ||||
| <a class="xref" href="options.html#opt-vim.autocomplete.nvim-cmp.setupOpts.sorting.comparators"  ><code class="option">vim.autocomplete.nvim-cmp.setupOpts.sorting.comparators</code></a></p></li></ul></div></li><li class="listitem"><p>Add C# support under <code class="literal">vim.languages.csharp</code>, with support for both | ||||
| omnisharp-roslyn and csharp-language-server.</p></li><li class="listitem"><p>Add Julia support under <code class="literal">vim.languages.julia</code>. Note that the entirety of Julia | ||||
| is bundled with nvf, if you enable the module, since there is no way to | ||||
| provide only the LSP server.</p></li><li class="listitem"><p>Add <a class="link" href="https://github.com/diniamo/run.nvim"  target="_top"><code class="literal">run.nvim</code></a> support for running code | ||||
| using cached commands.</p></li></ul></div><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Make Neovim’s configuration file entirely Lua based. This comes with a few | ||||
| breaking changes:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p><code class="literal">vim.configRC</code> has been removed. You will need to migrate your entries to | ||||
| Neovim-compliant Lua code, and add them to <code class="literal">vim.luaConfigRC</code> instead. | ||||
| Existing vimscript configurations may be preserved in <code class="literal">vim.cmd</code> functions. | ||||
| Please see <a class="link" href="https://neovim.io/doc/user/lua.html#vim.cmd()"  target="_top">Neovim documentation on <code class="literal">vim.cmd</code></a></p></li><li class="listitem"><p><code class="literal">vim.luaScriptRC</code> is now the top-level DAG, and the internal <code class="literal">vim.pluginRC</code> | ||||
| has been introduced for setting up internal plugins. See the “DAG entries in | ||||
| nvf” manual page for more information.</p></li></ul></div></li><li class="listitem"><p>Rewrite <code class="literal">vim.maps</code>, see the breaking changes section above.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf"  target="_top">NotAShelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Add <code class="literal">deno fmt</code> as the default Markdown formatter. This will be enabled | ||||
| automatically if you have autoformatting enabled, but can be disabled manually | ||||
| if you choose to.</p></li><li class="listitem"><p>Add <code class="literal">vim.extraLuaFiles</code> for optionally sourcing additional lua files in your | ||||
| configuration.</p></li><li class="listitem"><p>Refactor <code class="literal">programs.languages.elixir</code> to use lspconfig and none-ls for LSP and | ||||
| formatter setups respectively. Diagnostics support is considered, and may be | ||||
| added once the <a class="link" href="https://github.com/rrrene/credo"  target="_top">credo</a> linter has been added to nixpkgs. A pull request is | ||||
| currently open.</p></li><li class="listitem"><p>Remove vim-tidal and friends.</p></li><li class="listitem"><p>Clean up Lualine module to reduce theme dependency on Catppuccin, and fixed | ||||
| blending issues in component separators.</p></li><li class="listitem"><p>Add [ts-ereror-translator.nvim] extension of the TS language module, under | ||||
| <code class="literal">vim.languages.ts.extensions.ts-error-translator</code> to aid with Typescript | ||||
| development.</p></li><li class="listitem"><p>Add <a class="link" href="https://github.com/nvim-neo-tree/neo-tree.nvim"  target="_top">neo-tree.nvim</a> as an alternative file-tree plugin. It will be available | ||||
| under <code class="literal">vim.filetree.neo-tree</code>, similar to nvimtree.</p></li><li class="listitem"><p>Add <code class="literal">nvf-print-config</code> & <code class="literal">nvf-print-config-path</code> helper scripts to Neovim | ||||
| closure. Both of those scripts have been automatically added to your PATH upon | ||||
| using neovimConfig or <code class="literal">programs.nvf.enable</code>.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p><code class="literal">nvf-print-config</code> will display your <code class="literal">init.lua</code>, in full.</p></li><li class="listitem"><p><code class="literal">nvf-print-config-path</code> will display the path to <span class="emphasis"><em>a clone</em></span> of your | ||||
| <code class="literal">init.lua</code>. This is not the path used by the Neovim wrapper, but an | ||||
| identical clone.</p></li></ul></div></li><li class="listitem"><p>Add <code class="literal">vim.ui.breadcrumbs.lualine</code> to allow fine-tuning breadcrumbs behaviour on | ||||
| Lualine. Only <code class="literal">vim.ui.breadcrumbs.lualine.winbar</code> is supported for the time | ||||
| being.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p><a class="xref" href="options.html#opt-vim.ui.breadcrumbs.lualine.winbar.enable"  ><code class="option">vim.ui.breadcrumbs.lualine.winbar.enable</code></a> has been added to allow | ||||
| controlling the default behaviour of the <code class="literal">nvim-navic</code> component on Lualine, | ||||
| which used to occupy <code class="literal">winbar.lualine_c</code> as long as breadcrumbs are enabled.</p></li><li class="listitem"><p><code class="literal">vim.ui.breadcrumbs.alwaysRender</code> has been renamed to | ||||
| <a class="xref" href="options.html#opt-vim.ui.breadcrumbs.lualine.winbar.alwaysRender"  ><code class="option">vim.ui.breadcrumbs.lualine.winbar.alwaysRender</code></a> to be conform to the | ||||
| new format.</p></li></ul></div></li><li class="listitem"><p>Add <a class="link" href="https://github.com/detachhead/basedpyright"  target="_top">basedpyright</a> as a Python LSP | ||||
| server and make it default.</p></li><li class="listitem"><p>Add <a class="link" href="https://github.com/python-lsp/python-lsp-server"  target="_top">python-lsp-server</a> as an | ||||
| additional Python LSP server.</p></li><li class="listitem"><p>Add <a class="xref" href="options.html#opt-vim.options"  ><code class="option">vim.options</code></a> to set <code class="literal">vim.o</code> values in in your nvf configuration | ||||
| without using additional Lua. See option documentation for more details.</p></li><li class="listitem"><p>Add <a class="xref" href="options.html#opt-vim.dashboard.dashboard-nvim.setupOpts"  ><code class="option">vim.dashboard.dashboard-nvim.setupOpts</code></a> to allow user | ||||
| configuration for <a class="link" href="https://github.com/nvimdev/dashboard-nvim"  target="_top">dashboard.nvim</a></p></li><li class="listitem"><p>Update <code class="literal">lualine.nvim</code> input and add missing themes:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>Adds <code class="literal">ayu</code>, <code class="literal">gruvbox_dark</code>, <code class="literal">iceberg</code>, <code class="literal">moonfly</code>, <code class="literal">onedark</code>, | ||||
| <code class="literal">powerline_dark</code> and <code class="literal">solarized_light</code> themes.</p></li></ul></div></li><li class="listitem"><p>Add <a class="xref" href="options.html#opt-vim.spellcheck.extraSpellWords"  ><code class="option">vim.spellcheck.extraSpellWords</code></a> to allow adding arbitrary | ||||
| spellfiles to Neovim’s runtime with ease.</p></li><li class="listitem"><p>Add combined nvf configuration (<code class="literal">config.vim</code>) into the final package’s | ||||
| <code class="literal">passthru</code> as <code class="literal">passthru.neovimConfiguration</code> for easier debugging.</p></li><li class="listitem"><p>Add support for <a class="link" href="https://github.com/rachartier/tiny-devicons-auto-colors.nvim"  target="_top">tiny-devicons-auto-colors</a> under | ||||
| <code class="literal">vim.visuals.tiny-devicons-auto-colors</code></p></li><li class="listitem"><p>Move options that used to set <code class="literal">vim.o</code> values (e.g. <code class="literal">vim.wordWrap</code>) into | ||||
| <code class="literal">vim.options</code> as default values. Some are left as they don’t have a direct | ||||
| equivalent, but expect a switch eventually.</p></li></ul></div><p><a class="link" href="https://github.com/ppenguin"  target="_top">ppenguin</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Telescope:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>Fixed <code class="literal">project-nvim</code> command and keybinding</p></li><li class="listitem"><p>Added default ikeybind/command for <code class="literal">Telescope resume</code> (<code class="literal"><leader>fr</code>)</p></li></ul></div></li><li class="listitem"><p>Add <code class="literal">hcl</code> lsp/formatter (not the same as <code class="literal">terraform</code>, which is not useful for | ||||
| e.g. <code class="literal">nomad</code> config files).</p></li></ul></div><p><a class="link" href="https://github.com/Soliprem"  target="_top">Soliprem</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add LSP and Treesitter support for R under <code class="literal">vim.languages.R</code>.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>Add formatter support for R, with styler and formatR as options</p></li></ul></div></li><li class="listitem"><p>Add Otter support under <code class="literal">vim.lsp.otter</code> and an assert to prevent conflict with | ||||
| ccc</p></li><li class="listitem"><p>Fixed typo in Otter’s setupOpts</p></li><li class="listitem"><p>Add Neorg support under <code class="literal">vim.notes.neorg</code></p></li><li class="listitem"><p>Add LSP, diagnostics, formatter and Treesitter support for Kotlin under | ||||
| <code class="literal">vim.languages.kotlin</code></p></li><li class="listitem"><p>changed default keybinds for leap.nvim to avoid altering expected behavior</p></li><li class="listitem"><p>Add LSP, formatter and Treesitter support for Vala under <code class="literal">vim.languages.vala</code></p></li><li class="listitem"><p>Add [Tinymist](https://github.com/Myriad-Dreamin/tinymist] as a formatter for | ||||
| the Typst language module.</p></li><li class="listitem"><p>Add LSP and Treesitter support for Assembly under <code class="literal">vim.languages.assembly</code></p></li><li class="listitem"><p>Move <a class="link" href="https://github.com/folke/which-key.nvim"  target="_top">which-key</a> to the new spec</p></li><li class="listitem"><p>Add LSP and Treesitter support for Nushell under <code class="literal">vim.languages.nu</code></p></li><li class="listitem"><p>Add LSP and Treesitter support for Gleam under <code class="literal">vim.languages.gleam</code></p></li></ul></div><p><a class="link" href="https://github.com/Bloxx12"  target="_top">Bloxx12</a></p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add support for <a class="link" href="https://github.com/RRethy/base16-nvim"  target="_top">base16 theming</a> under | ||||
| <code class="literal">vim.theme</code></p></li><li class="listitem"><p>Fix internal breakage in <code class="literal">elixir-tools</code> setup.</p></li></ul></div><p><a class="link" href="https://github.com/ksonj"  target="_top">ksonj</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add LSP support for Scala via | ||||
| <a class="link" href="https://github.com/scalameta/nvim-metals"  target="_top">nvim-metals</a></p></li></ul></div><p><a class="link" href="https://github.com/nezia1"  target="_top">nezia1</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add <a class="link" href="https://github.com/biomejs/biome"  target="_top">biome</a> support for Typescript, CSS and | ||||
| Svelte. Enable them via <a class="xref" href="options.html#opt-vim.languages.ts.format.type"  ><code class="option">vim.languages.ts.format.type</code></a>, | ||||
| <a class="xref" href="options.html#opt-vim.languages.css.format.type"  ><code class="option">vim.languages.css.format.type</code></a> and | ||||
| <a class="xref" href="options.html#opt-vim.languages.svelte.format.type"  ><code class="option">vim.languages.svelte.format.type</code></a> respectively.</p></li><li class="listitem"><p>Replace <a class="link" href="https://github.com/nix-community/nixpkgs-fmt"  target="_top">nixpkgs-fmt</a> with | ||||
| <a class="link" href="https://github.com/NixOS/nixfmt"  target="_top">nixfmt</a> (nixfmt-rfc-style).</p></li></ul></div><p><a class="link" href="https://github.com/Nowaaru"  target="_top">Nowaaru</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add <code class="literal">precognition-nvim</code>.</p></li></ul></div><p><a class="link" href="https://github.com/DamitusThyYeetus123"  target="_top">DamitusThyYeeticus123</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add support for <a class="link" href="https://astro.build/"  target="_top">Astro</a> language server.</p></li></ul></div> | ||||
| </div> | ||||
| 
 | ||||
| </div> | ||||
| </div>  <div class="navfooter"> | ||||
|    <hr /> | ||||
|    <table width="100%" summary="Navigation footer"> | ||||
|     <tr> | ||||
|     <td width="40%" align="left"><a accesskey="p" href="options.html">Prev</a> </td> | ||||
|     <td width="20%" align="center"> </td> | ||||
|     <td width="40%" align="right"> </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|      <td width="40%" align="left" valign="top">Appendix B. nvf Configuration Options </td> | ||||
|      <td width="20%" align="center"><a accesskey="h" href="index.xhtml">Home</a></td> | ||||
|      <td width="40%" align="right" valign="top"> </td> | ||||
|     </tr> | ||||
|    </table> | ||||
|   </div> | ||||
|  </body> | ||||
| </html> | ||||
							
								
								
									
										10
									
								
								docs-preview-899/script/anchor-min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docs-preview-899/script/anchor-min.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								docs-preview-899/script/anchor-use.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docs-preview-899/script/anchor-use.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| document.addEventListener('DOMContentLoaded', function(event) { | ||||
|   anchors.add('h1[id]:not(div.note h1, div.warning h1, div.tip h1, div.caution h1, div.important h1), h2[id]:not(div.note h2, div.warning h2, div.tip h2, div.caution h2, div.important h2), h3[id]:not(div.note h3, div.warning h3, div.tip h3, div.caution h3, div.important h3), h4[id]:not(div.note h4, div.warning h4, div.tip h4, div.caution h4, div.important h4), h5[id]:not(div.note h5, div.warning h5, div.tip h5, div.caution h5, div.important h5), h6[id]:not(div.note h6, div.warning h6, div.tip h6, div.caution h6, div.important h6)'); | ||||
| }); | ||||
| 
 | ||||
							
								
								
									
										58
									
								
								docs-preview-899/script/search.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs-preview-899/script/search.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,58 @@ | |||
| document.addEventListener("DOMContentLoaded", () => { | ||||
|   if (!window.location.pathname.endsWith("options.html")) return; | ||||
| 
 | ||||
|   const searchDiv = document.createElement("div"); | ||||
|   searchDiv.id = "search-bar"; | ||||
|   searchDiv.innerHTML = ` | ||||
|     <input type="text" id="search-input" placeholder="Search options by ID..." /> | ||||
|     <div id="search-results"></div> | ||||
|   `;
 | ||||
|   document.body.prepend(searchDiv); | ||||
| 
 | ||||
|   const dtElements = Array.from(document.querySelectorAll("dt")); | ||||
|   const ddElements = Array.from(document.querySelectorAll("dd")); | ||||
|   const dtOptionIds = dtElements.map( | ||||
|     (dt) => dt.querySelector("a")?.id.toLowerCase() || "", | ||||
|   ); | ||||
| 
 | ||||
|   if (dtElements.length === 0 || ddElements.length === 0) { | ||||
|     console.warn("Something went wrong, page may be loaded incorrectly."); | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   const dtElementsData = dtElements.map((dt, index) => ({ | ||||
|     element: dt, | ||||
|     id: dtOptionIds[index], | ||||
|     ddElement: ddElements[index], | ||||
|   })); | ||||
| 
 | ||||
|   const hiddenClass = "hidden"; | ||||
|   const hiddenStyle = document.createElement("style"); | ||||
|   hiddenStyle.innerHTML = `.${hiddenClass} { display: none; }`; | ||||
|   document.head.appendChild(hiddenStyle); | ||||
| 
 | ||||
|   let debounceTimeout; | ||||
|   document.getElementById("search-input").addEventListener("input", (event) => { | ||||
|     clearTimeout(debounceTimeout); | ||||
|     debounceTimeout = setTimeout(() => { | ||||
|       const query = event.target.value.toLowerCase(); | ||||
| 
 | ||||
|       const matches = []; | ||||
|       const nonMatches = []; | ||||
| 
 | ||||
|       dtElementsData.forEach(({ element, id, ddElement }) => { | ||||
|         const isMatch = id.includes(query); | ||||
|         if (isMatch) { | ||||
|           matches.push(element, ddElement); | ||||
|         } else { | ||||
|           nonMatches.push(element, ddElement); | ||||
|         } | ||||
|       }); | ||||
| 
 | ||||
|       requestAnimationFrame(() => { | ||||
|         matches.forEach((el) => el?.classList.remove(hiddenClass)); | ||||
|         nonMatches.forEach((el) => el?.classList.add(hiddenClass)); | ||||
|       }); | ||||
|     }, 200); | ||||
|   }); | ||||
| }); | ||||
							
								
								
									
										622
									
								
								docs-preview-899/style.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										622
									
								
								docs-preview-899/style.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,622 @@ | |||
| @import "tomorrow.min.css"; | ||||
| html { | ||||
|   -webkit-text-size-adjust: 100%; | ||||
| } | ||||
| 
 | ||||
| html:focus-within { | ||||
|   scroll-behavior: smooth; | ||||
| } | ||||
| 
 | ||||
| body { | ||||
|   -webkit-text-size-adjust: 100%; | ||||
|   -moz-text-size-adjust: 100%; | ||||
|   text-size-adjust: 100%; | ||||
|   -moz-osx-font-smoothing: grayscale; | ||||
|   -webkit-font-smoothing: antialiased; | ||||
|   min-height: 100vh; | ||||
|   position: relative; | ||||
|   text-rendering: optimizeSpeed; | ||||
|   width: 100%; | ||||
| } | ||||
| 
 | ||||
| *, :after, :before { | ||||
|   box-sizing: border-box; | ||||
| } | ||||
| 
 | ||||
| a:not([class]) { | ||||
|   -webkit-text-decoration-skip: ink; | ||||
|   text-decoration-skip-ink: auto; | ||||
| } | ||||
| 
 | ||||
| a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video { | ||||
|   border: 0; | ||||
|   font-size: 100%; | ||||
|   font: inherit; | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
|   vertical-align: baseline; | ||||
| } | ||||
| 
 | ||||
| :focus { | ||||
|   outline: 0; | ||||
| } | ||||
| 
 | ||||
| article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section { | ||||
|   display: block; | ||||
| } | ||||
| 
 | ||||
| ol, ul { | ||||
|   list-style: none; | ||||
| } | ||||
| 
 | ||||
| blockquote, q { | ||||
|   quotes: none; | ||||
| } | ||||
| 
 | ||||
| blockquote:after, blockquote:before, q:after, q:before { | ||||
|   content: ""; | ||||
|   content: none; | ||||
| } | ||||
| 
 | ||||
| input, input:required { | ||||
|   box-shadow: none; | ||||
| } | ||||
| 
 | ||||
| input:-webkit-autofill, input:-webkit-autofill:active, input:-webkit-autofill:focus, input:-webkit-autofill:hover { | ||||
|   -webkit-box-shadow: inset 0 0 0 30px #fff; | ||||
| } | ||||
| 
 | ||||
| input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration { | ||||
|   -webkit-appearance: none; | ||||
|   -moz-appearance: none; | ||||
| } | ||||
| 
 | ||||
| input[type=search] { | ||||
|   -webkit-appearance: none; | ||||
|   -moz-appearance: none; | ||||
| } | ||||
| 
 | ||||
| input:focus { | ||||
|   outline: 0; | ||||
| } | ||||
| 
 | ||||
| audio, canvas, video { | ||||
|   display: inline-block; | ||||
|   max-width: 100%; | ||||
| } | ||||
| 
 | ||||
| audio:not([controls]) { | ||||
|   display: none; | ||||
|   height: 0; | ||||
| } | ||||
| 
 | ||||
| [hidden] { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| a:active, a:hover { | ||||
|   outline: 0; | ||||
| } | ||||
| 
 | ||||
| img { | ||||
|   height: auto; | ||||
|   max-width: 100%; | ||||
|   vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
| img, picture { | ||||
|   display: inline-block; | ||||
| } | ||||
| 
 | ||||
| button, input { | ||||
|   line-height: normal; | ||||
| } | ||||
| 
 | ||||
| button, html input[type=button], input[type=reset], input[type=submit] { | ||||
|   -webkit-appearance: button; | ||||
|   background: 0 0; | ||||
|   border: 0; | ||||
|   cursor: pointer; | ||||
| } | ||||
| 
 | ||||
| button[disabled], html input[disabled] { | ||||
|   cursor: default; | ||||
| } | ||||
| 
 | ||||
| [disabled] { | ||||
|   pointer-events: none; | ||||
| } | ||||
| 
 | ||||
| input[type=checkbox], input[type=radio] { | ||||
|   padding: 0; | ||||
| } | ||||
| 
 | ||||
| input[type=search] { | ||||
|   -webkit-appearance: textfield; | ||||
|   box-sizing: content-box; | ||||
| } | ||||
| 
 | ||||
| input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { | ||||
|   -webkit-appearance: none; | ||||
| } | ||||
| 
 | ||||
| button::-moz-focus-inner, input::-moz-focus-inner { | ||||
|   border: 0; | ||||
|   padding: 0; | ||||
| } | ||||
| 
 | ||||
| button { | ||||
|   background: 0 0; | ||||
|   border: 0; | ||||
| } | ||||
| 
 | ||||
| textarea { | ||||
|   overflow: auto; | ||||
|   resize: vertical; | ||||
|   vertical-align: top; | ||||
| } | ||||
| 
 | ||||
| table { | ||||
|   border-collapse: collapse; | ||||
|   border-spacing: 0; | ||||
|   text-indent: 0; | ||||
| } | ||||
| 
 | ||||
| hr { | ||||
|   background: #000; | ||||
|   border: 0; | ||||
|   box-sizing: content-box; | ||||
|   height: 1px; | ||||
|   line-height: 0; | ||||
|   margin: 0; | ||||
|   overflow: visible; | ||||
|   padding: 0; | ||||
|   page-break-after: always; | ||||
|   width: 100%; | ||||
| } | ||||
| 
 | ||||
| pre { | ||||
|   font-family: monospace, monospace; | ||||
|   font-size: 100%; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|   background-color: transparent; | ||||
| } | ||||
| 
 | ||||
| abbr[title] { | ||||
|   border-bottom: none; | ||||
|   text-decoration: none; | ||||
| } | ||||
| 
 | ||||
| code, kbd, pre, samp { | ||||
|   font-family: monospace, monospace; | ||||
| } | ||||
| 
 | ||||
| small, sub, sup { | ||||
|   font-size: 75%; | ||||
| } | ||||
| 
 | ||||
| sub, sup { | ||||
|   line-height: 0; | ||||
|   position: relative; | ||||
|   vertical-align: baseline; | ||||
| } | ||||
| 
 | ||||
| sub { | ||||
|   bottom: -5px; | ||||
| } | ||||
| 
 | ||||
| sup { | ||||
|   top: -5px; | ||||
| } | ||||
| 
 | ||||
| button, input, optgroup, select, textarea { | ||||
|   font-family: inherit; | ||||
|   font-size: 100%; | ||||
|   line-height: 1; | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
| } | ||||
| 
 | ||||
| button, input { | ||||
|   overflow: visible; | ||||
| } | ||||
| 
 | ||||
| button, select { | ||||
|   text-transform: none; | ||||
| } | ||||
| 
 | ||||
| [type=button], [type=reset], [type=submit], button { | ||||
|   -webkit-appearance: button; | ||||
| } | ||||
| 
 | ||||
| [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner { | ||||
|   border-style: none; | ||||
|   outline: 0; | ||||
|   padding: 0; | ||||
| } | ||||
| 
 | ||||
| legend { | ||||
|   border: 0; | ||||
|   color: inherit; | ||||
|   display: block; | ||||
|   max-width: 100%; | ||||
|   white-space: normal; | ||||
|   width: 100%; | ||||
| } | ||||
| 
 | ||||
| fieldset { | ||||
|   min-width: 0; | ||||
| } | ||||
| 
 | ||||
| body:not(:-moz-handler-blocked) fieldset { | ||||
|   display: block; | ||||
| } | ||||
| 
 | ||||
| progress { | ||||
|   vertical-align: baseline; | ||||
| } | ||||
| 
 | ||||
| [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { | ||||
|   height: auto; | ||||
| } | ||||
| 
 | ||||
| [type=search] { | ||||
|   -webkit-appearance: textfield; | ||||
|   outline-offset: -2px; | ||||
| } | ||||
| 
 | ||||
| [type=search]::-webkit-search-decoration { | ||||
|   -webkit-appearance: none; | ||||
| } | ||||
| 
 | ||||
| ::-webkit-file-upload-button { | ||||
|   -webkit-appearance: button; | ||||
|   font: inherit; | ||||
| } | ||||
| 
 | ||||
| summary { | ||||
|   display: list-item; | ||||
| } | ||||
| 
 | ||||
| template { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| :root { | ||||
|   --nmd-color0: #0a3e68; | ||||
|   --nmd-color1: #268598; | ||||
|   --nmd-color2: #b8d09e; | ||||
|   --nmd-color3: #f6cf5e; | ||||
|   --nmd-color4: #ec733b; | ||||
|   --nmd-color-info: #167cb9; | ||||
|   --nmd-color-warn: #ff6700; | ||||
| } | ||||
| 
 | ||||
| body { | ||||
|   background: white; | ||||
|   color: #111827; | ||||
|   max-width: min(100ch, 1024px); | ||||
|   margin: 0 auto; | ||||
|   padding: 10px; | ||||
|   font-family: "Lucida Sans", Arial, sans-serif; | ||||
|   font-size: 16px; | ||||
|   line-height: 1.4em; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   body { | ||||
|     background: #111827; | ||||
|     color: #f9fafb; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| h1, | ||||
| h2, | ||||
| h3 { | ||||
|   color: var(--nmd-color0); | ||||
|   font-family: "Lato", sans-serif; | ||||
|   font-weight: 300; | ||||
|   line-height: 1.125; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   h1, | ||||
|   h2, | ||||
|   h3 { | ||||
|     color: var(--nmd-color4); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| h1 { | ||||
|   font-size: 48px; | ||||
|   font-weight: 300; | ||||
|   margin: 4rem 0 1.5rem; | ||||
| } | ||||
| 
 | ||||
| h2 { | ||||
|   font-size: 32px; | ||||
|   font-weight: 300; | ||||
|   margin: 2rem 0 1rem; | ||||
| } | ||||
| 
 | ||||
| h3 { | ||||
|   font-size: 20px; | ||||
|   font-weight: 400; | ||||
|   margin: 0.5rem 0.25rem; | ||||
| } | ||||
| 
 | ||||
| p { | ||||
|   margin: 0.9rem 0; | ||||
| } | ||||
| p:first-child { | ||||
|   margin-top: 0; | ||||
| } | ||||
| p:last-child { | ||||
|   margin-bottom: 0; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|   color: var(--nmd-color0); | ||||
|   text-decoration: underline; | ||||
|   text-underline-offset: 3px; | ||||
| } | ||||
| a:visited { | ||||
|   color: var(--nmd-color1); | ||||
| } | ||||
| a:hover { | ||||
|   color: var(--nmd-color1); | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   a { | ||||
|     color: var(--nmd-color3); | ||||
|   } | ||||
|   a:visited { | ||||
|     color: var(--nmd-color2); | ||||
|   } | ||||
|   a:hover { | ||||
|     color: var(--nmd-color4); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| code { | ||||
|   font-size: 90%; | ||||
| } | ||||
| 
 | ||||
| span.command { | ||||
|   font-size: 90%; | ||||
|   font-family: monospace; | ||||
| } | ||||
| 
 | ||||
| em { | ||||
|   font-style: italic; | ||||
| } | ||||
| 
 | ||||
| strong { | ||||
|   font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| pre { | ||||
|   background: #f9fafb; | ||||
|   margin: 2rem 16px; | ||||
|   padding: 10px; | ||||
|   border: 1px solid #e5e7eb; | ||||
|   border-radius: 4px; | ||||
|   box-shadow: 4px 4px 8px #e5e7eb; | ||||
|   font-size: 90%; | ||||
|   margin-bottom: 1.5rem; | ||||
|   padding: 6px; | ||||
|   overflow: auto; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   pre { | ||||
|     background: #1f2937; | ||||
|     border-color: black; | ||||
|     box-shadow: 4px 4px 8px black; | ||||
|   } | ||||
| } | ||||
| pre span img { | ||||
|   user-select: none; | ||||
| } | ||||
| 
 | ||||
| pre:has(code) { | ||||
|   padding: 0; | ||||
| } | ||||
| 
 | ||||
| td, | ||||
| th { | ||||
|   padding: 2px 5px; | ||||
| } | ||||
| td:first-child, | ||||
| th:first-child { | ||||
|   padding-left: 0; | ||||
| } | ||||
| td:last-child, | ||||
| th:last-child { | ||||
|   padding-right: 0; | ||||
| } | ||||
| 
 | ||||
| dt { | ||||
|   margin: 1.2rem 0 0.8rem; | ||||
|   content-visibility: auto; | ||||
|   contain-intrinsic-size: auto 42px; | ||||
| } | ||||
| 
 | ||||
| dd { | ||||
|   margin-left: 2rem; | ||||
|   content-visibility: auto; | ||||
|   contain-intrinsic-size: auto 500px; | ||||
| } | ||||
| 
 | ||||
| ul { | ||||
|   margin: 0.9rem 0; | ||||
|   padding-left: 30px; | ||||
|   list-style: disc; | ||||
| } | ||||
| ul:first-child { | ||||
|   margin-top: 0; | ||||
| } | ||||
| ul:last-child { | ||||
|   margin-bottom: 0; | ||||
| } | ||||
| 
 | ||||
| ol { | ||||
|   margin: 0.9rem 0; | ||||
|   padding-left: 30px; | ||||
|   list-style: decimal; | ||||
| } | ||||
| ol:first-child { | ||||
|   margin-top: 0; | ||||
| } | ||||
| ol:last-child { | ||||
|   margin-bottom: 0; | ||||
| } | ||||
| 
 | ||||
| li { | ||||
|   margin: 0.9rem 0; | ||||
|   padding-left: 5px; | ||||
| } | ||||
| li:first-child { | ||||
|   margin-top: 0; | ||||
| } | ||||
| li:last-child { | ||||
|   margin-bottom: 0; | ||||
| } | ||||
| 
 | ||||
| .navheader hr, | ||||
| .navfooter hr { | ||||
|   margin: 1rem 0; | ||||
|   background: #e5e7eb; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   .navheader hr, | ||||
|   .navfooter hr { | ||||
|     background: #4b5563; | ||||
|   } | ||||
| } | ||||
| .navheader a, | ||||
| .navfooter a { | ||||
|   text-decoration: none; | ||||
| } | ||||
| 
 | ||||
| #search-bar { | ||||
|   position: sticky; | ||||
|   top: 0; | ||||
|   background: white; | ||||
|   padding: 10px; | ||||
|   border-bottom: 1px solid #e5e7eb; | ||||
|   z-index: 1000; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   #search-bar { | ||||
|     background: #111827; | ||||
|     color: #f9fafb; | ||||
|     border-bottom: 1px solid black; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| #search-input { | ||||
|   width: 100%; | ||||
|   padding: 8px; | ||||
|   border: 1px solid #ccc; | ||||
|   border-radius: 4px; | ||||
|   background: inherit; | ||||
|   color: inherit; | ||||
| } | ||||
| 
 | ||||
| .hidden { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| div.titlepage { | ||||
|   margin: 40px 0; | ||||
| } | ||||
| div.titlepage hr { | ||||
|   display: none; | ||||
| } | ||||
| 
 | ||||
| div.toc { | ||||
|   background: #f9fafb; | ||||
|   margin: 2rem 16px; | ||||
|   padding: 10px; | ||||
|   border: 1px solid #e5e7eb; | ||||
|   border-radius: 4px; | ||||
|   box-shadow: 4px 4px 8px #e5e7eb; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   div.toc { | ||||
|     background: #1f2937; | ||||
|     border-color: black; | ||||
|     box-shadow: 4px 4px 8px black; | ||||
|   } | ||||
| } | ||||
| div.toc a { | ||||
|   text-decoration: none; | ||||
| } | ||||
| 
 | ||||
| div.note, | ||||
| div.warning { | ||||
|   background: #f9fafb; | ||||
|   margin: 2rem 16px; | ||||
|   padding: 10px; | ||||
|   border: 1px solid #e5e7eb; | ||||
|   border-radius: 4px; | ||||
|   box-shadow: 4px 4px 8px #e5e7eb; | ||||
|   font-style: italic; | ||||
| } | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   div.note, | ||||
|   div.warning { | ||||
|     background: #1f2937; | ||||
|     border-color: black; | ||||
|     box-shadow: 4px 4px 8px black; | ||||
|   } | ||||
| } | ||||
| div.note h3, | ||||
| div.warning h3 { | ||||
|   float: right; | ||||
|   margin: 0 0 1rem 1rem; | ||||
|   width: 42px; | ||||
|   height: 42px; | ||||
|   content: url(); | ||||
| } | ||||
| div.note h3 + p, | ||||
| div.warning h3 + p { | ||||
|   margin-top: 0; | ||||
| } | ||||
| 
 | ||||
| div.note h3 { | ||||
|   background-color: var(--nmd-color-info); | ||||
|   mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 8h.01'%3E%3C/path%3E%3Cpath d='M11 12h1v4h1'%3E%3C/path%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z'%3E%3C/path%3E%3C/svg%3E"); | ||||
|   -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 8h.01'%3E%3C/path%3E%3Cpath d='M11 12h1v4h1'%3E%3C/path%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9 -9 9s-9 -1.8 -9 -9s1.8 -9 9 -9z'%3E%3C/path%3E%3C/svg%3E"); | ||||
| } | ||||
| 
 | ||||
| div.warning h3 { | ||||
|   background-color: var(--nmd-color-warn); | ||||
|   mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 9v2m0 4v.01'%3E%3C/path%3E%3Cpath d='M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75'%3E%3C/path%3E%3C/svg%3E"); | ||||
|   -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24' stroke-width='2' stroke='black' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M12 9v2m0 4v.01'%3E%3C/path%3E%3Cpath d='M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75'%3E%3C/path%3E%3C/svg%3E"); | ||||
| } | ||||
| 
 | ||||
| .term { | ||||
|   font-weight: 300; | ||||
| } | ||||
| 
 | ||||
| .docbook .xref img[src^="images/callouts/"], | ||||
| .screen img, | ||||
| .programlisting img { | ||||
|   width: 1em; | ||||
| } | ||||
| 
 | ||||
| .calloutlist img { | ||||
|   width: 1.3em; | ||||
| } | ||||
| 
 | ||||
| /** The console prompt, e.g., `$` and `#` should not be selectable. */ | ||||
| .programlisting.language-shell .hljs-meta.prompt_ { | ||||
|   user-select: none; | ||||
| } | ||||
| 
 | ||||
| @media (prefers-color-scheme: dark) { | ||||
|   @import "tomorrow-night.min.css"; | ||||
| } | ||||
| 
 | ||||
| /*# sourceMappingURL=style.css.map */ | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 GitHub Actions
				GitHub Actions