* AWK
- tree-sitter grammar
- flycheck module (uses gawk)
- formatting via C-mode
- ya-snippets (Melpa package)
  
no language server available.

#+begin_src emacs-lisp
  (use-package awk-ts-mode
    :hook (awk-mode . yas-minor-mode)
    (awk-mode . flycheck-mode)
    :bind (
	   :map awk-mode-map (
			      ("C-c C-f" . my/indent-buffer)
			      )
	   )
    )

(push '(awk-mode . awk-ts-mode) major-mode-remap-alist)
#+end_src


* bash
- there is a language server available, but it has not been installed
- tree-sitter grammar
- flycheck module (uses shellcheck)
- formatting:  


#+begin_src emacs-lisp
  (require 'shell)
(use-package emacs
  :hook (sh-mode . yas-minor-mode)
  (sh-mode . flycheck-mode)
  :bind (
	 :map shell-mode-map (
			      ("C-c C-f" . my/indent-buffer)
			      )
	 )
  )
#+end_src

* XML
** Linting
#+begin_src emacs-lisp
  (use-package nxml
    :hook
    (nxml-mode . flycheck-mode))
#+end_src

** Formatting
Use /indent-region/ .

xml-format not useful.

* Templating

** mustache - logic-less templates
https://en.wikipedia.org/wiki/Mustache_(template_system)

Processors available in many computation-languages.

TCL implementations:\\
https://github.com/ianka/mustache.tcl/tree/master
https://core.tcl-lang.org/akupries/mustache/doc/trunk/embedded/md/doc/files/mustache_introduction.md

#+begin_src emacs-lisp
  (use-package mustache-mode
    )
#+end_src

*** TODO check web-mode
very popular, has support for mustache-templates\\
https://web-mode.org/

- also supports many other templating-languages
- features: folding, syntax highlighting 
- CSS

*** E-Lisp processor
implements spec 1.0.2, see https://github.com/Wilfred/mustache.el

#+begin_src emacs-lisp
  (use-package mustache
    )
#+end_src

* Graphics

** Drawing with asymptote
#+begin_src emacs-lisp
  (require 'asy-mode)
#+end_src

** GraphViz

#+begin_src emacs-lisp
  (use-package graphviz-dot-mode
  :config
  (setq graphviz-dot-indent-width 3))
  (add-to-list 'org-src-lang-modes '("dot" . graphviz-dot))
#+end_src

** UML
#+begin_src emacs-lisp
  (use-package plantuml-mode)
  (add-to-list 'auto-mode-alist '("\\.puml\\'" . plantuml-mode))
  (setq plantuml-jar-path (expand-file-name (concat emacsen-dir "/java/plantuml/plantuml.jar")))
  (setq plantuml-default-exec-mode 'jar)
#+end_src

#+begin_src emacs-lisp
  (setq org-plantuml-jar-path plantuml-jar-path) 
  (add-to-list 'org-src-lang-modes '("plantuml" . plantuml))
  (org-babel-do-load-languages 'org-babel-load-languages '((plantuml . t)))
#+end_src

#+begin_src emacs-lisp
  (use-package flycheck-plantuml)
  (with-eval-after-load 'flycheck
    (flycheck-plantuml-setup))
#+end_src

Flowcharts with ascii art:

#+begin_src emacs-lisp
  (setq org-ditaa-jar-path (concat emacsen-dir "java/plantuml/ditaa.jar"))

  (org-babel-do-load-languages
   'org-babel-load-languages
   '((ditaa . t)
     (dot . t)
     (plantuml . t))
   )
#+end_src


* Bye

#+begin_src emacs-lisp
;;; programming-rudimentary-setup.el ends here
#+end_src