格式视图(FormatView)
一个文档在一个表面上的实时预览。由 FileFormat.view 创建;当表面关闭时释放。
方法(Methods)
draw
draw(renderer: Renderer, width: number, height: number) -> ()
将当前帧绘制到 width × height 的视口中。
measure
measure(viewportWidth: number, viewportHeight: number) -> (number, number)
仅用于 pane 表面:返回内容在指定视口下的固有尺寸,用于驱动面板的滚动条。在视图创建、文档变化、视口大小变化或 requestDraw 触发时调用。fit-to-viewport 的视图可省略;检查器永远不会调用 measure。
advance
advance(seconds: number) -> boolean
推进动画状态。返回 true 表示希望继续接收帧。
textScrolled
textScrolled(x: number, y: number, line: number, maxLine: number) -> ()
用户滚动了文本编辑器。x/y 是滚动百分比,line 是顶部可见行的小数值。宿主代表视图执行的滚动(scrollEditorTo)不会触发此事件,因此处理函数可以直接跟随而无需额外的回弹 bookkeeping。
paneScrolled
paneScrolled(x: number, y: number) -> ()
用户滚动了预览面板(仅 measured 视图)。x/y 是内容坐标中的新偏移。宿主通过 editor:scrollTo 应用的滚动不会触发此事件。
paneWheel
paneWheel(dx: number, dy: number) -> ()
未测量( 自行滚动)预览上的滚轮/触控板原始输入,单位为像素,y 为正表示向下滚动。实现此方法可将面板输入路由到视图自身的滚动;未实现时宿主会回退到滚动配对的文本编辑器。
pointerDown
pointerDown(event: PointerEvent) -> ()
预览表面上的指针输入,与 draw 接收到的坐标空间相同。签名与 Layout 协议一致,因此实时画板可以直接转发事件(board:pointerDown(event) 等)。
pointerMove
pointerMove(event: PointerEvent) -> ()
pointerUp
pointerUp(event: PointerEvent) -> ()
documentChanged
documentChanged(doc: FormatDocument, parsed: buffer?) -> ()
仅文本文档:文档发生变化;刷新派生状态。
selectionChanged
selectionChanged(line: number, column: number) -> ()
仅文本文档:主光标移动。line 和 column 是基于 code point 的 0-based 坐标。
dispose
dispose() -> ()
表面正在关闭;释放资源。