Create function python-add-docstring
With limitations. Will fix up later.
This commit is contained in:
parent
c0d42b5c48
commit
b94281446b
37
lisp/prog.el
Normal file
37
lisp/prog.el
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
(defun gpolonkai/prog-in-string-p ()
|
||||||
|
"Return `t' if point is inside a string."
|
||||||
|
(nth 3 (syntax-ppss)))
|
||||||
|
|
||||||
|
(defun gpolonkai/prog-in-comment-p ()
|
||||||
|
"Return `t' if point is inside a comment."
|
||||||
|
(nth 4 (syntax-ppss)))
|
||||||
|
|
||||||
|
(defun gpolonkai/python-add-docstring ()
|
||||||
|
"Add a Python docstring to the current thing. If point is
|
||||||
|
inside a function, add docstring to that. If point is in a
|
||||||
|
class, add docstring to that. If neither, add docstring to the
|
||||||
|
beginning of the file."
|
||||||
|
(interactive)
|
||||||
|
(save-restriction
|
||||||
|
(widen)
|
||||||
|
(beginning-of-defun)
|
||||||
|
(if (not (looking-at-p "\\(def\\|class\\) "))
|
||||||
|
(progn
|
||||||
|
(goto-char (point-min))
|
||||||
|
(back-to-indentation)
|
||||||
|
(forward-char)
|
||||||
|
(while (gpolonkai/prog-in-comment-p)
|
||||||
|
(forward-line)
|
||||||
|
(back-to-indentation)
|
||||||
|
(forward-char)))
|
||||||
|
(search-forward ":")
|
||||||
|
(while (or (gpolonkai/prog-in-string-p)
|
||||||
|
(gpolonkai/prog-in-comment-p))
|
||||||
|
(search-forward ":")))
|
||||||
|
(if (eq 1 (count-lines 1 (point)))
|
||||||
|
(open-line-above)
|
||||||
|
(open-line-below))
|
||||||
|
(insert "\"\"\"")
|
||||||
|
(open-line-below)
|
||||||
|
(insert "\"\"\"")
|
||||||
|
(open-line-above)))
|
Loading…
Reference in New Issue
Block a user