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
This commit is contained in:
Profpatsch 2020-12-19 21:39:17 +01:00
parent 3279786cd2
commit fdb47be7d7
2 changed files with 23 additions and 8 deletions

View file

@ -1,14 +1,28 @@
(tree-sitter-load
'python
(format "%s/bin/python"
(getenv "TREE_SITTER_GRAMMAR_DIR")))
(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
'((python-mode . python)))
(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)
(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)

View file

@ -15,6 +15,7 @@
(defun tree-sitter-move--setup ()
;; TODO
(progn
;; TODO: if tree-sitter-mode fails to load, display a better error
(tree-sitter-mode t)
(setq tree-sitter-move--cursor (tsc-root-node tree-sitter-tree))
(add-variable-watcher