prolog:xref_open_source(+SourceID, -Stream)[multifile, library(prolog_source)]
Hook to open an xref SourceID. This is used for cross-referencing non-files, such as XPCE buffers, files from archives, git repositories, etc. When successful, the corresponding prolog:xref_close_source/2 hook is called for closing the source.
 prolog:xref_open_source(+UUID, -Stream)[multifile, swish(lib/highlight)]
Open a source. As we cannot open the same source twice we must lock it. As of 7.3.32 this can be done through the prolog:xref_close_source/2 hook. In older versions we get no callback on the close, so we must leave the editor unlocked.
 prolog:xref_open_source(+Source, -Stream)[multifile, library(pce_prolog_xref)]
Open the PceEmacs as a Prolog stream.
 prolog:xref_source_identifier(+Src, -Id) is semidet[multifile, swish(lib/include)]
prolog:xref_open_source(+File, -Stream) is det[multifile, swish(lib/include)]
prolog:xref_source_time(+File, -Modified) is det[multifile, swish(lib/include)]
Map swish://file to a file from the gitty store.
 prolog:xref_source_identifier(+Object, -Ref)[multifile, library(pce_prolog_xref)]
The cross-referencer runs faster if the reference is an indexable term. Therefore we strip the XPCE @ from the object.