Hi Juri, Juri Linkov writes: >> Also, we'd probably want to limit the size of the printed representation >> (FETCHER created by project-find-regexp currently closes over the full list >> of files, that's too much to save; it will probably be a good idea to >> rewrite it to fetch the list of files anew). > > Indeed, I confirm the problem: reverting an xref buffer with 'g' > can't find matches in a new file added after the first run. > > Doesn't this hint that both a bookmark and a revert function > should store more high-level arguments? For example, for > 'project-find-regexp' it should be sufficient to store > its argument 'regexp' together with 'default-directory' > to reconstruct the previous xref buffer contents. > Then it could store these arguments in a buffer-local variable > that could be used to create a bookmark. Yes, that's almost exactly what I did in my bookmarking implementation. Only difference is I kept the whole project object instead of just 'default-directory', since different project types can use different information. I'm attaching below the patch I applied in my local branch, as a reference. > PS: With C-u 'project-find-regexp' reads more arguments > in the body, but such reading should be moved to the > interactive form anyway like 'rgrep' does. Agreed. This patch does that too: