bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#6967: flymake not cleaning after itself (kill-buffer)


From: Eric M. Ludlam
Subject: bug#6967: flymake not cleaning after itself (kill-buffer)
Date: Mon, 25 Oct 2010 07:15:47 -0400
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a1pre) Gecko/20091222 Shredder/3.1a1pre

On 10/24/2010 01:14 PM, Chong Yidong wrote:
S Boucher<stbya@yahoo.com>  writes:

flymake-kill-buffer-hook does not actually kill the flymake process.
So, if flymake is used in conjunction with semantic, it gets
problematic.

When semantic does background parsing, it may find-file/kill-buffer
for files not already in memory.  If semantic proceeds to kill-buffer
while a flymake process is running, then a window pops up asking
whether the buffer's process should be killed (because kill-buffer
asks before killing processes).

It seems like flymake-kill-buffer-hook should kill the buffer, so that
by the time semantic calls kill-buffer, there won't be a process to
query about.

It would be wrong for flymake-kill-buffer-hook to kill the buffer,
because there may be other functions on the hook that may need to
examine the buffer state.

The problem here seems to be that when Semantic visits files to parse
them, Flymake is enabled when it should not.  I'm guessing you are using
flymake-find-file-hook, is that correct?

Maybe the solution is for Semantic to either avoid using
find-file[-noselect], or detect if Flymake is on and disable it for
files that are only being parsed temporarily.  Eric, what do you think?

Semantic uses semantic-find-file-noselect which clears out a list of hooks and settings before calling find-file-noselect to avoid problems like this.

Semantic needs a variant of find-file that puts a buffer into the correct mode, which in turn runs the major-mode hook. It also needs to run the mode-local hooks, but doesn't run miscellaneous other interactive tool hooks.

I suppose Semantic could also have a pre-find-file hook that authors of modes like flymake could install a temporary uninstall hook into, but that seems kind of strange.

Eric





reply via email to

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