Files
creature/lisp/init-treesit.el
T

35 lines
1.2 KiB
EmacsLisp

;; -*- coding: utf-8; lexical-binding: t; -*-
(defconst creature/treesit-available
(and (fboundp 'treesit-available-p) (treesit-available-p))
"Built-in `treesit' available.")
(setq treesit-extra-load-path
(list (file-name-concat creature/config-dir "tree-sitter")))
(when creature/treesit-available
(unless (featurep 'treesit) (require 'treesit))
(when (treesit-ready-p 'javascript)
(add-to-list 'major-mode-remap-alist '(js-mode . js-ts-mode))
(add-to-list 'major-mode-remap-alist '(javascript-mode . js-ts-mode)))
(when (treesit-ready-p 'lua)
(add-to-list 'major-mode-remap-alist '(lua-mode . lua-ts-mode)))
(when (treesit-ready-p 'json)
(add-to-list 'major-mode-remap-alist '(js-json-mode . json-ts-mode)))
(when (treesit-ready-p 'c)
(add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)))
(when (treesit-ready-p 'cpp)
(add-to-list 'major-mode-remap-alist '(c++-mode . c++-ts-mode)))
(when (treesit-ready-p 'python)
(add-to-list 'major-mode-remap-alist '(python-mode . python-ts-mode)))
(when (treesit-ready-p 'cmake)
(add-to-list 'major-mode-remap-alist '(cmake-mode . cmake-ts-mode))))
(provide 'init-treesit)