futhark-mode for Emacs
See the file
futhark-mode.el. This Emacs mode provides:
- syntax highlighting
- automatic indentation
- interaction with an inferior
For IDE-like features, try Eglot,
which works well with Futhark's built-in LSP server
You can install this mode with Emacs' package manager. Enable the
https://melpa.org/ archive, and install the
Alternatively, add the following lines to your Emacs init file:
(add-to-list 'load-path "path/to/futhark-mode")
This mode is pretty straightforward and does not provide a lot of bells and whistles. But it does have some commands:
- C-c C-l (
futhark-load-file) loads the current file into
futhark repl, creating a new instance if a current one does not exist.
You can start Eglot automatically whenever you edit a Futhark file by adding
(add-hook 'futhark-mode-hook 'eglot-ensure)
to your init file.
Testing (for developers)
tools/test-indentation to test if the auto-indentation works. If
you find a piece of code that futhark-mode cannot indent properly,
please fix it, and put a small example in the
directory to ensure that it doesn't break in the future.
Note that not all of the indentation examples in
necessarily ideal. Some of them exemplify behaviour that we would
like to fix (but exist as a regression test to avoid even worse
Additionally, you can symlink the
tools/git-hooks/pre-commit hook into
.git/hooks directory to automatically check your changes
before each commit.
- Niels G. W. Serup
- Rasmus Wriedt Larsen
- Troels Henriksen
Reloading when hacking on the code
Add the directory containing the
.el files to your load path with
(add-to-list 'load-path "/.../futhark-mode")
and then enter
M-x RET futhark-dev-reload RET whenever needed.