diff --git a/options.html b/options.html index b44c029..0d99a5c 100644 --- a/options.html +++ b/options.html @@ -97,6 +97,16 @@ <neovim-flake/modules/basic>
vim.configRC

vimrc contents

Type: DAG of strings concatenated with "\n"

Default: { }

Declared by:

<neovim-flake/modules/core> +
vim.debugger.enable

Whether to enable DAP debugger, also enabled automatically through language options.

Type: boolean

Default: false

Example: true

Declared by:

+ <neovim-flake/modules/debugger> +
vim.debugger.package

The codelldb package to use.

Type: package

Default: pkgs.vscode-extensions.vadimcn.vscode-lldb

Declared by:

+ <neovim-flake/modules/debugger> +
vim.debugger.ui.enable

Whether to enable a UI for nvim-dap (nvim-dap-ui).

Type: boolean

Default: false

Example: true

Declared by:

+ <neovim-flake/modules/debugger> +
vim.debugger.ui.autoOpen

automa open/close the ui when dap starts/ends

Type: boolean

Default: true

Declared by:

+ <neovim-flake/modules/debugger> +
vim.debugger.virtualText.enable

Whether to enable virtual text for dap.

Type: boolean

Default: false

Example: true

Declared by:

+ <neovim-flake/modules/debugger>
vim.disableArrows

Set to prevent arrow keys from moving cursor

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/basic>
vim.filetree.nvimTreeLua.enable

Enable nvim-tree-lua

Type: boolean

Default: false

Declared by:

@@ -159,6 +169,8 @@ <neovim-flake/modules/keys/which-key.nix>
vim.keys.whichKey.enable

Whether to enable which-key menu.

Type: boolean

Default: false

Example: true

Declared by:

<neovim-flake/modules/keys/which-key.nix> +
vim.languages.enableDebugger

Turn on debuggers for enabled languages by default

Type: boolean

Default: false

Declared by:

+ <neovim-flake/modules/languages>
vim.languages.enableExtraDiagnostics

Turn on extra diagnostics for enabled languages by default

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages>
vim.languages.enableFormat

Turn on formatting for enabled languages by default

Type: boolean

Default: false

Declared by:

@@ -167,6 +179,30 @@ <neovim-flake/modules/languages>
vim.languages.enableTreesitter

Turn on treesitter for enabled languages by default

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages> +
vim.languages.bash.enable

Whether to enable Bash language support.

Type: boolean

Default: false

Example: true

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.extraDiagnostics.enable

Enable extra Bash diagnostics

Type: boolean

Default: false

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.extraDiagnostics.types

List of Bash diagnostics to enable

Type: list of (value "shellcheck" (singular enum) or (submodule))

Default:

[
+  "shellcheck"
+]

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.format.enable

Enable Bash formatting

Type: boolean

Default: false

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.format.package

The Bash formatter package. package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.shfmt

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.format.type

Bash formatter to use

Type: value "shfmt" (singular enum)

Default: "shfmt"

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.lsp.enable

Enable Bash LSP support

Type: boolean

Default: false

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.lsp.package

The Bash LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.nodePackages.bash-language-server

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.lsp.server

Bash LSP server to use

Type: value "bashls" (singular enum)

Default: "bashls"

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.treesitter.enable

Bash treesitter

Type: boolean

Default: false

Declared by:

+ <neovim-flake/modules/languages/bash.nix> +
vim.languages.bash.treesitter.package

The bash treesitter package to use.

Type: package

Default: pkgs.vimPlugins.nvim-treesitter.builtGrammars.bash

Declared by:

+ <neovim-flake/modules/languages/bash.nix>
vim.languages.clang.enable

Whether to enable C/C++ language support.

Type: boolean

Default: false

Example: true

Declared by:

<neovim-flake/modules/languages/clang.nix>
vim.languages.clang.cHeader

C syntax for headers. Can fix treesitter errors, see: @@ -174,7 +210,7 @@ <neovim-flake/modules/languages/clang.nix>

vim.languages.clang.lsp.enable

Enable clang LSP support

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/clang.nix> -
vim.languages.clang.lsp.package

clang LSP server package

Type: package

Default: <derivation ccls-0.20220729>

Declared by:

+
vim.languages.clang.lsp.package

The clang LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.ccls

Declared by:

<neovim-flake/modules/languages/clang.nix>
vim.languages.clang.lsp.opts

Options to pass to clang LSP server

Type: null or string

Default: null

Declared by:

<neovim-flake/modules/languages/clang.nix> @@ -190,7 +226,7 @@ <neovim-flake/modules/languages/go.nix>
vim.languages.go.lsp.enable

Enable Go LSP support

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/go.nix> -
vim.languages.go.lsp.package

Go LSP server package

Type: package

Default: <derivation gopls-0.12.4>

Declared by:

+
vim.languages.go.lsp.package

The Go LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.gopls

Declared by:

<neovim-flake/modules/languages/go.nix>
vim.languages.go.lsp.server

Go LSP server to use

Type: value "gopls" (singular enum)

Default: "gopls"

Declared by:

<neovim-flake/modules/languages/go.nix> @@ -227,13 +263,13 @@ <neovim-flake/modules/languages/nix.nix>
vim.languages.nix.format.enable

Enable Nix formatting

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/nix.nix> -
vim.languages.nix.format.package

Nix formatter package

Type: package

Default: <derivation alejandra-3.0.0>

Declared by:

+
vim.languages.nix.format.package

The Nix formatter package package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.alejandra

Declared by:

<neovim-flake/modules/languages/nix.nix>
vim.languages.nix.format.type

Nix formatter to use

Type: one of "alejandra", "nixpkgs-fmt"

Default: "alejandra"

Declared by:

<neovim-flake/modules/languages/nix.nix>
vim.languages.nix.lsp.enable

Enable Nix LSP support

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/nix.nix> -
vim.languages.nix.lsp.package

Nix LSP server package

Type: package

Default: <derivation nil-unstable-2023-07-28>

Declared by:

+
vim.languages.nix.lsp.package

The Nix LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.nil

Declared by:

<neovim-flake/modules/languages/nix.nix>
vim.languages.nix.lsp.server

Nix LSP server to use

Type: string

Default: "nil"

Declared by:

<neovim-flake/modules/languages/nix.nix> @@ -251,13 +287,13 @@ <neovim-flake/modules/languages/python.nix>
vim.languages.python.format.enable

Enable Python formatting

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/python.nix> -
vim.languages.python.format.package

Python formatter package

Type: package

Default: <derivation black-23.3.0>

Declared by:

+
vim.languages.python.format.package

The Python formatter package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.black

Declared by:

<neovim-flake/modules/languages/python.nix>
vim.languages.python.format.type

Python formatter to use

Type: value "black" (singular enum)

Default: "black"

Declared by:

<neovim-flake/modules/languages/python.nix>
vim.languages.python.lsp.enable

Enable Python LSP support

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/python.nix> -
vim.languages.python.lsp.package

Python LSP server package

Type: package

Default: <derivation pyright-1.1.318>

Declared by:

+
vim.languages.python.lsp.package

The Python LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.nodePackages.pyright

Declared by:

<neovim-flake/modules/languages/python.nix>
vim.languages.python.lsp.server

Python LSP server to use

Type: value "pyright" (singular enum)

Default: "pyright"

Declared by:

<neovim-flake/modules/languages/python.nix> @@ -267,13 +303,19 @@ <neovim-flake/modules/languages/python.nix>
vim.languages.rust.enable

Whether to enable Rust language support.

Type: boolean

Default: false

Example: true

Declared by:

<neovim-flake/modules/languages/rust.nix> +
vim.languages.rust.packages.cargo

The Cargo package to use package to use.

Type: package

Default: pkgs.cargo

Declared by:

+ <neovim-flake/modules/languages/rust.nix> +
vim.languages.rust.packages.rustc

The Rustc package to use package to use.

Type: package

Default: pkgs.rustc

Declared by:

+ <neovim-flake/modules/languages/rust.nix>
vim.languages.rust.crates.enable

Whether to enable crates-nvim, tools for managing dependencies.

Type: boolean

Default: false

Example: true

Declared by:

<neovim-flake/modules/languages/rust.nix>
vim.languages.rust.crates.codeActions

Enable code actions through null-ls

Type: boolean

Default: true

Declared by:

<neovim-flake/modules/languages/rust.nix> +
vim.languages.rust.debugger.enable

Rust debugger support (codelldb)

Type: boolean

Default: false

Declared by:

+ <neovim-flake/modules/languages/rust.nix>
vim.languages.rust.lsp.enable

Rust LSP support (rust-analyzer with extra tools)

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/rust.nix> -
vim.languages.rust.lsp.package

rust-analyzer package

Type: package

Default: <derivation rust-analyzer-2023-07-17>

Declared by:

+
vim.languages.rust.lsp.package

The rust-analyzer package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.rust-analyzer

Declared by:

<neovim-flake/modules/languages/rust.nix>
vim.languages.rust.lsp.opts

Options to pass to rust analyzer

Type: string

Default: ""

Declared by:

<neovim-flake/modules/languages/rust.nix> @@ -293,13 +335,13 @@ <neovim-flake/modules/languages/sql.nix>
vim.languages.sql.format.enable

Enable SQL formatting

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/sql.nix> -
vim.languages.sql.format.package

SQL formatter package

Type: package

Default: <derivation sqlfluff-2.1.2>

Declared by:

+
vim.languages.sql.format.package

The SQL formatter package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.sqlfluff

Declared by:

<neovim-flake/modules/languages/sql.nix>
vim.languages.sql.format.type

SQL formatter to use

Type: value "sqlfluff" (singular enum)

Default: "sqlfluff"

Declared by:

<neovim-flake/modules/languages/sql.nix>
vim.languages.sql.lsp.enable

Enable SQL LSP support

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/sql.nix> -
vim.languages.sql.lsp.package

SQL LSP server package

Type: package

Default: <derivation sqls-0.2.22>

Declared by:

+
vim.languages.sql.lsp.package

The SQL LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.sqls

Declared by:

<neovim-flake/modules/languages/sql.nix>
vim.languages.sql.lsp.server

SQL LSP server to use

Type: value "sqls" (singular enum)

Default: "sqls"

Declared by:

<neovim-flake/modules/languages/sql.nix> @@ -323,13 +365,13 @@ <neovim-flake/modules/languages/ts.nix>
vim.languages.ts.format.enable

Enable Typescript/Javascript formatting

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/ts.nix> -
vim.languages.ts.format.package

Typescript/Javascript formatter package

Type: package

Default: <derivation prettier-3.0.0>

Declared by:

+
vim.languages.ts.format.package

The Typescript/Javascript formatter package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.nodePackages.prettier

Declared by:

<neovim-flake/modules/languages/ts.nix>
vim.languages.ts.format.type

Typescript/Javascript formatter to use

Type: value "prettier" (singular enum)

Default: "prettier"

Declared by:

<neovim-flake/modules/languages/ts.nix>
vim.languages.ts.lsp.enable

Enable Typescript/Javascript LSP support

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/ts.nix> -
vim.languages.ts.lsp.package

Typescript/Javascript LSP server package

Type: package

Default: <derivation typescript-language-server-3.3.2>

Declared by:

+
vim.languages.ts.lsp.package

The Typescript/Javascript LSP server package to use. Providing null will use command in $PATH.

Type: null or package

Default: pkgs.nodePackages.typescript-language-server

Declared by:

<neovim-flake/modules/languages/ts.nix>
vim.languages.ts.lsp.server

Typescript/Javascript LSP server to use

Type: value "tsserver" (singular enum)

Default: "tsserver"

Declared by:

<neovim-flake/modules/languages/ts.nix> @@ -343,9 +385,9 @@ <neovim-flake/modules/languages/zig.nix>
vim.languages.zig.lsp.enable

Zig LSP support (zls)

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/zig.nix> -
vim.languages.zig.lsp.package

