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