MCPcopy Create free account
hub / github.com/RtlZeroMemory/Rezi / createCursorStateCollector

Function createCursorStateCollector

packages/core/src/cursor/cursorState.ts:61–101  ·  view source on GitHub ↗
(
  defaultShape: CursorShape = 0,
  defaultBlink = true,
)

Source from the content-addressed store, hash-verified

59 * @param defaultBlink - Default blink state (default: true)
60 */
61export function createCursorStateCollector(
62 defaultShape: CursorShape = 0,
63 defaultBlink = true,
64): CursorStateCollector {
65 let lastRequest: CursorRequest | null = null;
66
67 return {
68 request(req: CursorRequest): void {
69 lastRequest = req;
70 },
71
72 resolve(): CursorState | null {
73 if (lastRequest === null) {
74 // No cursor requests this frame
75 return null;
76 }
77
78 if (lastRequest.kind === "hide") {
79 return {
80 x: -1,
81 y: -1,
82 shape: defaultShape,
83 visible: false,
84 blink: false,
85 };
86 }
87
88 return {
89 x: lastRequest.x,
90 y: lastRequest.y,
91 shape: lastRequest.shape,
92 visible: true,
93 blink: lastRequest.blink,
94 };
95 },
96
97 reset(): void {
98 lastRequest = null;
99 },
100 };
101}
102
103/**
104 * Compute cursor position for a text input widget.

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected