标准钩子
钩子是框架在确定时刻运行的观察点。四个钩子都是 abnormal hook:值是一列函数;设置了缓冲区局部值时,该值在这个缓冲区里替代全局列表。每行链接到记录参数、时机与错误处理的条目。
| 钩子 | 运行时机 | 调用参数 | 错误 |
|---|---|---|---|
ebox-unmount-functions |
ebox-unmount-buffer 释放挂载时,在挂载被摘下、显示设置被恢复之前,所以缓冲区此时仍能回答 ebox-buffer-mount。 |
缓冲区 | 出错会从 ebox-unmount-buffer 向外抛出、中止释放,挂载保持存活。 |
ebox-focus-change-functions |
ebox-focus 移动了挂载的焦点;焦点未变时不运行,且在焦点操作内部运行,因此挂载已经报告新焦点。 |
之前的焦点节点(或 nil)与新的焦点节点(或 nil) | 错误从运行该钩子的焦点操作向外传播。 |
ebox-after-flush-functions |
一次 flush 真正发布之后,在观察者与后台同步之后;缓冲区已显示新输出,几何已确定。 | 缓冲区 | 一个函数出错不影响其余函数运行。 |
ebox-viewport-change-functions |
视口尺寸变化后——窗口缩放或 ebox-mount-set-viewport——新尺寸的重排完成时。 |
缓冲区 | 一个函数出错不阻止其余函数。 |
ebox-unmount-functions是显式释放的钩子。kill 缓冲区时,挂载经缓冲区的 kill 钩子释放,不会运行它。- 钩子在挂载的缓冲区里运行。只属于某个应用缓冲区的函数用缓冲区局部注册,
(add-hook 'HOOK FUNCTION nil t);属于整个进程的用全局列表。 :on-focus-enter建立在ebox-focus-change-functions上:ETAF 计算前后两个节点之间的 Host,从最近的开始逐个派发回调。