* XML
- REPL
- tree-sitter
- Language-Server

** Tree-sitter
There is no nxml-ts-mode yet.

- moving around: nxml-mode
Forward element
C-M n 
Backward element
C-M p 
UP element
C-M u 
Down element
C-M d 
  
- selections:
  - expreg
  - evil-textobj-tree-sitter
- folding
  - hideshow
    

** Linter

Build into nxml-mode (needs a schema).

https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-3

** Formatter


  #+begin_src emacs-lisp
  #+end_src

** Auto Completion
nxml-mode

https://www.gnu.org/software/emacs/manual/html_node/nxml-mode/Completion.html

     
** Konfiguration
  #+begin_src emacs-lisp
  (require 'nxml-mode)
(require 'sgml-mode)
(require 'nxml-mode)

(add-to-list 'hs-special-modes-alist
	     '(nxml-mode
	       "<!--\\|<[^/>]*[^/]>"
	       "-->\\|</[^/>]*[^/]>"

	       "<!--"
	       sgml-skip-tag-forward
	       nil))

(use-package emacs
  :pin gnu
  :bind (
	 :map nxml-mode-map
	 ("C-+"      . expreg-expand)
	 ("C--"      . expreg-contract)
	 ("C-c h"    . hs-toggle-hiding)
	 )
  :hook
  (nxml-mode . hs-minor-mode)
  (nxml-mode . yas-minor-mode)
  (nxml-mode . flycheck-mode)
  :config
  )
  #+end_src

There is a Hydra defined for ts-movement, open with <f5>.

** Language Server

*** void-Linux

*** Windows

#+begin_src sh
#+end_src

** UI

  #+begin_src emacs-lisp
#+end_src

"+"        '(yas-insert-snippet         :wk "code snippets")
;;    "j"        '(hydra-tree-sitter-move/body           :wk "movement hydra")


"m"        '(:ignore t :which-key "mark/select")
"mp"       '(mark-paragraph :wk "paragraph")