Home Gen395 @ 2024-10-29-01:16
This commit is contained in:
parent
48cd702c19
commit
55b7311fc2
@ -21,8 +21,10 @@
|
||||
(let* ((template (treesit-docgen--fn-template-node fn-node))
|
||||
(tpars (treesit-node-child-by-field-name template "parameters")))
|
||||
(when tpars
|
||||
(mapcar (lambda (tpar) (treesit-node-text tpar)) (treesit-node-children tpars)))
|
||||
))
|
||||
(delq nil
|
||||
(mapcar (lambda (tpar) (when (string= (treesit-node-type tpar) "type_parameter_declaration")
|
||||
(treesit-node-text tpar)))
|
||||
(treesit-node-children tpars))))))
|
||||
|
||||
(defun treesit-docgen--fn-type (fn-node)
|
||||
"Get the return type of the function node"
|
||||
@ -34,17 +36,36 @@
|
||||
(let* ((fn-node-decl (treesit-node-child-by-field-name fn-node "declarator"))
|
||||
(fn-node-pars (treesit-node-child-by-field-name fn-node-decl "parameters"))
|
||||
)
|
||||
(mapcar (lambda (par) (treesit-node-text par)) (treesit-node-children fn-node-pars))))
|
||||
(when fn-node-pars
|
||||
(delq nil
|
||||
(mapcar (lambda (par) (when (string= (treesit-node-type par) "parameter_declaration")
|
||||
(treesit-node-text par)))
|
||||
(treesit-node-children fn-node-pars))))))
|
||||
|
||||
(defun treesit-docgen-insert-doc ()
|
||||
"Insert a documentation template for the function at point"
|
||||
(interactive)
|
||||
(let* ((node (treesit-node-at (point)))
|
||||
(fn-node (treesit-docgen--get-function-node node))
|
||||
)
|
||||
(fn-node (treesit-docgen--get-function-node node)))
|
||||
(when fn-node
|
||||
(message "FN-Type: %s, FN-Pars: %s, FN-TPars: %s"
|
||||
(or (treesit-docgen--fn-type fn-node) "none")
|
||||
(or (treesit-docgen--fn-pars fn-node) "none")
|
||||
(or (treesit-docgen--fn-tpars fn-node) "none")
|
||||
))))
|
||||
(let* ((fn-type (treesit-docgen--fn-type fn-node))
|
||||
(fn-pars (treesit-docgen--fn-pars fn-node))
|
||||
(fn-tpars (treesit-docgen--fn-tpars fn-node)))
|
||||
(goto-char (treesit-node-start
|
||||
(or (treesit-docgen--fn-template-node fn-node)
|
||||
fn-node)))
|
||||
(insert "///\n")
|
||||
(insert "///@brief\n")
|
||||
(insert "///\n")
|
||||
(when fn-tpars
|
||||
(dolist (tpar fn-tpars)
|
||||
(insert "///@tparam " tpar "\n"))
|
||||
(insert "///\n"))
|
||||
(when fn-pars
|
||||
(dolist (par fn-pars)
|
||||
(insert "///@param " par "\n"))
|
||||
(insert "///\n"))
|
||||
(when fn-type
|
||||
(insert "///@return " fn-type "\n")
|
||||
(insert "///\n")
|
||||
)))))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user