#+title: :lang elixir #+subtitle: Erlang done right #+created: May 24, 2017 #+since: 2.0.3 (#83) * Description :unfold: This module provides support for [[https://elixir-lang.org/][Elixir programming language]] via [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]]. ** Maintainers /This module has no dedicated maintainers./ [[doom-contrib-maintainer:][Become a maintainer?]] ** Module flags - +lsp :: Enable LSP support for ~elixir-mode~. Requires [[doom-module::tools lsp]] and a langserver (supports [[https://github.com/elixir-lsp/elixir-ls/][elixir-ls]]). - +tree-sitter :: Leverages tree-sitter for better syntax highlighting and structural text editing. Requires [[doom-module::tools tree-sitter]]. ** Packages - [[doom-package:elixir-mode]] - [[doom-package:exunit]] - [[doom-package:flycheck-credo]] if [[doom-module::checkers syntax]] ** 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./ * Installation [[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]] This module requires Elixir. Install it via your distribution's package manager or a version management tool such as [[https://github.com/asdf-vm/asdf-elixir][asdf]]. To add LSP support, install [[https://github.com/JakeBecker/elixir-ls/][elixir-ls]] and enable [[doom-module::tools lsp]]. To support linting with [[https://github.com/rrrene/credo][credo]], add ~:checkers syntax~ to ~$DOOMDIR/init.el~. ** Install Elixir (See [[https://elixir-lang.org/install.html]] for other operating systems) *** With ~asdf~ #+begin_src sh asdf plugin-add elixir asdf install elixir 1.9.1 #+end_src *** Arch Linux #+begin_src sh pacman -S elixir #+end_src *** Gentoo Linux #+begin_src sh emerge -v dev-lang/elixir #+end_src *** openSUSE #+begin_src sh zypper install elixir #+end_src * TODO Usage #+begin_quote 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote - Code completion ([[doom-module::completion company]]) - Documentation lookup ([[doom-module::tools lookup]]) - Mix integration - Phoenix support - ~iex~ integration ([[doom-module::tools eval]]) - Syntax checking ([[doom-module::checkers syntax]], using [[doom-package:flycheck-credo]]) - Formatting for elixir files provided by [[doom-module::editor format]]. ** exunit-mode The exunit-mode prefix is [[kbd:][ t]]. Here is some examples: | command | key / ex command | description | |--------------------------------------------+-------------------+--------------------------------------------------------| | ~exunit-verify-all~ | [[kbd:][ t a]] | Runs exunit on all files | | ~exunit-rerun~ | [[kbd:][ t r]] | Re-runs last exunit command | | ~exunit-verify~ | [[kbd:][ t v]] | Runs exunit on current file | | ~exunit-verify-single~ | [[kbd:][ t s]] | Runs exunit for the item on cursor | | ~exunit-toggle-file-and-test~ | [[kbd:][ t t]] | Switch between implementation and test | | ~exunit-toggle-file-and-test-other-window~ | [[kbd:][ t T]] | Switch between implementation and test in other window | * 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