Skip to content

Commit d2c63a1

Browse files
committed
Fixed logic.
1 parent 9a04a89 commit d2c63a1

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

docstr-writers.el

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,15 @@
5252
(setq index (1+ index)))
5353
is-empty))
5454

55+
(defun docstr-writers--function-name (search-string)
56+
"Analyze SEARCH-STRING to get function name."
57+
(let ((pos (docstr-util-last-regex-in-string "(" search-string)) fn-str)
58+
(when pos
59+
(setq fn-str (substring search-string 0 pos)
60+
fn-str (split-string fn-str " " t)
61+
fn-str (nth (1- (length fn-str)) fn-str)))
62+
(if (stringp fn-str) (string-trim fn-str) nil)))
63+
5564
(defun docstr-writers--return-type (search-string)
5665
"Analyze SEARCH-STRING to get return type.
5766
This is for c-like programming languages."
@@ -106,9 +115,11 @@ or with default value
106115
(param-type-str-lst '()) (param-var-str-lst '())
107116
param-types param-vars
108117
(result-datas '()))
109-
(setq param-string (docstr-writers--analyze-param-string search-string))
118+
(setq param-string
119+
(ignore-errors (docstr-writers--analyze-param-string search-string)))
110120

111-
(setq param-lst (split-string param-string ","))
121+
(when (stringp param-string)
122+
(setq param-lst (split-string param-string ",")))
112123
(when (docstr-writers--param-empty-p param-lst)
113124
(setq param-lst '()))
114125

@@ -173,9 +184,11 @@ the last word only."
173184
(param-type-str-lst '()) (param-var-str-lst '())
174185
param-types param-vars
175186
(result-datas '()))
176-
(setq param-string (docstr-writers--analyze-param-string search-string))
187+
(setq param-string
188+
(ignore-errors (docstr-writers--analyze-param-string search-string)))
177189

178-
(setq param-lst (split-string param-string ","))
190+
(when (stringp param-string)
191+
(setq param-lst (split-string param-string ",")))
179192
(when (docstr-writers--param-empty-p param-lst)
180193
(setq param-lst '()))
181194

@@ -232,7 +245,7 @@ Argument PREFIX is string infront of each document string."
232245
Argument RETURN-TYPE-STR is a string contain return type name. Argument
233246
IGNORE-LST is a list of string contain return type that we want to skip.
234247
Argument PREFIX is string infront of each document string."
235-
(when (and (not (string-empty-p return-type-str))
248+
(when (and (stringp return-type-str)
236249
(not (docstr-util-is-contain-list-string ignore-lst return-type-str)))
237250
(insert prefix)
238251
(insert (docstr-form-return return-type-str "" docstr-desc-return))))
@@ -256,6 +269,22 @@ Argument START is the starting point ot the insertion."
256269
(docstr-writers--insert-return return-type-str '("void") prefix)
257270
(docstr-writers-after start)))
258271

272+
(defun docstr-writers-c (search-string)
273+
"Insert document string for C using SEARCH-STRING."
274+
(docstr-writers-c++ search-string))
275+
276+
(defun docstr-writers-c++ (search-string)
277+
"Insert document string for C++ using SEARCH-STRING."
278+
(let* ((start (point)) (prefix "\n* ")
279+
(paren-param-list (docstr-writers--paren-param-list search-string))
280+
(param-types (nth 0 paren-param-list))
281+
(param-vars (nth 1 paren-param-list))
282+
;; Get the return data type.
283+
(return-type-str (docstr-writers--return-type search-string)))
284+
(docstr-writers--insert-param param-types param-vars prefix)
285+
(docstr-writers--insert-return return-type-str nil prefix)
286+
(docstr-writers-after start)))
287+
259288
(defun docstr-writers-java (search-string)
260289
"Insert document string for Java using SEARCH-STRING."
261290
(let* ((start (point)) (prefix "\n* ")

0 commit comments

Comments
 (0)