@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed built-in tool expand hints to style closing parentheses consistently ([#5359](https://github.com/earendil-works/pi/issues/5359)).
|
||||||
|
|
||||||
## [0.78.1] - 2026-06-04
|
## [0.78.1] - 2026-06-04
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ function rebuildBashResultRenderComponent(
|
|||||||
if (state.cachedSkipped && state.cachedSkipped > 0) {
|
if (state.cachedSkipped && state.cachedSkipped > 0) {
|
||||||
const hint =
|
const hint =
|
||||||
theme.fg("muted", `... (${state.cachedSkipped} earlier lines,`) +
|
theme.fg("muted", `... (${state.cachedSkipped} earlier lines,`) +
|
||||||
` ${keyHint("app.tools.expand", "to expand")})`;
|
` ${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`;
|
||||||
return ["", truncateToWidth(hint, width, "..."), ...(state.cachedLines ?? [])];
|
return ["", truncateToWidth(hint, width, "..."), ...(state.cachedLines ?? [])];
|
||||||
}
|
}
|
||||||
return ["", ...(state.cachedLines ?? [])];
|
return ["", ...(state.cachedLines ?? [])];
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ function formatFindResult(
|
|||||||
const remaining = lines.length - maxLines;
|
const remaining = lines.length - maxLines;
|
||||||
text += `\n${displayLines.map((line) => theme.fg("toolOutput", line)).join("\n")}`;
|
text += `\n${displayLines.map((line) => theme.fg("toolOutput", line)).join("\n")}`;
|
||||||
if (remaining > 0) {
|
if (remaining > 0) {
|
||||||
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")})`;
|
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ function formatGrepResult(
|
|||||||
const remaining = lines.length - maxLines;
|
const remaining = lines.length - maxLines;
|
||||||
text += `\n${displayLines.map((line) => theme.fg("toolOutput", line)).join("\n")}`;
|
text += `\n${displayLines.map((line) => theme.fg("toolOutput", line)).join("\n")}`;
|
||||||
if (remaining > 0) {
|
if (remaining > 0) {
|
||||||
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")})`;
|
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ function formatLsResult(
|
|||||||
const remaining = lines.length - maxLines;
|
const remaining = lines.length - maxLines;
|
||||||
text += `\n${displayLines.map((line) => theme.fg("toolOutput", line)).join("\n")}`;
|
text += `\n${displayLines.map((line) => theme.fg("toolOutput", line)).join("\n")}`;
|
||||||
if (remaining > 0) {
|
if (remaining > 0) {
|
||||||
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")})`;
|
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ function formatReadResult(
|
|||||||
const remaining = lines.length - maxLines;
|
const remaining = lines.length - maxLines;
|
||||||
let text = `\n${displayLines.map((line) => (lang ? replaceTabs(line) : theme.fg("toolOutput", replaceTabs(line)))).join("\n")}`;
|
let text = `\n${displayLines.map((line) => (lang ? replaceTabs(line) : theme.fg("toolOutput", replaceTabs(line)))).join("\n")}`;
|
||||||
if (remaining > 0) {
|
if (remaining > 0) {
|
||||||
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")})`;
|
text += `${theme.fg("muted", `\n... (${remaining} more lines,`)} ${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const truncation = result.details?.truncation;
|
const truncation = result.details?.truncation;
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ function formatWriteCall(
|
|||||||
const remaining = lines.length - maxLines;
|
const remaining = lines.length - maxLines;
|
||||||
text += `\n\n${displayLines.map((line) => (lang ? line : theme.fg("toolOutput", replaceTabs(line)))).join("\n")}`;
|
text += `\n\n${displayLines.map((line) => (lang ? line : theme.fg("toolOutput", replaceTabs(line)))).join("\n")}`;
|
||||||
if (remaining > 0) {
|
if (remaining > 0) {
|
||||||
text += `${theme.fg("muted", `\n... (${remaining} more lines, ${totalLines} total,`)} ${keyHint("app.tools.expand", "to expand")})`;
|
text += `${theme.fg("muted", `\n... (${remaining} more lines, ${totalLines} total,`)} ${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -176,10 +176,12 @@ export class BashExecutionComponent extends Container {
|
|||||||
// Show how many lines are hidden (collapsed preview)
|
// Show how many lines are hidden (collapsed preview)
|
||||||
if (hiddenLineCount > 0) {
|
if (hiddenLineCount > 0) {
|
||||||
if (this.expanded) {
|
if (this.expanded) {
|
||||||
statusParts.push(`(${keyHint("app.tools.expand", "to collapse")})`);
|
statusParts.push(
|
||||||
|
`${theme.fg("muted", "(")}${keyHint("app.tools.expand", "to collapse")}${theme.fg("muted", ")")}`,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
statusParts.push(
|
statusParts.push(
|
||||||
`${theme.fg("muted", `... ${hiddenLineCount} more lines`)} (${keyHint("app.tools.expand", "to expand")})`,
|
`${theme.fg("muted", `... ${hiddenLineCount} more lines (`)}${keyHint("app.tools.expand", "to expand")}${theme.fg("muted", ")")}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user