From 6b9633098d6ac3bc2038d11748ebf9f67c591cf2 Mon Sep 17 00:00:00 2001
From: Markus Heiser <markus.heiser@darmarit.de>
Date: Sat, 5 Jun 2021 17:42:06 +0200
Subject: [PATCH] [emacs] flycheck - activate yamllint and use .yamllint.yml

Open YAML file and use:

  M-x flycheck-mode

Since we use yamllint from local/py3/bin, creating a virtualenv is a
prerequisite:

  make pyenv

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
---
 .dir-locals.el | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/.dir-locals.el b/.dir-locals.el
index 6daf66591..23609b4d2 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -50,37 +50,41 @@
 ((nil
   . ((fill-column . 80)
      (indent-tabs-mode . nil)
-     ))
- (makefile-gmake-mode
-  . ((indent-tabs-mode . t)
-     ))
- (python-mode
-  . ((indent-tabs-mode . nil)
-
      ;; project root folder is where the `.dir-locals.el' is located
      (eval . (setq-local
 	      prj-root (locate-dominating-file  default-directory ".dir-locals.el")))
-
      (eval . (setq-local
 	      python-environment-directory (expand-file-name "./local" prj-root)))
-
      ;; use 'py3' enviroment as default
      (eval . (setq-local
 	      python-environment-default-root-name "py3"))
-
      (eval . (setq-local
 	      python-shell-virtualenv-root
-	      (concat python-environment-directory
-		      "/"
-		      python-environment-default-root-name)))
-
-     ;; python-shell-virtualenv-path is obsolete, use python-shell-virtualenv-root!
-     ;; (eval . (setq-local
-     ;; 	 python-shell-virtualenv-path python-shell-virtualenv-root))
-
+              (expand-file-name python-environment-default-root-name python-environment-directory)
+              ))
      (eval . (setq-local
 	      python-shell-interpreter
 	      (expand-file-name "bin/python" python-shell-virtualenv-root)))
+     ))
+
+ (makefile-gmake-mode
+  . ((indent-tabs-mode . t)
+     ))
+
+ (yaml-mode
+  . (
+     ;; flycheck should use the local py3 environment
+     (eval . (setq-local
+	      flycheck-yaml-yamllint-executable
+	      (expand-file-name "bin/yamllint" python-shell-virtualenv-root)))
+     (eval . (setq-local
+              flycheck-yamllintrc
+              (expand-file-name  ".yamllint.yml" prj-root)))
+     (flycheck-checker . yaml-yamllint)
+     ))
+
+ (python-mode
+  . ((indent-tabs-mode . nil)
 
      (eval . (setq-local
 	      python-environment-virtualenv