MCPcopy Create free account
hub / github.com/anus-dev/ANUS / handleRawKeypress

Function handleRawKeypress

packages/cli/src/ui/contexts/KeypressContext.tsx:307–356  ·  view source on GitHub ↗
(data: Buffer)

Source from the content-addressed store, hash-verified

305 };
306
307 const handleRawKeypress = (data: Buffer) => {
308 const pasteModePrefixBuffer = Buffer.from(PASTE_MODE_PREFIX);
309 const pasteModeSuffixBuffer = Buffer.from(PASTE_MODE_SUFFIX);
310
311 let pos = 0;
312 while (pos < data.length) {
313 const prefixPos = data.indexOf(pasteModePrefixBuffer, pos);
314 const suffixPos = data.indexOf(pasteModeSuffixBuffer, pos);
315 const isPrefixNext =
316 prefixPos !== -1 && (suffixPos === -1 || prefixPos < suffixPos);
317 const isSuffixNext =
318 suffixPos !== -1 && (prefixPos === -1 || suffixPos < prefixPos);
319
320 let nextMarkerPos = -1;
321 let markerLength = 0;
322
323 if (isPrefixNext) {
324 nextMarkerPos = prefixPos;
325 } else if (isSuffixNext) {
326 nextMarkerPos = suffixPos;
327 }
328 markerLength = pasteModeSuffixBuffer.length;
329
330 if (nextMarkerPos === -1) {
331 keypressStream.write(data.slice(pos));
332 return;
333 }
334
335 const nextData = data.slice(pos, nextMarkerPos);
336 if (nextData.length > 0) {
337 keypressStream.write(nextData);
338 }
339 const createPasteKeyEvent = (
340 name: 'paste-start' | 'paste-end',
341 ): Key => ({
342 name,
343 ctrl: false,
344 meta: false,
345 shift: false,
346 paste: false,
347 sequence: '',
348 });
349 if (isPrefixNext) {
350 handleKeypress(undefined, createPasteKeyEvent('paste-start'));
351 } else if (isSuffixNext) {
352 handleKeypress(undefined, createPasteKeyEvent('paste-end'));
353 }
354 pos = nextMarkerPos + markerLength;
355 }
356 };
357
358 let rl: readline.Interface;
359 if (usePassthrough) {

Callers

nothing calls this directly

Calls 2

handleKeypressFunction · 0.85
createPasteKeyEventFunction · 0.85

Tested by

no test coverage detected