#+title:    :lang nix
#+subtitle: I hereby declare "nix geht mehr!"
#+created:  December 02, 2017
#+since:    2.0.8 (#280)

* Description :unfold:
This module adds support for the Nix language to Doom Emacs, along with tools
for managing [[https://nixos.org/][Nix(OS)]].

Includes:
- Syntax highlighting
- Completion through [[doom-package:company]] and/or [[doom-package:helm]]
- Nix option lookup
- Formatting (~nixfmt~)

** Maintainers
- [[doom-user:][@hlissner]]

[[doom-contrib-maintainer:][Become a maintainer?]]

** Module flags
- +tree-sitter ::
  Leverages tree-sitter for better syntax highlighting and structural text
  editing. Requires [[doom-module::tools tree-sitter]].
- +lsp ::
  Enable an LSP hook for ~nix-mode~. Requires [[doom-module::tools lsp]] and a language
  server (one of either ~nil~ or ~rnix-lsp~).

  You can still start a nix lsp manually without this flag, this just adds
  a hook to always start the lsp when loading ~nix-mode~.

** Packages
- [[doom-package:company-nixos-options]] if [[doom-module::completion company]]
- [[doom-package:helm-nixos-options]] if [[doom-module::completion helm]]
- [[doom-package:nix-mode]]
- [[doom-package:nix-update]]

** Hacks
/No hacks documented for this module./

** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./

* TODO Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]

This module requires:
- [[https://nixos.org/guides/install-nix.html][The Nix package manager]], for a variety of its features (besides syntax
  highlighting).
- =nixfmt=, for automatic formatting (requires [[doom-module::editor format]]).

- *MacOS:* TODO
- *Arch Linux:* TODO
- *NixOS:* in ~pkgs.nixfmt~

* TODO Usage
#+begin_quote
 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote

** Keybindings
| Binding         | Description          |
|-----------------+----------------------|
| [[kbd:][<localleader> b]] | ~nix-build~          |
| [[kbd:][<localleader> f]] | ~nix-update-fetch~   |
| [[kbd:][<localleader> o]] | ~+nix/lookup-option~ |
| [[kbd:][<localleader> p]] | ~nix-format-buffer~  |
| [[kbd:][<localleader> r]] | ~nix-repl-show~      |
| [[kbd:][<localleader> s]] | ~nix-repl-shell~     |
| [[kbd:][<localleader> u]] | ~nix-unpack~         |

* TODO Configuration
#+begin_quote
 󱌣 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote

* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]

* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]

* TODO Appendix
#+begin_quote
 󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote
