1

我试图在关闭它运行的缓冲区之前终止 Flymake 进程,尽管没有成功。以下是我尝试过的:

(defun haxe-kill-network-process ()
  "Kill connection to Haxe compiler server and Flymake process in this buffer"
  (when (equal major-mode 'haxe-mode)
    (let ((proc (get-process haxe-compiler-process))
      (fly-proc (get-buffer-process (buffer-name))))
      (when proc
    (delete-process proc)
    (haxe-log 3 "Disconnecting from HaXe compiler server")
    (flymake-mode -1)
    (delete-process fly-proc)
    (haxe-log 3 "Flymake process killed")))))

(add-hook 'kill-buffer-hook #'haxe-kill-network-process)

我得到这个输出:

从 Haxe 编译器服务器断开连接

由于致命状态 CFGERR 已关闭缓冲区 StripArray.hx 的 Flymake 模式,警告运行时发生配置错误(haxe --connect 127.0.0.1:1257 --cwd /home/wvxvw/projects/wafer/src -swf /home/ wvxvw/projects/wafer/bin/wunderwafer.swf -cp /home/wvxvw/projects/wafer/src -swf-header 800:600:31 -swf-version 10 com.wunderwafer.map.StripArray)

Flymake进程被杀死

但它并没有被杀死haxe-kill-network-process——当我试图杀死运行进程的缓冲区时,它仍然提示我终止它。

4

1 回答 1

2

我们需要更多信息来弄清楚到底发生了什么,但这里有一些想法:

  • 您可能想尝试set-process-query-on-exit-flag避免提示。
  • 总是更喜欢缓冲区而不是缓冲区名称(即使用(current-buffer)而不是(buffer-name).
  • 您说“它没有被杀死”,但您的代码似乎表明涉及各种进程。那么哪个进程没有被杀死?你得到的确切提示是什么?您可能还想使用M-x list-processes来设置正在运行的进程。
于 2013-01-22T20:05:24.407 回答