#+title:    :lang faust
#+subtitle: DSP, but you can keep your soul
#+created:  October 14, 2019
#+since:    21.12.0 (#1898)

* Description :unfold:
Add support to [[https://faust.grame.fr/][Faust language]] inside emacs.

- Faust code syntax highlighting and indentation
- Project-based (inter-linked Faust files)
- Build/compile with output window
- Graphic diagrams generation and visualization in the (default) browser
- Browse generated C++ code inside Emacs
- Inter-linked files/buffers :
  - From "component" to Faust file
  - From "include" to Faust library file
- From error to file:line number
- From function name to online documentation
- Fully configurable (build type/target/architecture/toolkit, keyboard
  shortcuts, etc.)
- Automatic keyword completion (if Auto-Complete is installed)
- Automatic objets (functions, operators, etc.) template insertion with default
  sensible values (if [[doom-module::editor snippets]] is enabled)
- Modeline indicator of the state of the code

** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]

** Packages
- [[doom-package:faustine]]

** Hacks
- Both ~faust-mode~ and ~faustine-mode~ are hardcoded to use [[doom-package:auto-complete]],
  which Doom does not use. Its obnoxious 'You really should install and use
  auto-complete' warnings have been silenced.

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

| Binding           | Description          |
|-------------------+----------------------|
| [[kbd:][<localleader> b]]   | build                |
| [[kbd:][<localleader> c]]   | syntax check         |
| [[kbd:][<localleader> d]]   | diagram              |
| [[kbd:][<localleader> h]]   | online dock          |
| [[kbd:][<localleader> RET]] | mdoc                 |
| [[kbd:][<localleader> o]]   | toggle output buffer |
| [[kbd:][<localleader> s]]   | source code          |
| [[kbd:][<localleader> r]]   | run                  |
| [[kbd:][<localleader> S-b]] | build all            |
| [[kbd:][<localleader> S-d]] | diagram all          |

* 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
