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))))
|
||||
|
||||
|
||||
(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)
|
||||
Reference in new issue
Block a user