spacemacs/layers/+lang/yang/README.org
2019-05-15 21:08:21 +03:00

55 lines
2 KiB
Org Mode

#+TITLE: yang layer
#+TAGS: dsl|layer|markup|programming
* Table of Contents :TOC_5_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#syntax-checking-with-flycheck][Syntax checking with flycheck]]
- [[#configuration][Configuration]]
* Description
This layer provides support for the YANG file format.
** Features:
- Syntax highlighting
- Syntax checking via [[http://www.flycheck.org/en/latest/languages.html#yaml][flycheck]]
* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =yang= to the existing =dotspacemacs-configuration-layers= list in this
file.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(yang))
#+END_SRC
* Syntax checking with flycheck
Flycheck is used to check the yang syntax utilizing =pyang= which needs to be
installed on your system. Documentation for pyang can be found at the [[https://github.com/mbj4668/pyang][pyang
repository]], and can be installed using python packaging mechanisms
** Configuration
By default the syntax checking is done according to ~pyang --lint~ which uses
rules outlined in RFC 6020. To use a different set of rules set the
~yang-pyang-rules~ variable. The valid values at the time of writing were:
- mef Validate the module(s) according to MEF rules.
- ietf Validate the module(s) according to IETF rules.
- bbf Validate the module(s) according to BBF rules.
- ieee Validate the module(s) according to IEEE rules.
- lint Validate the module(s) according to RFC 6087 rules.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers
'((yang :variables yang-pyang-rules "ietf")))
#+END_SRC
To allow further customization one can set the ~yang-pyang-extra-args~
variable to a string that will be passed directly to the =pyang= command.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers
'((yang :variables yang-pyang-extra-args "--max-line-length=69")))
#+END_SRC