X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=sheep;a=blobdiff_plain;f=src%2Fmain%2Ffunc.lisp;h=45bd970eeab2e26a0aeb93f1e22ff07c2485462f;hp=d3540a6a7f97f4b712cd1a218bc720bc6afa6513;hb=d898031;hpb=4c8ef06ce7bff14e78e79051870291d5075c42ea diff --git a/src/main/func.lisp b/src/main/func.lisp index d3540a6..45bd970 100644 --- a/src/main/func.lisp +++ b/src/main/func.lisp @@ -161,10 +161,10 @@ (text-item) (cond ((not (stringp text-item)) (list text-item)) - ((not (cl-ppcre:scan (car remaining-keywords) text-item)) (list text-item)) + ((not (cl-ppcre:scan (cl-ppcre:quote-meta-chars (car remaining-keywords)) text-item)) (list text-item)) (t (let - ((split-text (cl-ppcre:split (car remaining-keywords) text-item :limit 1000))) + ((split-text (cl-ppcre:split (cl-ppcre:quote-meta-chars (car remaining-keywords)) text-item :limit 1000))) (apply #'append (list (car split-text)) (mapcar (lambda (ti) (list (list :keyword (car remaining-keywords)) ti)) (cdr split-text))))))) @@ -259,7 +259,7 @@ (append (when types (list types)) (list - (parse-arguments-and-values args-to-be-defined) + (when args-to-be-defined (parse-arguments-and-values args-to-be-defined)) (parse-description)) (when (more) (list (parse-examples))))))))) @@ -294,7 +294,8 @@ (case (car type) (:list (format nil "(~{~(~A~)~^ ~})" (mapcar #'cadr (cadr type)))) (:or (format nil "~{~(~A~)~^ | ~}" (mapcar #'cadr (cadr type)))) - (:asterisk (format nil "~(~A~)*" (cadr (car (cadr type)))))))) + (:asterisk (format nil "~(~A~)*" (cadr (car (cadr type))))) + (:symbol (format nil "~(~A~)" (cadr (car (cadr type)))))))) (if (not types) "" (format nil "~{~A~%~}~%" @@ -325,6 +326,22 @@ (format nil "~A~A~A~A~A" (format-header (get-section :function)) (format-types (get-section :types)) - (format-args-and-values (get-section :arguments-and-values)) + (if + (get-section :arguments-and-values) + (format-args-and-values (get-section :arguments-and-values)) + "") (format-description (get-section :description)) (format-examples (get-section :examples))))) + +(defun ast->category-name (ast) + (declare (ignore ast)) + "function") + +(defun ast->short-name (ast) + (format nil "~(~A~)" (second (find :function ast :key #'car)))) + +(defun ast->link (ast) + (format nil "function-~(~A~)" (second (find :function ast :key #'car)))) + +(defun ast->short-desc (ast) + (format-text (car (cadr (find :description ast :key #'car)))))