ZLS package

Type: package

Default: <derivation zls-0.10.0>

Declared by:

+
vim.languages.zig.lsp.package

ZLS package

Type: package

Default: <derivation zls-0.11.0>

Declared by:

<neovim-flake/modules/languages/zig.nix> -
vim.languages.zig.lsp.zigPackage

Zig package used by ZLS

Type: package

Default: <derivation zig-0.10.1>

Declared by:

+
vim.languages.zig.lsp.zigPackage

Zig package used by ZLS

Type: package

Default: <derivation zig-0.11.0>

Declared by:

<neovim-flake/modules/languages/zig.nix>
vim.languages.zig.treesitter.enable

Enable Zig treesitter

Type: boolean

Default: false

Declared by:

<neovim-flake/modules/languages/zig.nix> @@ -483,7 +525,11 @@ <neovim-flake/modules/basic>
vim.tabline.nvimBufferline.enable

Whether to enable nvim-bufferline-lua.

Type: boolean

Default: false

Example: true

Declared by:

<neovim-flake/modules/tabline/nvim-bufferline.nix> -
vim.telescope.enable

Whether to enable enable telescope.

Type: boolean

Default: false

Example: true

Declared by:

+
vim.telescope.enable

Whether to enable telescope.

Type: boolean

Default: false

Example: true

Declared by:

+ <neovim-flake/modules/telescope> +
vim.telescope.fileBrowser.enable

Whether to enable telescope file browser.

Type: boolean

Default: false

Example: true

Declared by:

+ <neovim-flake/modules/telescope> +
vim.telescope.fileBrowser.hijackNetRW

Disables netrw and use telescope-file-browser in its place.

Type: boolean

Default: true

Declared by:

<neovim-flake/modules/telescope>
vim.theme.enable

Whether to enable themes.

Type: boolean

Default: false

Example: true

Declared by:

<neovim-flake/modules/theme/theme.nix> diff --git a/release-notes.html b/release-notes.html index 6e40c76..d6e3a29 100644 --- a/release-notes.html +++ b/release-notes.html @@ -6,7 +6,9 @@

