Max Nikulin <maniku...@gmail.com> writes: >>> + (\"\\\\.pdf::\\\\(.+\\\\)\\\\\\='\" . \"okular file://%s\\\\\\\\#%1\") >>> + ;; No location within the file, optionally followed by \"::\", >>> + ;; e.g. <file:///usr/share/doc/bash/bashref.pdf>. >>> + (\"\\\\.pdf\\\\(?:::\\\\)?\\\\\\='\" . \"okular %s\") >> >> This is a nice set of examples, but it probably does not belong to this >> docstring. I'd rather see this in `org-file-apps' docstring or even in >> the manual. > > I thought on this and I do not think it should be added to the manual. > Instead a set of hooks should be defined for popular PDF viewers: > evince, zathura, xpdf, firefox, chromium & Co, etc. Such hook injects a > number of supported `org-file-apps' records and users may add suitable > hook to e.g. (with-eval-after-load 'org (push ...)). It may be > implemented as a dedicated package org-pdf-viewers.el. The only problems > is that adding entries programmatically breaks easy customization > interface for `org-file-apps'. Currently there is the same issue with > `org-link-parameters' that is a defcustom variables with entries added > by various org extensions.
We may alter the :type specifier in `org-file-apps' to something like :type `(repeat (choice ,org-file-apps-presets ...)) `org-file-apps-presets' will then contain :type specs for some common file types and the apps. The variable can be easily populated by third-party packages as well. > I added the example with hope to better explain the purpose of this > function. I do not think that it is needed in the `org--open-file-format-command' docstring. If you wish, it would be better to add examples of the arguments and return values of `org--open-file-format-command' instead of showing `org-file-apps' examples. -- Ihor Radchenko, Org mode contributor, 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