Daan Ro <daant...@gmail.com> writes:

>> (completing-read
>> (concat
>> (if negate "Negative filter" "Filter")
>> " [+cat-tag<0:10-/regexp/]: ")
>> #'org-agenda-filter-completion-function
>> nil nil ff)
>>
>
> Right. Is 'Keys [citation1 ;; citation2 ;; ...]: ' fine? Or an

Yup.

> +              (`dynamic
> +               (let
> +                   ((repeated-sep
> +                     (org-cite-basic--complete-key-dynamic-crm-separator
> +                      (hash-table-keys table) ";")))
> +                 (setq prompt
> +                       (format
> +                        "Keys [citation1 %s citation2 %s ...]: "
> +                        repeated-sep repeated-sep))
> +                 (format "[ \t]*%s[ \t]*"
> +                         (regexp-quote repeated-sep)))))))

What about other allowed values of
`org-cite-basic-complete-key-crm-separator'?
What if the user customizes it to, say [ ]*;;[ ]*? We should probably
display it somehow.

We can reuse the following from mct.el package:

(defun mct--regex-to-separator (regex)
  "Parse REGEX of `crm-separator' in `mct-choose-completion-dwim'."
  (save-match-data
    (cond
     ;; whitespace-delimited, like default & org-set-tag-command
     ((string-match (rx
                     bos "[" (1+ blank) "]*"
                     (group (1+ any))
                     "[" (1+ blank) "]*" eos)
                    regex)
      (match-string 1 regex))
     ;; literal character
     ((string= regex (regexp-quote regex))
      regex))))

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to