guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

29/45: import: utils: Wrap function names in @code.


From: guix-commits
Subject: 29/45: import: utils: Wrap function names in @code.
Date: Wed, 27 Nov 2024 11:07:21 -0500 (EST)

rekado pushed a commit to branch r-team
in repository guix.

commit 8b852c37926d0df1ac94eac2bc4c965f7a66307a
Author: Ricardo Wurmus <rekado@elephly.net>
AuthorDate: Wed Nov 27 14:08:34 2024 +0100

    import: utils: Wrap function names in @code.
    
    * guix/import/utils.scm (beautify-description): Adjust to include "()" in
    @code wrapper.
    * tests/import-utils.scm ("beautify-description: wrap function names in
    @code"): New test.
    
    Change-Id: I2b58728571a18ce8302c1b6f98b0c16dbe5931c3
---
 guix/import/utils.scm  | 18 ++++++++++++------
 tests/import-utils.scm |  6 +++++-
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index faeec60845..ccf18a7bf9 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2018, 2019, 2020, 2023 Ludovic Courtès 
<ludo@gnu.org>
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2017, 2019, 2020, 2022, 2023 Ricardo Wurmus 
<rekado@elephly.net>
+;;; Copyright © 2017, 2019, 2020, 2022, 2023, 2024 Ricardo Wurmus 
<rekado@elephly.net>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
 ;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
@@ -338,15 +338,21 @@ LENGTH characters."
                    ;; Escape single @ to prevent it from being understood as
                    ;; invalid Texinfo syntax.
                    (cut regexp-substitute/global #f "@" <> 'pre "@@" 'post)
-                   ;; Wrap camelCase or PascalCase words in @code{...}.
+                   ;; Wrap camelCase or PascalCase words or text followed
+                   ;; immediately by "()" in @code{...}.
                    (lambda (word)
-                     (let ((pattern (make-regexp 
"([A-Z][a-z]+[A-Z]|[a-z]+[A-Z])")))
+                     (let ((pattern
+                            (make-regexp
+                             "([A-Z][a-z]+[A-Z]|[a-z]+[A-Z]|.+\\(\\))")))
                        (match (list-matches pattern word)
                          (() word)
                          ((m . rest)
-                          ;; Do not include leading or trailing punctuation.
-                          (let* ((last-text (or (and=> (string-skip-right word 
char-set:punctuation) 1+)
-                                                (string-length word)))
+                          ;; Do not include leading or trailing punctuation,
+                          ;; unless its "()".
+                          (let* ((last-text (if (string-suffix? "()" 
(match:substring m 1))
+                                                (string-length 
(match:substring m 1))
+                                                (or (and=> (string-skip-right 
word char-set:punctuation) 1+)
+                                                    (string-length word))))
                                  (inner (substring word (match:start m) 
last-text))
                                  (pre (string-take word (match:start m)))
                                  (post (substring word last-text 
(string-length word))))
diff --git a/tests/import-utils.scm b/tests/import-utils.scm
index bec38b0c30..607349203c 100644
--- a/tests/import-utils.scm
+++ b/tests/import-utils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2022, 2023, 2024 Ricardo Wurmus 
<rekado@elephly.net>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@@ -65,6 +65,10 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS."))
   "Code (@code{DelayedMatrix}, @code{MaMa}, or @code{MeMe}) should be wrapped."
   (beautify-description "Code (DelayedMatrix, MaMa, or MeMe) should be 
wrapped."))
 
+(test-equal "beautify-description: wrap function names in @code"
+  "The main functions are: @code{haplo.em()} and @code{haplo.power()}; FYI."
+  (beautify-description "The main functions are: haplo.em() and haplo.power(); 
FYI."))
+
 (test-equal "license->symbol"
   'license:lgpl2.0
   (license->symbol license:lgpl2.0))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]