emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automatic (e)tags generation and incremental updates


From: Eli Zaretskii
Subject: Re: Automatic (e)tags generation and incremental updates
Date: Tue, 12 Jan 2021 17:08:23 +0200

> Cc: tom@tromey.com, john@yates-sheets.org, philipk@posteo.net,
>  emacs-devel@gnu.org
> From: Dmitry Gutov <dgutov@yandex.ru>
> Date: Tue, 12 Jan 2021 03:33:10 +0200
> 
> >>     (write-region (point-min) (point-max) buffer-file-name nil 'silent)
> >>
> >> I wonder if *that* could be done asynchronously.
> > 
> > What kind of asynchronicity did you have in mind?
> 
> One where the Lisp code doesn't have to wait for the disk write to 
> complete.

Wed don't have such facilities, because they would need locking the
region (actually, probably the entire buffer) for changes while it
runs.

> > And I'm probbaly missing something, because I don't understand how
> > Emacs is involved in updating the tags table.
> 
> It's part of the secret sauce for the quick incremental updates: if 
> etags writes to disk, even just to update one file's index, we'll have 
> to revert-buffer, and the bigger the tags file is, the longer the revert 
> will take. Basically, N(project-size).

But still faster than write-region, no?  Did you try it the other way
around: let etags write to a file, and then revert, or even just
replace some region that you wanted updated (with
insert-file-contents)?

Anyway, TAGS and etags.el were designed to be very tolerant to
changes, so you shouldn't need to update very often.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]