* Tree-sitter
#+begin_src emacs-lisp
  (push '(kotlin-mode . kotlin-ts-mode) major-mode-remap-alist)
#+end_src

- folding ?
- movement ?
- selections ?
    
* Language Server
Feature list

* Symbol Look up
- eglot

* Linting
- flycheck

* Snippets
- tempel
- yasnippets
  

* Konfiguration
  #+begin_src emacs-lisp
  (use-package d-mode
    :pin gnu
    :config
    (defun my/d-mode-hook ()
      (add-to-list 'eglot-stay-out-of 'flymake)
      )
    :config
    (add-to-list 'eglot-server-programs `((d-mode d-ts-mode) . ("/opt/volker/projects/tcl_lsp/serve-d/serve-d")))
    :bind (
	   :map d-mode-map
	   )
    :hook
    (d-mode . flycheck-mode)
    (d-mode . eglot-ensure)
    (d-mode . yas-minor-mode)
    (d-mode . hs-minor-mode)
    (d-mode . my/d-mode-hook)  
    )
  #+end_src

* UI

Prefix is C-S-<space>

#+begin_src emacs-lisp
#+end_src  


"+"        '(yas-insert-snippet    :wk "code snippets")
"l"        '(flycheck-list-errors  :wk "linter window")

"f"        '(hydra-fold/body :wk "Folding")
;; try combobulate - ts-movement mode not useful

"b"        '(:ignore t :which-key "TODO: build/run/debug")

"d"        '(:ignore t :which-key "doc")

"s"        '(:ignore t :which-key "mark/select")
)