#+TITLE: Pact layer #+TAGS: general|layer|multi-paradigm|programming * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#layer][Layer]] - [[#flycheck][Flycheck]] - [[#key-bindings][Key bindings]] - [[#repl][REPL]] * Description This layer adds support for the [[https://github.com/kadena-io/pact][Pact Smart Contract Language]]. ** Features: - Syntax highlighting for ~.pact~ source files - Easy interaction with an embedded Pact REPL - Flycheck integration *Note:* You will need a ~pact~ binary on your ~PATH~ for REPL features to function. * Install ** Layer To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =pact= to the existing =dotspacemacs-configuration-layers= list in this file. ** Flycheck To enable flycheck, add the following to your =dotspacemacs/user-config=: #+BEGIN_SRC emacs-lisp (add-hook 'pact-mode-hook 'flycheck-mode) #+END_SRC * Key bindings All Pact specific bindings are prefixed with the major-mode leader ~SPC m~. ** REPL REPL commands are prefixed by ~SPC m s~: | Key binding | Description | |-------------+-------------------------------------------------| | ~SPC m s '~ | Open a Pact REPL in a new frame | | ~SPC m s b~ | Load or reload the current buffer into the REPL |