diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2024-11-27 14:08:34 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2024-12-03 16:59:54 +0100 |
commit | 8bee3a59108f09d362be46e25f91e86e6b918d84 (patch) | |
tree | c48a762c9b830d0ebf6044bea0f746462e098339 | |
parent | c851b73e79b9a1927658714f191b4611b8ab1ea3 (diff) | |
download | guix-8bee3a59108f09d362be46e25f91e86e6b918d84.tar guix-8bee3a59108f09d362be46e25f91e86e6b918d84.tar.gz |
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
-rw-r--r-- | guix/import/utils.scm | 18 | ||||
-rw-r--r-- | 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)) |