conver-to-template function for typescrip and js treesit
This commit is contained in:
1 file changed
+26
@@ -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)
|
||||||
Reference in new issue
Block a user