Add mercury layer
This commit is contained in:
parent
1de174003e
commit
08576ce34d
29
layers/+lang/mercury-layer/README.org
Normal file
29
layers/+lang/mercury-layer/README.org
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#+TITLE: mercury layer
|
||||||
|
|
||||||
|
[[file:img/mercury.png]]
|
||||||
|
|
||||||
|
* Table of Contents :TOC_4_gh:noexport:
|
||||||
|
- [[#description][Description]]
|
||||||
|
- [[#features][Features:]]
|
||||||
|
- [[#install][Install]]
|
||||||
|
- [[#key-bindings][Key bindings]]
|
||||||
|
|
||||||
|
* Description
|
||||||
|
This layer adds support for the Mercury language.
|
||||||
|
|
||||||
|
** Features:
|
||||||
|
- Indentation.
|
||||||
|
- Syntax highlighting.
|
||||||
|
- Compiling and running.
|
||||||
|
|
||||||
|
* Install
|
||||||
|
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
|
||||||
|
add =mercury= to the existing =dotspacemacs-configuration-layers= list in this
|
||||||
|
file.
|
||||||
|
|
||||||
|
* Key bindings
|
||||||
|
|
||||||
|
| Key Binding | Description |
|
||||||
|
|-------------+--------------------------------------|
|
||||||
|
| ~SPC c c~ | Compile current buffer file. |
|
||||||
|
| ~SPC c r~ | Compile and run current buffer file. |
|
BIN
layers/+lang/mercury-layer/img/mercury.png
Normal file
BIN
layers/+lang/mercury-layer/img/mercury.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.7 KiB |
54
layers/+lang/mercury-layer/packages.el
Normal file
54
layers/+lang/mercury-layer/packages.el
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
;;; packages.el --- mercury layer packages file for Spacemacs.
|
||||||
|
;;
|
||||||
|
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
||||||
|
;;
|
||||||
|
;; Author: Ludvig Böklin <ludvig.boklin@protonmail.com>
|
||||||
|
;; URL: https://github.com/syl20bnr/spacemacs
|
||||||
|
;;
|
||||||
|
;; This file is not part of GNU Emacs.
|
||||||
|
;;
|
||||||
|
;;; License: GPLv3
|
||||||
|
|
||||||
|
(setq mercury-packages
|
||||||
|
'((metal-mercury-mode :location (recipe
|
||||||
|
:fetcher github
|
||||||
|
:repo "ahungry/metal-mercury-mode"
|
||||||
|
:commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8"))
|
||||||
|
(mercury-mode :excluded t)
|
||||||
|
flycheck
|
||||||
|
(flycheck-mercury :requires flycheck)
|
||||||
|
smartparens))
|
||||||
|
|
||||||
|
(defun mercury/post-init-flycheck ()
|
||||||
|
(add-hook 'metal-mercury-mode-hook 'flycheck-mode))
|
||||||
|
|
||||||
|
(defun mercury/init-flycheck-mercury ()
|
||||||
|
"Initialize flycheck-mercury"
|
||||||
|
(use-package flycheck-mercury
|
||||||
|
:defer t
|
||||||
|
:init (require 'flycheck-mercury)))
|
||||||
|
|
||||||
|
(defun mercury/init-metal-mercury-mode ()
|
||||||
|
"Initialize metal-mercury-mode"
|
||||||
|
(use-package metal-mercury-mode
|
||||||
|
:defer t
|
||||||
|
:init
|
||||||
|
:mode ("\\.m\\'" . metal-mercury-mode)
|
||||||
|
:config
|
||||||
|
(progn
|
||||||
|
(dolist (x '(
|
||||||
|
;; ("m=" . "format")
|
||||||
|
("mc" . "mercury/compile")
|
||||||
|
;; ("mh" . "help")
|
||||||
|
))
|
||||||
|
(spacemacs/declare-prefix-for-mode 'metal-mercury-mode (car x) (cdr x)))
|
||||||
|
|
||||||
|
(spacemacs/set-leader-keys-for-major-mode 'metal-mercury-mode
|
||||||
|
;; make
|
||||||
|
"cb" 'metal-mercury-mode-compile
|
||||||
|
"cr" 'metal-mercury-mode-runner))))
|
||||||
|
|
||||||
|
(defun mercury/post-init-smartparens ()
|
||||||
|
(if dotspacemacs-smartparens-strict-mode
|
||||||
|
(add-hook 'metal-mercury-mode-hook #'smartparens-strict-mode)
|
||||||
|
(add-hook 'metal-mercury-mode-hook #'smartparens-mode)))
|
Loading…
Reference in a new issue