An Emacs Major Mode for Gleam
This mode uses tree-sitter under-the-hood for syntax highlighting and code navigation.
gleam-mode.mp4
This project will eventually be hosted on MELPA. However, until that time, the best way to install this is first to clone the project:
$ git clone --recurse-submodules [email protected]:gleam-lang/gleam-mode
Then you'll need to load this from your init script (~/.emacs
or
~/.config/emacs/init.el
).
(use-package gleam-mode
:load-path "~/path/to/gleam-mode")
Replace ~/path/to/gleam-mode
with the path where you cloned gleam-mode.
(add-to-list 'load-path "~/path/to/gleam-mode")
(load-library "gleam-mode")
Replace ~/path/to/gleam-mode
with the path where you cloned gleam-mode.
gleam-mode ships with a gleam-format
command that is not bound by default to
any keybinding. To bind it:
Add :bind (:map gleam-mode-map (<binding> . gleam-format))
to your use-package declaration. e.g.
(use-package gleam-mode
:load-path "~/path/to/gleam-mode"
:bind (:map gleam-mode-map
("C-c g f" . gleam-format)))
(here "C-c g f" means Control
+C
followed by g
followed by f
)
Add the following after the lines where you setup gleam-mode:
(define-key gleam-mode-map (kbd "C-c g f") 'gleam-format)
(here "C-c g f" means Control
+C
followed by g
followed by f
)
Alternatively, add these lines to your configuration to automatically run gleam-format
on save:
(add-hook 'gleam-mode-hook
(lambda () (add-hook 'before-save-hook 'gleam-format nil t)))
- Syntax highlighting
- Indentation (at least somewhat)
- Formatting
- Completion?
- REPL?
This program is licensed under The Apache License, Version 2.0 or, at your option, under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. See LICENSE-apache for the terms of the Apache License, Version 2.0 or LICENSE-gpl for the terms of the GNU Public License, Version 3.