Elixir is a cool language which implements a syntax approach like Ruby on top of the Erlang runtime BEAM. It is a fully functional programming language with a powerful macro system with full integration with the world famous Erlang OTP and a powerful MVC website framework called Phoenix.
I use Language Server Protocol for Elixir in Emacs CCE, I believe LSP mode can automatically install the server
provide 'cce/elixir)
(use-package elixir-mode
(
:configsetq lsp-ui-flycheck-enable 1)
(setq lsp-elixir-server-command '("elixir-ls"))
(
:hook
(elixir-mode . lsp)
(elixir-mode . company-mode)lambda () (add-hook 'before-save-hook 'elixir-format nil t)))
(elixir-mode . (
(elixir-mode . flycheck-mode)"C-<tab>" . company-complete)))
:bind (:map elixir-mode-map (
use-package ob-elixir) (
- name: elixir installed
dnf:
name:
- elixir
- elixir-doc
- erlang
- erlang-doc
state: installed
tags:
- elixir
- code
I need node.js installed for Phoenix to be able to webpack
assets.
- name: phoenix dependencies installed
dnf:
name:
- nodejs
- npm
- inotify-tools
state: installed
tags:
- elixir
- code
- name: elixir-ls directory exists
become: yes
become_user: "{{local_account}}"
file:
state: directory
path: ~/Code/elixir-ls
tags:
- elixir
- code
- name: clone elixir-ls
become: yes
become_user: "{{local_account}}"
unarchive:
dest: ~/Code/elixir-ls/
remote_src: yes
src: https://github.com/elixir-lsp/elixir-ls/releases/download/v0.3.3/elixir-ls.zip
tags:
- elixir
- code
- name: executables can be executed
become: yes
become_user: "{{local_account}}"
file:
mode: 0755
path: "{{item}}"
with_items:
- ~/Code/elixir-ls/debugger.sh
- ~/Code/elixir-ls/language_server.sh
tags:
- elixir
- code
Some fucking face crap:
defun cce/fix-elixir-faces ()
('elixir-atom-face
(face-remap-add-relative
'(:inherit font-lock-builtin-face)))'elixir-mode-hook #'cce/fix-elixir-faces) (add-hook