tvl-depot/users/Profpatsch/emacs-tree-sitter-move/tmp.el
Profpatsch fdb47be7d7 feat(emacs-tree-sitter-move): load more than one tree sitter grammar
Change-Id: I43b8ddb180c056f1b8c650ccc915ec41bae83960
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2262
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2021-01-01 22:40:38 +00:00

28 lines
974 B
EmacsLisp

(defun tree-sitter-load-from-grammar-dir (grammar-dir sym lang-name)
(tree-sitter-load
sym
(format "%s/bin/%s"
(getenv grammar-dir)
lang-name)))
(defun tree-sitter-init-tmp-langs (alist)
(mapcar
(lambda (lang)
(pcase-let ((`(,name ,sym ,mode) lang))
(tree-sitter-load-from-grammar-dir "TREE_SITTER_GRAMMAR_DIR" sym name)
(cons mode sym)))
alist))
(setq tree-sitter-major-mode-language-alist
(tree-sitter-init-tmp-langs
'(("python" python python-mode)
("json" json js-mode)
("bash" bash sh-mode)
)))
(define-key evil-normal-state-map (kbd "C-.") #'tree-sitter-move-reset)
(define-key evil-normal-state-map (kbd "C-<right>") #'tree-sitter-move-right)
(define-key evil-normal-state-map (kbd "C-<left>") #'tree-sitter-move-left)
(define-key evil-normal-state-map (kbd "C-<up>") #'tree-sitter-move-up)
(define-key evil-normal-state-map (kbd "C-<down>") #'tree-sitter-move-down)