All Projects → gleam-lang → gleam-mode

gleam-lang / gleam-mode

Licence: Apache-2.0, GPL-3.0 licenses found Licenses found Apache-2.0 LICENSE-apache GPL-3.0 LICENSE-gpl
🐙 Gleam support for Emacs

Programming Languages

emacs lisp
2029 projects

Projects that are alternatives of or similar to gleam-mode

vscode-gleam
📟 Gleam support for VS Code
Stars: ✭ 34 (+13.33%)
Mutual labels:  editor-plugin, gleam
otp
📫 Fault tolerant multicore programs with actors
Stars: ✭ 169 (+463.33%)
Mutual labels:  gleam
Typescript Eslint Language Service
TypeScript language service plugin for ESLint
Stars: ✭ 108 (+260%)
Mutual labels:  editor-plugin
godot-admob-editor
This repository is for Godot's Addons to integrate natively AdMob to your Game Project without much configurations, with a beautiful UI and directly inside Godot Editor!
Stars: ✭ 43 (+43.33%)
Mutual labels:  editor-plugin
Vue Monaco Editor
Monaco Editor Vue Component
Stars: ✭ 187 (+523.33%)
Mutual labels:  editor-plugin
website
🏡 Gleam's website and guide
Stars: ✭ 35 (+16.67%)
Mutual labels:  gleam
Xmake Vscode
🍩 A XMake integration in Visual Studio Code
Stars: ✭ 84 (+180%)
Mutual labels:  editor-plugin
intellij-autohotkey
AutoHotkey plugin for the Jetbrain's IntelliJ platform
Stars: ✭ 30 (+0%)
Mutual labels:  editor-plugin
vscode-elixir-snippets
Elixir code snippets for VS Code
Stars: ✭ 17 (-43.33%)
Mutual labels:  editor-plugin
plug
🔌 A Gleam HTTP service adapter for the Plug web application interface
Stars: ✭ 25 (-16.67%)
Mutual labels:  gleam
zephir-sublime
Sublime Text syntax highlighting for for Zephir
Stars: ✭ 41 (+36.67%)
Mutual labels:  editor-plugin
elm-format-on-save
Sublime Text plugin to run elm-format on save
Stars: ✭ 18 (-40%)
Mutual labels:  editor-plugin
atom-linter-xo
Linter for XO
Stars: ✭ 90 (+200%)
Mutual labels:  editor-plugin
Custom Work For Brackets
<involuntarily lost source code> ____ Adds toolbar it include buttons show/hide with tabs of active documents on the top of the editor.
Stars: ✭ 126 (+320%)
Mutual labels:  editor-plugin
stdlib
🎁 Gleam's standard library
Stars: ✭ 153 (+410%)
Mutual labels:  gleam
Intellij Elixir
Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)
Stars: ✭ 1,488 (+4860%)
Mutual labels:  editor-plugin
elm-syntax-highlighting
Syntax Highlighting for Elm in Sublime Text
Stars: ✭ 27 (-10%)
Mutual labels:  editor-plugin
bnf-mode
A GNU Emacs major mode for editing BNF grammars
Stars: ✭ 34 (+13.33%)
Mutual labels:  editor-plugin
mix gleam
⚗️ Build Gleam code with mix
Stars: ✭ 84 (+180%)
Mutual labels:  gleam
gleam decode
Transform Erlang or Elixir data into Gleam data
Stars: ✭ 25 (-16.67%)
Mutual labels:  gleam

An Emacs Major Mode for Gleam

This mode uses tree-sitter under-the-hood for syntax highlighting and code navigation.

gleam-mode.mp4

Setup

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 (recommended)

(use-package gleam-mode
  :load-path "~/path/to/gleam-mode")

Replace ~/path/to/gleam-mode with the path where you cloned gleam-mode.

vanilla

(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.

Configuration

gleam-mode ships with a gleam-format command that is not bound by default to any keybinding. To bind it:

use-package

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)

vanilla

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)

TODO

  • Syntax highlighting
  • Indentation (at least somewhat)
  • Formatting
  • Completion?
  • REPL?

License

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].