MCPcopy Index your code
hub / github.com/codeaashu/claude-code / createRow

Method createRow

src/server/web/public/terminal.js:1388–1476  ·  view source on GitHub ↗
(e3, t3, i3, s3, r2, a2, h2, l2, _2, f2, p)

Source from the content-addressed store, hash-verified

1386 this._selectionStart = e3, this._selectionEnd = t3, this._columnSelectMode = i3;
1387 }
1388 createRow(e3, t3, i3, s3, r2, a2, h2, l2, _2, f2, p) {
1389 const g = [], m = this._characterJoinerService.getJoinedCharacters(t3), S = this._themeService.colors;
1390 let C, b = e3.getNoBgTrimmedLength();
1391 i3 && b < a2 + 1 && (b = a2 + 1);
1392 let w = 0, y = "", E = 0, k = 0, L = 0, D = false, R = 0, x = false, A = 0;
1393 const B = [], T = -1 !== f2 && -1 !== p;
1394 for (let M = 0; M < b; M++) {
1395 e3.loadCell(M, this._workCell);
1396 let b2 = this._workCell.getWidth();
1397 if (0 === b2) continue;
1398 let O = false, P = M, I = this._workCell;
1399 if (m.length > 0 && M === m[0][0]) {
1400 O = true;
1401 const t4 = m.shift();
1402 I = new d.JoinedCellData(this._workCell, e3.translateToString(true, t4[0], t4[1]), t4[1] - t4[0]), P = t4[1] - 1, b2 = I.getWidth();
1403 }
1404 const H = this._isCellInSelection(M, t3), F = i3 && M === a2, W = T && M >= f2 && M <= p;
1405 let U = false;
1406 this._decorationService.forEachDecorationAtCell(M, t3, void 0, ((e4) => {
1407 U = true;
1408 }));
1409 let N = I.getChars() || o.WHITESPACE_CELL_CHAR;
1410 if (" " === N && (I.isUnderline() || I.isOverline()) && (N = "\xA0"), A = b2 * l2 - _2.get(N, I.isBold(), I.isItalic()), C) {
1411 if (w && (H && x || !H && !x && I.bg === E) && (H && x && S.selectionForeground || I.fg === k) && I.extended.ext === L && W === D && A === R && !F && !O && !U) {
1412 I.isInvisible() ? y += o.WHITESPACE_CELL_CHAR : y += N, w++;
1413 continue;
1414 }
1415 w && (C.textContent = y), C = this._document.createElement("span"), w = 0, y = "";
1416 } else C = this._document.createElement("span");
1417 if (E = I.bg, k = I.fg, L = I.extended.ext, D = W, R = A, x = H, O && a2 >= M && a2 <= P && (a2 = M), !this._coreService.isCursorHidden && F && this._coreService.isCursorInitialized) {
1418 if (B.push("xterm-cursor"), this._coreBrowserService.isFocused) h2 && B.push("xterm-cursor-blink"), B.push("bar" === s3 ? "xterm-cursor-bar" : "underline" === s3 ? "xterm-cursor-underline" : "xterm-cursor-block");
1419 else if (r2) switch (r2) {
1420 case "outline":
1421 B.push("xterm-cursor-outline");
1422 break;
1423 case "block":
1424 B.push("xterm-cursor-block");
1425 break;
1426 case "bar":
1427 B.push("xterm-cursor-bar");
1428 break;
1429 case "underline":
1430 B.push("xterm-cursor-underline");
1431 }
1432 }
1433 if (I.isBold() && B.push("xterm-bold"), I.isItalic() && B.push("xterm-italic"), I.isDim() && B.push("xterm-dim"), y = I.isInvisible() ? o.WHITESPACE_CELL_CHAR : I.getChars() || o.WHITESPACE_CELL_CHAR, I.isUnderline() && (B.push(`xterm-underline-${I.extended.underlineStyle}`), " " === y && (y = "\xA0"), !I.isUnderlineColorDefault())) if (I.isUnderlineColorRGB()) C.style.textDecorationColor = `rgb(${u.AttributeData.toColorRGB(I.getUnderlineColor()).join(",")})`;
1434 else {
1435 let e4 = I.getUnderlineColor();
1436 this._optionsService.rawOptions.drawBoldTextInBrightColors && I.isBold() && e4 < 8 && (e4 += 8), C.style.textDecorationColor = S.ansi[e4].css;
1437 }
1438 I.isOverline() && (B.push("xterm-overline"), " " === y && (y = "\xA0")), I.isStrikethrough() && B.push("xterm-strikethrough"), W && (C.style.textDecoration = "underline");
1439 let $ = I.getFgColor(), j = I.getFgColorMode(), z = I.getBgColor(), K = I.getBgColorMode();
1440 const q = !!I.isInverse();
1441 if (q) {
1442 const e4 = $;
1443 $ = z, z = e4;
1444 const t4 = j;
1445 j = K, K = t4;

Callers 2

renderRowsMethod · 0.80
_setCellUnderlineMethod · 0.80

Calls 15

getJoinedCharactersMethod · 0.80
getNoBgTrimmedLengthMethod · 0.80
loadCellMethod · 0.80
shiftMethod · 0.80
_isCellInSelectionMethod · 0.80
isUnderlineMethod · 0.80
isOverlineMethod · 0.80
isBoldMethod · 0.80
isItalicMethod · 0.80
isInvisibleMethod · 0.80
isDimMethod · 0.80

Tested by

no test coverage detected