If you are contributing and adding a new plugin, add the plugin name to availablePlugins in types-plugin.nix.

  • neovimBuilder has been removed for configuration. Using an overlay is no longer required. See the manual for the new way to configuration.
  • -Treesitter grammars are now configurable with vim.treesitter.grammars. Utilizes the nixpkgs nvim-treesitter plugin rather than a custom input in order to take advantage of build support of pinned versions. See discourse for more information. Packages can be found under the pkgs.vimPlugins.nvim-treesitter.builtGrammars 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: comment, toml, make, html, css, graphql, json. +Treesitter grammars are now configurable with vim.treesitter.grammars. Utilizes the nixpkgs nvim-treesitter plugin rather than a custom input in order to take advantage of build support of pinned versions. See discourse for more information. Packages can be found under the pkgs.vimPlugins.nvim-treesitter.builtGrammars 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: comment, toml, make, css, graphql, json. +
  • +Neovim’s bundled treesitter parsers are overriden when using nvim-treesitter which fixes query errors.
  • vim.configRC and vim.luaConfigRC are now of type DAG lines. This allows for ordering of the config. Usage is the same is in home-manager’s home.activation option.

    vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here"
  • @@ -43,6 +45,22 @@ Added support for statix and deadnix through vim.languages.nix.extraDiagnostics.types
  • Plugin inputs are now prefixed with plugin- to allow autodiscovery of them +
  • +Added bash language support at vim.languages.bash.enable, includes bash-language-server lsp, shellcheck diagnostics, and shfmt formatting +
  • +Added nvim-dap debugger support under vim.debugger.enable +
  • +UI using nvim-dap-ui under vim.debugger.ui.enable +
  • +Virtual text using nvim-dap-virtual-text under vim.debugger.virtualText.enable +
  • +Support for rust-tools debugger support under vim.languages.rust.debugger.enable +
  • +Add telescope-file-browser under vim.telescope.fileBrowser.enable +
  • +Internally switched to using nixpkgs-fmt for formatting +
  • +Setting a language server or format package to null will result in neovim calling the command as if it is in your $PATH
  • MoritzBoehme:

    antotocar34:

    • diff --git a/style.css b/style.css index 3e366fe..ab40af2 100644 --- a/style.css +++ b/style.css @@ -1,4 +1,4 @@ -:root{--nmd-color0: #0A3E68;--nmd-color1: #268598;--nmd-color2: #B8D09E;--nmd-color3: #F6CF5E;--nmd-color4: #EC733B;--nmd-color-info: #167cb9;--nmd-color-warn: #ff6700}html{scroll-behavior:smooth}body{text-size-adjust:100%;position:relative;width:100%;min-height:100vh}*,::after,::before{box-sizing:border-box}a:not([class]){text-decoration-skip-ink:auto}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{font-size:100%;font:inherit;margin:0;padding:0;border:0;vertical-align:baseline}:focus{outline:0}main,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}td:empty,th:empty{opacity:0}input:required,input{box-shadow:none}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset}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;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}textarea{overflow:auto;vertical-align:top;resize:vertical}audio,canvas,video{display:inline-block;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}a:active,a:hover{outline:none}img{border:0;max-width:100%;display:inline-block;vertical-align:middle;height:auto}picture{display:inline-block}figure{margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;border:0;background:transparent}button::-moz-focus-inner{border:0}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;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{border:0;background:transparent}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}hr{box-sizing:content-box;overflow:visible;background:#000;border:0;height:1px;line-height:0;margin:0;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,samp{font-family:monospace,monospace;font-size:100%}small{font-size:75%}sub,sup{font-size:75%;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}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0;outline:0}legend{color:inherit;white-space:normal;display:block;border:0;max-width:100%;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}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:.5rem .25rem}p{margin:.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}}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 .8rem}dd{margin-left:2rem}ul{margin:.9rem 0;padding-left:30px;list-style:disc}ul:first-child{margin-top:0}ul:last-child{margin-bottom:0}ol{margin:.9rem 0;padding-left:30px;list-style:decimal}ol:first-child{margin-top:0}ol:last-child{margin-bottom:0}li{margin:.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}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}.programlisting.console .hljs-meta{user-select: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}html{scroll-behavior:smooth}body{text-size-adjust:100%;position:relative;width:100%;min-height:100vh}*,::after,::before{box-sizing:border-box}a:not([class]){text-decoration-skip-ink:auto}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{font-size:100%;font:inherit;margin:0;padding:0;border:0;vertical-align:baseline}:focus{outline:0}main,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}td:empty,th:empty{opacity:0}input:required,input{box-shadow:none}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset}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;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}textarea{overflow:auto;vertical-align:top;resize:vertical}audio,canvas,video{display:inline-block;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}a:active,a:hover{outline:none}img{border:0;max-width:100%;display:inline-block;vertical-align:middle;height:auto}picture{display:inline-block}figure{margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;border:0;background:transparent}button::-moz-focus-inner{border:0}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;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{border:0;background:transparent}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}hr{box-sizing:content-box;overflow:visible;background:#000;border:0;height:1px;line-height:0;margin:0;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,samp{font-family:monospace,monospace;font-size:100%}small{font-size:75%}sub,sup{font-size:75%;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}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0;outline:0}legend{color:inherit;white-space:normal;display:block;border:0;max-width:100%;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}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:.5rem .25rem}p{margin:.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}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 .8rem}dd{margin-left:2rem}ul{margin:.9rem 0;padding-left:30px;list-style:disc}ul:first-child{margin-top:0}ul:last-child{margin-bottom:0}ol{margin:.9rem 0;padding-left:30px;list-style:decimal}ol:first-child{margin-top:0}ol:last-child{margin-bottom:0}li{margin:.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}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}.programlisting.console .hljs-meta{user-select:none}/*! Theme: Tomorrow Author: Chris Kempson (http://chriskempson.com) License: ~ MIT (or more permissive) [via base16-schemes-source]