Provides font-locking, indentation and navigation support for the Elixir programming language.
elixir-mode is available on the community maintained repository -
MELPA. Just run M-x package-install [RET] elixir-mode [RET]
inside your emacs and you're ready to go.
Please take note of the MELPA URL. If you are using http://melpa.milkbox.net then you are not getting the latest stable version of this package. Please use http://melpa-stable.milkbox.net when retrieving this package.
If you're not already using ELPA, check the emacswiki page to get familiar with it.
If you would prefer to install from source, you can download the latest tagged release from https://github.com/elixir-lang/emacs-elixir/releases/latest/.
After unzipping either the tarball or zipfile into your desired location, add the following in your .emacs file:
(add-to-list 'load-path "~/path/to/emacs-elixir/")
(require 'elixir-mode)
Command (For the M-x prompt.) |
Description |
---|---|
elixir-mode |
Switches to elixir-mode. |
elixir-mode-compile-file |
Compile Elixir files. Works fine on *.exs files, too, if needed. |
elixir-cos-mode |
Applies compile-on-save minor mode. |
elixir-mode-iex |
Launch iex inside Emacs. Use C-u
univesal-argument
to run iex with some additional arguments.
|
elixir-mode-eval-on-region |
Evaluates the Elixir code on the marked region.
This is bound to C-c ,r while in elixir-mode . |
elixir-mode-eval-on-current-line |
Evaluates the Elixir code on the current line.
This is bound to C-c ,c while in elixir-mode . |
elixir-mode-eval-on-current-buffer |
Evaluates the Elixir code in the current buffer.
This is bound to C-c ,b while in elixir-mode . |
elixir-mode-string-to-quoted-on-region |
Get the representation of the expression on the marked region.
This is bound to C-c ,a while in elixir-mode . |
elixir-mode-string-to-quoted-on-current-line |
Get the representation of the expression on the current line.
This is bound to C-c ,l while in elixir-mode . |
elixir-mode-opengithub |
Open the GitHub page for Elixir. |
elixir-mode-open-elixir-home |
Go to Elixir README in the browser. |
elixir-mode-open-docs-master |
Open the Elixir documentation for the master. |
elixir-mode-open-docs-stable |
Open the Elixir documentation for the latest stable release. |
elixir-mode-show-version |
Print version info for elixir-mode. |
Any file that matches the glob *.ex[s]
or *.elixir
is
automatically opened in elixir-mode, but you can change this
functionality easily.
;; Highlights *.elixir2 as well
(add-to-list 'auto-mode-alist '("\\.elixir2\\'" . elixir-mode))
Custom variables for elixir-mode.
Variable | Default | Description |
---|---|---|
elixir-compiler-command (string) |
"elixirc" |
Command to compile Elixir code. |
elixir-iex-command (string) |
"iex" |
Command to start an interactive REPL in IEX . |
elixir-mode-cygwin-paths (boolean) |
t |
Should Cygwin paths be used on Windows? |
elixir-mode-cygwin-prefix (string) |
"/cygdrive/C" |
The prefix for Cygwin-style paths. |
Hooks can be used to add functionality to elixir-mode. This example adds compile on save.
(defun elixir-mode-compile-on-save ()
"Elixir mode compile files on save."
(and (file-exists (buffer-file-name))
(file-exists (elixir-mode-compiled-file-name))
(elixir-cos-mode t)))
(add-hook 'elixir-mode-hook 'elixir-mode-compile-on-save)
Keymaps can be added to the elixir-mode-map
variable.
If you want to use ruby-end-mode
for a more comfortable editing
experience, you can add the following to your elixir-mode-hook
:
(add-to-list 'elixir-mode-hook
(defun auto-activate-ruby-end-mode-for-elixir-mode ()
(set (make-variable-buffer-local 'ruby-end-expand-keywords-before-re)
"\\(?:^\\|\\s-+\\)\\(?:do\\)")
(set (make-variable-buffer-local 'ruby-end-check-statement-modifiers) nil)
(ruby-end-mode +1)))
If you looking for integrated emacs mix support, see here: elixir-mix.el
This mode is based on the Emacs mode by secondplanet.
Please read CONTRIBUTING.md for guidelines on how to contribute to this project.