From: Maxim Nikulin <manikulin@gmail.com> To: emacs-orgmode@gnu.org Subject: Re: [PATCH] Possibility of using alternative separators in macros Date: Wed, 12 May 2021 18:49:25 +0700 [thread overview] Message-ID: <s7gfc6$hj1$1@ciao.gmane.io> (raw) In-Reply-To: <87h7jkdesz.fsf@christianmoe.com> On 03/05/2021 04:08, Christian Moe wrote: > > I frequently need to escape commas in macros, which is a bit of a pain > and easy to forget. Maybe it is not convenient, but if unescaped comma is a real pain, you could detect it and report an error # single line may be wrapped by mailer #+MACRO: extraerror (eval (if (not $2) (concat "*" $1 "*") (error (format "%s: unescaped comma %S" (line-number-at-pos) $2)))) {{{extraerror(valid)}}} {{{extraerror(valid\, with escaped comma)}}} {{{extraerror(missed, comma)}}} Org gurus might suggest a recipe how to convert error into warning, that is easily noticeable but still not fatal, to get all problems after single export attempt. Preferably it should act similar to compiler errors allowing to jump between problem points. Org 9.3 requires a bit different macro #MACRO: extraerror (eval (if (equal "" $2) (concat "*" $1 "*") (error (format "%s: unescaped comma %S" (line-number-at-pos) $2)))) > Another point: Something that would help, without adding new syntax, is > making macro expansion smart enough to *ignore* separators when the > macro definition contains only *one* argument anyway, as in the cases > above. I think, this is an idea of the best approach. Unsure concerning precise form. Maybe e.g. "$_" could expand into all arguments greater than maximum referenced number. No promise of forward compatibility of the following hack since it relies on undocumented implementation details. #+MACRO: allargshack (eval (format "- /%s/ :: %s" $1 (mapconcat #'identity _ ","))) {{{allargshack(one, two, three)}}} I do not know if Eric can swap order of arguments of his credits macro. Extracting namely last argument requires a bit more lisp code.
next prev parent reply other threads:[~2021-05-12 11:50 UTC|newest] Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-30 13:26 Juan Manuel Macías 2021-05-01 8:30 ` Bastien 2021-05-01 10:04 ` Nicolas Goaziou 2021-05-01 10:17 ` Bastien 2021-05-01 10:18 ` Bastien 2021-05-01 21:50 ` Juan Manuel Macías 2021-05-02 21:08 ` Christian Moe 2021-05-12 11:49 ` Maxim Nikulin [this message] 2021-05-16 19:21 ` Christian Moe 2021-05-17 17:03 ` Maxim Nikulin 2021-05-17 18:51 ` Christian Moe 2021-05-02 12:13 ` Eric S Fraga 2021-05-11 11:01 ` Eric S Fraga 2021-05-11 16:12 ` Juan Manuel Macías [not found] ` <87im3prvz8.fsf@ucl.ac.uk> 2021-05-11 18:25 ` Juan Manuel Macías 2021-05-15 13:29 ` Bastien 2021-05-15 20:14 ` Juan Manuel Macías 2021-05-15 20:25 ` Bastien 2021-05-15 21:05 ` Juan Manuel Macías 2021-05-16 12:17 ` Bastien 2021-05-16 16:48 ` Maxim Nikulin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://www.orgmode.org/ * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='s7gfc6$hj1$1@ciao.gmane.io' \ --to=manikulin@gmail.com \ --cc=emacs-orgmode@gnu.org \ --subject='Re: [PATCH] Possibility of using alternative separators in macros' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).