conver-to-template function for typescrip and js treesit

This commit is contained in:
zedhugh committed 2023-02-07 00:17:20 +08:00
1 parent 446374268d
commit cd48103863
1 file changed
+26
+26
View File
@@ -28,4 +28,30 @@
(add-to-list 'tree-sitter-major-mode-language-alist '(typescript-tsx-mode . tsx)))) (add-to-list 'tree-sitter-major-mode-language-alist '(typescript-tsx-mode . tsx))))
(defun creature/treesit-convert-to-template ()
"Conver the string at point to a template string by treesit."
(interactive)
(when (and (treesit-available-p) (treesit-language-at (point)))
(let* ((node (treesit-node-at (point)))
(node-type (treesit-node-type node))
(start nil)
(end nil))
(when (string= node-type "string_fragment")
(setq start (treesit-node-start node)
end (treesit-node-end node))
(save-restriction
(save-excursion
(goto-char start)
(backward-delete-char 1)
(insert "`")
(goto-char end)
(delete-char 1)
(insert "`")))))))
(with-eval-after-load 'js
(define-key js-ts-mode-map (kbd "C-c '") #'creature/treesit-convert-to-template))
(with-eval-after-load 'typescript-ts-mode
(define-key typescript-ts-base-mode-map (kbd "C-c '") #'creature/treesit-convert-to-template))
(provide 'init-typescript) (provide 'init-typescript)