spacemacs/layers/+lang/elixir
Mario Mainz c476c03360 Remove ruby-end-mode and use smartparens instead
ruby-end-mode does not always behave correctly. An example for that is
if statements, which don't have an end statement if they are written on
one line. Also, it feels dirty to use a Ruby package to implement Elixir
syntax behaviour.
Smartparens has functionality to define pairs for certain major modes.
This adds smartparens pairs for the "do" keyword and the arrow (->)
operator, so that the "end" keyword is automatically inserted and
properly indented on enter.
2016-02-14 23:13:05 -05:00
..
img Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
alchemist-refcard.pdf Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
alchemist-refcard.tex Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
config.el core: Add support for lazy installed layer. 2016-01-31 00:10:14 -05:00
packages-config.el Remove ruby-end-mode and use smartparens instead 2016-02-14 23:13:05 -05:00
packages.el Remove ruby-end-mode and use smartparens instead 2016-02-14 23:13:05 -05:00
README.org Update install layer section in REAMDE.org files 2016-01-06 00:21:55 -05:00

Elixir layer

/TakeV/spacemacs/media/commit/c476c033606d63c5f277d4582efa202572f06d8a/layers/+lang/elixir/img/elixir.png with /TakeV/spacemacs/media/commit/c476c033606d63c5f277d4582efa202572f06d8a/layers/+lang/elixir/img/alchemist.png

Description

This layer adds support for Elixir .

Alchemist brings the Elixir tooling to Emacs and comes with a bunch of features like:

  • Powerful IEx integration
  • Mix integration
  • Compile & Execution of Elixir code
  • Inline code evaluation
  • Documentation lookup
  • Definition lookup
  • Smart code completion
  • Elixir project management
  • Integration with company-mode

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add elixir to the existing dotspacemacs-configuration-layers list in this file.

Key bindings

Refcard

You find and overview of all the key-bindings on the Alchemist-Refcard.

Help

Key Binding Description
SPC m h : Run custom search for help
SPC m h h Show help of the current expression
SPC m h H Toggle through search history
SPC m h r Show help for current region

Mix

Key Binding Description
SPC m m : Prompt for a mix command
SPC m m c Compile the whole application
SPC m m h Show help for a specific mix command
SPC m m x Run the given expression in the Elixir application context

Project

Key Binding Description
SPC m p t Open project test directory and list all test files.
SPC m g t Toggle between a file and its tests in the current window.
SPC m g T Toggle between a file and its tests in other window.

Evaluation in place

Key Binding Description
SPC m e b Evaluate buffer
SPC m e B Evaluate buffer and insert result
SPC m e l Evaluate current line
SPC m e L Evaluate current line and insert result
SPC m e r Evaluate region
SPC m e R Evaluate region and insert result

REPL interactions

Key Binding Description
SPC m s c Compiles the current buffer in the IEx process.
SPC m s i Start an iex inferior process
SPC m s I Start an IEx process with mix (iex -S mix)
SPC m s l Send current line to REPL buffer
SPC m s L Send current line to REPL buffer and focus it in insert state
SPC m s m Reloads the module in the current buffer in your IEx process
SPC m s r Send region to REPL buffer
SPC m s R Send region to REPL buffer and focus it in insert state

Tests

Key Binding Description
SPC m g t Open the test file for current buffer
SPC m t a Run all the tests
SPC m t b Run all the tests from current buffer
SPC m t r Rerun the last test
SPC m t t Run test under point

Compile

Key Binding Description
SPC m c : Run a custom compile command with elixirc
SPC m c b Compile the current buffer with elixirc. elixirc
SPC m c f Compile the given filename with elixirc

Execute

Key Binding Description
SPC m x : Run a custom execute command with elixir
SPC m x b Run the current buffer through elixir
SPC m x f Run elixir with the given filename

Code Definition Jump

Key Binding Description
SPC m g g Jump to the elixir expression definition at point.
SPC m , Pop back to where SPC m g g was last invoked.