feat(coding-agent): export keyHint utilities for extensions (#802)

This commit is contained in:
Danila Poyarkov 2026-01-17 12:51:03 +03:00 committed by GitHub
parent 7f9cf543d5
commit 58eec55154
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 31 additions and 0 deletions

View file

@ -2,6 +2,10 @@
## [Unreleased]
### Added
- Export `keyHint`, `appKeyHint`, `editorKey`, `appKey`, `rawKeyHint` for extensions to format keybinding hints consistently
## [0.48.0] - 2026-01-16
### Added

View file

@ -1276,6 +1276,28 @@ renderResult(result, { expanded, isPartial }, theme) {
}
```
#### Keybinding Hints
Use `keyHint()` to display keybinding hints that respect user's keybinding configuration:
```typescript
import { keyHint } from "@mariozechner/pi-coding-agent";
renderResult(result, { expanded }, theme) {
let text = theme.fg("success", "✓ Done");
if (!expanded) {
text += ` (${keyHint("expandTools", "to expand")})`;
}
return new Text(text, 0, 0);
}
```
Available functions:
- `keyHint(action, description)` - Editor actions (e.g., `"expandTools"`, `"selectConfirm"`)
- `appKeyHint(keybindings, action, description)` - App actions (requires `KeybindingsManager`)
- `editorKey(action)` - Get raw key string for editor action
- `rawKeyHint(key, description)` - Format a raw key string
#### Best Practices
- Use `Text` with padding `(0, 0)` - the Box handles padding

View file

@ -237,6 +237,8 @@ export {
export {
ArminComponent,
AssistantMessageComponent,
appKey,
appKeyHint,
BashExecutionComponent,
BorderedLoader,
BranchSummaryMessageComponent,
@ -247,11 +249,14 @@ export {
ExtensionEditorComponent,
ExtensionInputComponent,
ExtensionSelectorComponent,
editorKey,
FooterComponent,
keyHint,
LoginDialogComponent,
ModelSelectorComponent,
OAuthSelectorComponent,
type RenderDiffOptions,
rawKeyHint,
renderDiff,
SessionSelectorComponent,
type SettingsCallbacks,