From: Joost Kremers <joostkremers@fastmail.fm> To: Titus von der Malsburg <malsburg@posteo.de> Cc: Org Mode List <emacs-orgmode@gnu.org> Subject: Re: CSL-JSON support for =parsebib= Date: Fri, 07 May 2021 14:34:25 +0200 [thread overview] Message-ID: <875yzuwv4z.fsf@fastmail.fm> (raw) In-Reply-To: <875yzuk9qd.fsf@posteo.de> Hi Titus, On Fri, May 07 2021, Titus von der Malsburg wrote: > I’m the maintainer of bibtex-completion, helm-bibtex, and ivy-bibtex. My name is > actually Titus, not Theo ;) :$ (I do apologise!) > Regarding the symbols vs. string issue: I don’t have a strong opinion, but > personally tend to favor a conservative solution that avoids braking changes. > First, it’s difficult to predict how switching to symbols is going to affect > other software including custom code written by users. Second, JSON key names > can contain spaces and other weird stuff. Apparently, =json-parse-{buffer|string}= then gives you a symbol with a space in it... > So strings are perhaps a more natural > choice anyway. (It appears that you can actually configure the JSON parser to > use strings instead of symbols. See variable `json-key-type`.) This works for the Elisp library =json.el=, but Emacs 27 can be compiled with native JSON support, which, however, doesn't provide this option, unfortunately. > Finally, > it’s not necessarily clear that avoiding the conversion to strings saves > sufficiently many CPU cycles to justify the effort. I can simply try it out. Shouldn't be difficult to code up. > Regarding support for CSL-JSON: bibtex-completion is currently very > BibTeX-oriented and uses fairly low-level parsing functions from parsebib. We > could add similar support for CSL-JSON I'm afraid that won't be possible, because the CLS-JSON support in parsebib isn't low-level. ;-) There's basically just a single function that gives you all the entries in the buffer and that's it. > Some rough ideas for such an API (just for illustration): > - A function that returns all entries in a .bib or CSL-JSON file. Those already exist... ;-) For JSON, that's basically the only option, because the actual parsing isn't handled by parsebib. For BibTeX, such a function has existed for some time now. > - A function that returns an entry with a specific key (or multiple entries). That would be easy to support, but IMHO is better handled in bibtex-completion: just parse the buffer and then call =gethash= on the resulting hash table. Or what use-case do you have in mind? > - Functions for resolving strings and cross-references. This, too, is something that parsebib already does. parsebib has a lower-level API and a higher-level API, and the latter does essentially what you suggest here. I thought bibtex-completion was already using it... -- Joost Kremers Life has its moments
next prev parent reply other threads:[~2021-05-07 13:08 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-07 9:17 Joost Kremers 2021-05-07 11:52 ` Bruce D'Arcus 2021-05-07 12:29 ` Titus von der Malsburg 2021-05-07 12:34 ` Joost Kremers [this message] 2021-05-07 13:33 ` Titus von der Malsburg 2021-05-07 14:47 ` Joost Kremers 2021-05-07 16:22 ` Titus von der Malsburg 2021-05-08 9:51 ` András Simonyi 2021-05-08 15:51 ` Joost Kremers 2021-05-07 13:03 ` Bruce D'Arcus 2021-05-08 11:57 Denis Maier
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=875yzuwv4z.fsf@fastmail.fm \ --to=joostkremers@fastmail.fm \ --cc=emacs-orgmode@gnu.org \ --cc=malsburg@posteo.de \ --subject='Re: CSL-JSON support for =parsebib=' \ /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).