@brimveyn/aimux-config 0.3.5 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -28
- package/package.json +4 -1
- package/src/actions.ts +110 -10
- package/src/defaults.ts +37 -8
- package/src/house-themes.ts +313 -0
- package/src/index.ts +18 -3
- package/src/normalize-theme.ts +260 -0
- package/src/resolver.ts +1 -0
- package/src/themes/generated/andromeeda.ts +346 -0
- package/src/themes/generated/aurora-x.ts +603 -0
- package/src/themes/generated/ayu-dark.ts +817 -0
- package/src/themes/generated/ayu-light.ts +817 -0
- package/src/themes/generated/ayu-mirage.ts +817 -0
- package/src/themes/generated/catppuccin-frappe.ts +2041 -0
- package/src/themes/generated/catppuccin-latte.ts +2041 -0
- package/src/themes/generated/catppuccin-macchiato.ts +2041 -0
- package/src/themes/generated/catppuccin-mocha.ts +2041 -0
- package/src/themes/generated/dark-plus.ts +614 -0
- package/src/themes/generated/dracula-soft.ts +947 -0
- package/src/themes/generated/dracula.ts +947 -0
- package/src/themes/generated/everforest-dark.ts +2246 -0
- package/src/themes/generated/everforest-light.ts +2246 -0
- package/src/themes/generated/github-dark-default.ts +605 -0
- package/src/themes/generated/github-dark-dimmed.ts +605 -0
- package/src/themes/generated/github-dark-high-contrast.ts +608 -0
- package/src/themes/generated/github-dark.ts +519 -0
- package/src/themes/generated/github-light-default.ts +602 -0
- package/src/themes/generated/github-light-high-contrast.ts +604 -0
- package/src/themes/generated/github-light.ts +515 -0
- package/src/themes/generated/gruvbox-dark-hard.ts +1124 -0
- package/src/themes/generated/gruvbox-dark-medium.ts +1124 -0
- package/src/themes/generated/gruvbox-dark-soft.ts +1124 -0
- package/src/themes/generated/gruvbox-light-hard.ts +1124 -0
- package/src/themes/generated/gruvbox-light-medium.ts +1124 -0
- package/src/themes/generated/gruvbox-light-soft.ts +1124 -0
- package/src/themes/generated/horizon-bright.ts +420 -0
- package/src/themes/generated/horizon.ts +418 -0
- package/src/themes/generated/houston.ts +1819 -0
- package/src/themes/generated/index.ts +140 -0
- package/src/themes/generated/kanagawa-dragon.ts +753 -0
- package/src/themes/generated/kanagawa-lotus.ts +753 -0
- package/src/themes/generated/kanagawa-wave.ts +753 -0
- package/src/themes/generated/laserwave.ts +489 -0
- package/src/themes/generated/light-plus.ts +639 -0
- package/src/themes/generated/material-theme-darker.ts +759 -0
- package/src/themes/generated/material-theme-lighter.ts +759 -0
- package/src/themes/generated/material-theme-ocean.ts +759 -0
- package/src/themes/generated/material-theme-palenight.ts +759 -0
- package/src/themes/generated/material-theme.ts +759 -0
- package/src/themes/generated/min-dark.ts +326 -0
- package/src/themes/generated/min-light.ts +331 -0
- package/src/themes/generated/monokai.ts +463 -0
- package/src/themes/generated/night-owl-light.ts +1526 -0
- package/src/themes/generated/night-owl.ts +1628 -0
- package/src/themes/generated/nord.ts +1277 -0
- package/src/themes/generated/one-dark-pro.ts +1920 -0
- package/src/themes/generated/one-light.ts +1599 -0
- package/src/themes/generated/plastic.ts +315 -0
- package/src/themes/generated/poimandres.ts +1233 -0
- package/src/themes/generated/red.ts +395 -0
- package/src/themes/generated/rose-pine-dawn.ts +696 -0
- package/src/themes/generated/rose-pine-moon.ts +696 -0
- package/src/themes/generated/rose-pine.ts +696 -0
- package/src/themes/generated/slack-dark.ts +594 -0
- package/src/themes/generated/slack-ochin.ts +461 -0
- package/src/themes/generated/snazzy-light.ts +1254 -0
- package/src/themes/generated/solarized-dark.ts +387 -0
- package/src/themes/generated/solarized-light.ts +379 -0
- package/src/themes/generated/synthwave-84.ts +751 -0
- package/src/themes/generated/tokyo-night.ts +1420 -0
- package/src/themes/generated/vesper.ts +578 -0
- package/src/themes/generated/vitesse-black.ts +629 -0
- package/src/themes/generated/vitesse-dark.ts +629 -0
- package/src/themes/generated/vitesse-light.ts +627 -0
- package/src/themes.ts +86 -238
- package/src/types.ts +181 -40
package/README.md
CHANGED
|
@@ -149,41 +149,58 @@ You can also bind a custom `ActionFn` for dynamic behavior.
|
|
|
149
149
|
|
|
150
150
|
## Themes
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
- `everforest`
|
|
158
|
-
- `tokyo-night`
|
|
159
|
-
- `gruvbox-dark`
|
|
160
|
-
- `catppuccin-mocha`
|
|
161
|
-
- `nord`
|
|
162
|
-
- `solarized-dark`
|
|
163
|
-
- `one-dark`
|
|
164
|
-
- `kanagawa`
|
|
165
|
-
|
|
166
|
-
Helpers:
|
|
152
|
+
aimux themes are [Shiki](https://shiki.style/themes) themes. Two house themes
|
|
153
|
+
(`aimux`, `dracula-at-night`) ship alongside the full Shiki catalog — 67
|
|
154
|
+
themes total. The same `Theme` object powers UI colors and code highlighting.
|
|
155
|
+
|
|
156
|
+
Declare your own themes in config:
|
|
167
157
|
|
|
168
158
|
```ts
|
|
169
|
-
|
|
170
|
-
|
|
159
|
+
import { defineConfig, themes } from '@brimveyn/aimux-config'
|
|
160
|
+
|
|
161
|
+
export default defineConfig({
|
|
162
|
+
theme: 'my-neon',
|
|
163
|
+
themes: {
|
|
164
|
+
// Palette shortcut — patch VSCode color keys on top of a base theme.
|
|
165
|
+
'my-neon': themes.define('My Neon', 'aimux', {
|
|
166
|
+
'textLink.foreground': '#ff00aa',
|
|
167
|
+
'terminal.ansiMagenta': '#00ffcc',
|
|
168
|
+
}),
|
|
169
|
+
// Or drop a full VSCode theme JSON verbatim:
|
|
170
|
+
'custom': themes.full({
|
|
171
|
+
name: 'custom',
|
|
172
|
+
displayName: 'Custom',
|
|
173
|
+
type: 'dark',
|
|
174
|
+
fg: '#eee',
|
|
175
|
+
bg: '#1a1a1a',
|
|
176
|
+
colors: {
|
|
177
|
+
/* VSCode workbench keys */
|
|
178
|
+
},
|
|
179
|
+
settings: [
|
|
180
|
+
/* TextMate token rules */
|
|
181
|
+
],
|
|
182
|
+
}),
|
|
183
|
+
},
|
|
184
|
+
})
|
|
171
185
|
```
|
|
172
186
|
|
|
173
|
-
|
|
187
|
+
See [`../../docs/guide/themes.md`](../../docs/guide/themes.md) for picker
|
|
188
|
+
shortcuts, the VSCode color key reference, and migration notes if you're
|
|
189
|
+
coming from the old palette alias API.
|
|
174
190
|
|
|
175
191
|
## Support Status
|
|
176
192
|
|
|
177
|
-
| Surface | Status
|
|
178
|
-
| ------------ |
|
|
179
|
-
| `keymaps` | Supported
|
|
180
|
-
| `sessionBar` | Supported
|
|
181
|
-
| `gitPane` | Supported
|
|
182
|
-
| `theme` |
|
|
183
|
-
| `
|
|
184
|
-
| `
|
|
185
|
-
| `
|
|
186
|
-
| `
|
|
193
|
+
| Surface | Status | Notes |
|
|
194
|
+
| ------------ | ------------------ | -------------------------------------------------------------------- |
|
|
195
|
+
| `keymaps` | Supported | Fully registered by the runtime |
|
|
196
|
+
| `sessionBar` | Supported | Used during app initialization |
|
|
197
|
+
| `gitPane` | Supported | Placement and rendering of the git file list (see docs reference) |
|
|
198
|
+
| `theme` | Supported | Initial theme id; `aimux.json.themeId` wins if still known |
|
|
199
|
+
| `themes` | Supported | User themes; appear in the picker and power synthesized highlighting |
|
|
200
|
+
| `backends` | Typed surface only | Runtime wiring deferred |
|
|
201
|
+
| `sidebar` | Typed surface only | Type exists, runtime not currently driven by this field |
|
|
202
|
+
| `hooks` | Typed surface only | Type exists, runtime use not currently wired |
|
|
203
|
+
| `snippets` | Typed surface only | Runtime currently uses `aimux-snippets.json` |
|
|
187
204
|
|
|
188
205
|
## Backends Subpath
|
|
189
206
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brimveyn/aimux-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "TypeScript configuration API for aimux — keymaps, themes, and backends with a fluent builder.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aimux",
|
|
@@ -36,5 +36,8 @@
|
|
|
36
36
|
},
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"shiki": "^4.0.2"
|
|
39
42
|
}
|
|
40
43
|
}
|
package/src/actions.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActionFn, AppAction, KeyResult, ModeContext } from './types'
|
|
1
|
+
import type { ActionFn, AppAction, KeyResult, ModeContext, ModeId } from './types'
|
|
2
2
|
|
|
3
3
|
function r(
|
|
4
4
|
actions: KeyResult['actions'] = [],
|
|
@@ -32,7 +32,9 @@ export const themePicker: KeyResult = r(
|
|
|
32
32
|
[{ action: 'open', type: 'apply-theme' }],
|
|
33
33
|
'modal.theme-picker'
|
|
34
34
|
)
|
|
35
|
-
export
|
|
35
|
+
export function helpModal(scope?: ModeId): KeyResult {
|
|
36
|
+
return r([{ scope, type: 'open-help-modal' }])
|
|
37
|
+
}
|
|
36
38
|
|
|
37
39
|
export const toggleSidebar: KeyResult = r([{ type: 'toggle-sidebar' }])
|
|
38
40
|
export const toggleGitPane: KeyResult = r([{ type: 'toggle-git-pane' }])
|
|
@@ -69,6 +71,8 @@ export const enterInsert: ActionFn = (ctx: ModeContext) => {
|
|
|
69
71
|
|
|
70
72
|
export const closeModal: KeyResult = r([{ type: 'close-modal' }], [], 'navigation')
|
|
71
73
|
|
|
74
|
+
export const closeOverlayModal: KeyResult = r([{ type: 'close-modal' }])
|
|
75
|
+
|
|
72
76
|
// ---------------------------------------------------------------------------
|
|
73
77
|
// Dynamic actions (need ctx at runtime — ActionFn)
|
|
74
78
|
// ---------------------------------------------------------------------------
|
|
@@ -109,6 +113,17 @@ export function resizeGitPane(delta: number): KeyResult {
|
|
|
109
113
|
return r([{ delta, type: 'resize-git-pane' }])
|
|
110
114
|
}
|
|
111
115
|
|
|
116
|
+
export function resizeGitDiffPane(delta: number): ActionFn {
|
|
117
|
+
return (ctx: ModeContext) => {
|
|
118
|
+
const nextRatio = Math.max(0.2, Math.min(0.8, ctx.state.gitPane.diffModeRatio + delta))
|
|
119
|
+
if (nextRatio === ctx.state.gitPane.diffModeRatio) return r([])
|
|
120
|
+
return r(
|
|
121
|
+
[{ delta, type: 'resize-git-diff-pane' }],
|
|
122
|
+
[{ ratio: nextRatio, type: 'persist-git-diff-mode-ratio' }]
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
112
127
|
export function focusPane(direction: 'left' | 'right' | 'up' | 'down'): KeyResult {
|
|
113
128
|
return r(
|
|
114
129
|
[
|
|
@@ -214,6 +229,12 @@ export const beginHelpFilter: KeyResult = r(
|
|
|
214
229
|
'modal.help.filtering'
|
|
215
230
|
)
|
|
216
231
|
|
|
232
|
+
export const beginThemeFilter: KeyResult = r(
|
|
233
|
+
[{ type: 'begin-theme-filter' }],
|
|
234
|
+
[],
|
|
235
|
+
'modal.theme-picker.filtering'
|
|
236
|
+
)
|
|
237
|
+
|
|
217
238
|
export const confirmSplit: KeyResult = r([], [{ type: 'confirm-split' }])
|
|
218
239
|
|
|
219
240
|
export const restoreTheme: KeyResult = r(
|
|
@@ -385,25 +406,80 @@ function clearPendingDelete(ctx: ModeContext): AppAction[] {
|
|
|
385
406
|
return [{ path: null, type: 'git-mode-set-pending-delete' }]
|
|
386
407
|
}
|
|
387
408
|
|
|
409
|
+
function gitFileKey(section: string, path: string): string {
|
|
410
|
+
return `${section}:${path}`
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
function selectedGitFile(ctx: ModeContext) {
|
|
414
|
+
const key = ctx.state.gitMode.selectedEntryKey
|
|
415
|
+
if (!key) return null
|
|
416
|
+
return (
|
|
417
|
+
ctx.state.gitPanel.files.find((file) => gitFileKey(file.section, file.path) === key) ?? null
|
|
418
|
+
)
|
|
419
|
+
}
|
|
420
|
+
|
|
388
421
|
export const exitGitMode: KeyResult = r([{ type: 'exit-git-mode' }], [], 'navigation')
|
|
389
422
|
|
|
390
423
|
export function selectGitFile(delta: -1 | 1): ActionFn {
|
|
391
424
|
return (ctx: ModeContext) => {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
const current = ctx.state.gitMode.selectedFileIndex
|
|
395
|
-
const next = (current + delta + total) % total
|
|
396
|
-
if (next === current) return r([])
|
|
397
|
-
return r([{ delta, type: 'git-mode-select-file' }])
|
|
425
|
+
if (ctx.state.gitPanel.files.length === 0) return r([])
|
|
426
|
+
return r([{ delta, type: 'git-mode-move-selection' }])
|
|
398
427
|
}
|
|
399
428
|
}
|
|
400
429
|
|
|
430
|
+
export function selectGitFileOnly(delta: -1 | 1): ActionFn {
|
|
431
|
+
return (ctx: ModeContext) => {
|
|
432
|
+
if (ctx.state.gitPanel.files.length === 0) return r([])
|
|
433
|
+
return r([{ delta, type: 'git-mode-move-file-selection' }])
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
export const toggleSelectedGitFolder: ActionFn = (ctx: ModeContext) => {
|
|
438
|
+
if (!ctx.state.gitMode.selectedEntryKey) return r([])
|
|
439
|
+
return r([{ type: 'git-mode-toggle-selected-folder' }])
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
export const collapseGitSelection: ActionFn = (ctx: ModeContext) => {
|
|
443
|
+
if (!ctx.state.gitMode.selectedEntryKey) return r([])
|
|
444
|
+
return r([{ type: 'git-mode-collapse-selection' }])
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
export const expandGitSelection: ActionFn = (ctx: ModeContext) => {
|
|
448
|
+
if (!ctx.state.gitMode.selectedEntryKey) return r([])
|
|
449
|
+
return r([{ type: 'git-mode-expand-selection' }])
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
export const toggleGitFileListMode: ActionFn = (ctx: ModeContext) => {
|
|
453
|
+
const mode = ctx.state.gitPane.fileListMode === 'tree' ? 'flat' : 'tree'
|
|
454
|
+
return r(
|
|
455
|
+
[{ type: 'git-mode-toggle-file-list-mode' }],
|
|
456
|
+
[{ mode, type: 'persist-git-file-list-mode' }]
|
|
457
|
+
)
|
|
458
|
+
}
|
|
459
|
+
|
|
401
460
|
export function scrollGitDiff(delta: number): KeyResult {
|
|
402
461
|
return r([], [{ delta, type: 'scroll-git-diff' }])
|
|
403
462
|
}
|
|
404
463
|
|
|
464
|
+
export const toggleGitDiffView: KeyResult = r([{ type: 'git-mode-toggle-diff-view' }])
|
|
465
|
+
|
|
466
|
+
export function shiftGitHeadOffset(delta: number): KeyResult {
|
|
467
|
+
return r([
|
|
468
|
+
{ delta, type: 'git-mode-shift-head-offset' },
|
|
469
|
+
{ message: null, type: 'git-mode-set-message' },
|
|
470
|
+
])
|
|
471
|
+
}
|
|
472
|
+
|
|
405
473
|
export const gitStageSelected: ActionFn = (ctx: ModeContext) => {
|
|
406
|
-
|
|
474
|
+
if (ctx.state.gitMode.headOffset > 0) {
|
|
475
|
+
return r([
|
|
476
|
+
{
|
|
477
|
+
message: 'disabled while viewing HEAD~N (press 0 or [ to return)',
|
|
478
|
+
type: 'git-mode-set-message',
|
|
479
|
+
},
|
|
480
|
+
])
|
|
481
|
+
}
|
|
482
|
+
const file = selectedGitFile(ctx)
|
|
407
483
|
if (!file) return r(clearPendingDelete(ctx))
|
|
408
484
|
const actions = clearPendingDelete(ctx)
|
|
409
485
|
if (file.section === 'staged') return r(actions)
|
|
@@ -417,7 +493,15 @@ export const gitStageSelected: ActionFn = (ctx: ModeContext) => {
|
|
|
417
493
|
}
|
|
418
494
|
|
|
419
495
|
export const gitDestructiveSelected: ActionFn = (ctx: ModeContext) => {
|
|
420
|
-
|
|
496
|
+
if (ctx.state.gitMode.headOffset > 0) {
|
|
497
|
+
return r([
|
|
498
|
+
{
|
|
499
|
+
message: 'disabled while viewing HEAD~N (press 0 or [ to return)',
|
|
500
|
+
type: 'git-mode-set-message',
|
|
501
|
+
},
|
|
502
|
+
])
|
|
503
|
+
}
|
|
504
|
+
const file = selectedGitFile(ctx)
|
|
421
505
|
if (!file) return r(clearPendingDelete(ctx))
|
|
422
506
|
|
|
423
507
|
if (file.section === 'staged') {
|
|
@@ -453,10 +537,26 @@ export const gitDestructiveSelected: ActionFn = (ctx: ModeContext) => {
|
|
|
453
537
|
}
|
|
454
538
|
|
|
455
539
|
export const gitCommitOpen: ActionFn = (ctx: ModeContext) => {
|
|
540
|
+
if (ctx.state.gitMode.headOffset > 0) {
|
|
541
|
+
return r([
|
|
542
|
+
{
|
|
543
|
+
message: 'disabled while viewing HEAD~N (press 0 or [ to return)',
|
|
544
|
+
type: 'git-mode-set-message',
|
|
545
|
+
},
|
|
546
|
+
])
|
|
547
|
+
}
|
|
456
548
|
return r([...clearPendingDelete(ctx), { type: 'open-git-commit-modal' }], [], 'modal.git-commit')
|
|
457
549
|
}
|
|
458
550
|
|
|
459
551
|
export const gitPush: ActionFn = (ctx: ModeContext) => {
|
|
552
|
+
if (ctx.state.gitMode.headOffset > 0) {
|
|
553
|
+
return r([
|
|
554
|
+
{
|
|
555
|
+
message: 'disabled while viewing HEAD~N (press 0 or [ to return)',
|
|
556
|
+
type: 'git-mode-set-message',
|
|
557
|
+
},
|
|
558
|
+
])
|
|
559
|
+
}
|
|
460
560
|
return r(clearPendingDelete(ctx), [{ type: 'git-push' }])
|
|
461
561
|
}
|
|
462
562
|
|
package/src/defaults.ts
CHANGED
|
@@ -37,7 +37,7 @@ export function getDefaultKeymapConfig(): ResolvedKeymapConfig {
|
|
|
37
37
|
.map('k', actions.prevTab, 'Prev tab')
|
|
38
38
|
.map('r', actions.renameTab, 'Rename tab')
|
|
39
39
|
.map('i', actions.enterInsert, 'Focus terminal')
|
|
40
|
-
.map('?', actions.helpModal, 'Help')
|
|
40
|
+
.map('?', actions.helpModal(), 'Help')
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
// -----------------------------------------------------------------------
|
|
@@ -82,17 +82,31 @@ export function getDefaultKeymapConfig(): ResolvedKeymapConfig {
|
|
|
82
82
|
// -----------------------------------------------------------------------
|
|
83
83
|
.mode('git-mode', (m) =>
|
|
84
84
|
m
|
|
85
|
+
.map('a', actions.gitStageSelected, 'Stage')
|
|
86
|
+
.map('d', actions.gitDestructiveSelected, 'Unstage/delete')
|
|
87
|
+
.map('c', actions.gitCommitOpen, 'Commit')
|
|
88
|
+
.map('p', actions.gitPush, 'Push')
|
|
89
|
+
.map('v', actions.toggleGitDiffView, 'Toggle split/stacked')
|
|
90
|
+
.map('t', actions.toggleGitFileListMode, 'Toggle flat/tree')
|
|
91
|
+
.map(']', actions.shiftGitHeadOffset(1), 'Older commit')
|
|
92
|
+
.map('[', actions.shiftGitHeadOffset(-1), 'Newer commit')
|
|
93
|
+
.map('?', actions.helpModal('git-mode'), 'Help')
|
|
85
94
|
.map('<Esc>', actions.exitGitMode, 'Exit git')
|
|
86
|
-
.map('j', actions.selectGitFile(1), 'Next
|
|
87
|
-
.map('k', actions.selectGitFile(-1), 'Prev
|
|
95
|
+
.map('j', actions.selectGitFile(1), 'Next entry')
|
|
96
|
+
.map('k', actions.selectGitFile(-1), 'Prev entry')
|
|
97
|
+
.map('<C-n>', actions.selectGitFileOnly(1), 'Next file')
|
|
98
|
+
.map('<C-p>', actions.selectGitFileOnly(-1), 'Prev file')
|
|
99
|
+
.map('h', actions.toggleSelectedGitFolder, 'Toggle folder')
|
|
100
|
+
.map('l', actions.toggleSelectedGitFolder, 'Toggle folder')
|
|
88
101
|
.map('<C-d>', actions.scrollGitDiff(20), 'Page down')
|
|
102
|
+
.map('<BS>', actions.resizeGitDiffPane(-0.05), 'File bar narrower')
|
|
103
|
+
.map('<C-h>', actions.resizeGitDiffPane(-0.05), 'File bar narrower')
|
|
104
|
+
.map('<C-l>', actions.resizeGitDiffPane(0.05), 'File bar wider')
|
|
89
105
|
.map('<C-u>', actions.scrollGitDiff(-20), 'Page up')
|
|
106
|
+
.map('<Left>', actions.collapseGitSelection, 'Collapse folder')
|
|
107
|
+
.map('<Right>', actions.expandGitSelection, 'Expand folder')
|
|
90
108
|
.map('<Down>', actions.scrollGitDiff(1), 'Scroll down')
|
|
91
109
|
.map('<Up>', actions.scrollGitDiff(-1), 'Scroll up')
|
|
92
|
-
.map('a', actions.gitStageSelected, 'Stage')
|
|
93
|
-
.map('d', actions.gitDestructiveSelected, 'Unstage/delete')
|
|
94
|
-
.map('c', actions.gitCommitOpen, 'Commit')
|
|
95
|
-
.map('p', actions.gitPush, 'Push')
|
|
96
110
|
)
|
|
97
111
|
|
|
98
112
|
// -----------------------------------------------------------------------
|
|
@@ -100,7 +114,7 @@ export function getDefaultKeymapConfig(): ResolvedKeymapConfig {
|
|
|
100
114
|
// -----------------------------------------------------------------------
|
|
101
115
|
.mode('modal.help', (m) =>
|
|
102
116
|
m
|
|
103
|
-
.map('<Esc>', actions.
|
|
117
|
+
.map('<Esc>', actions.closeOverlayModal, 'Close')
|
|
104
118
|
.map('j', actions.moveModalSelection(1), 'Next')
|
|
105
119
|
.map('k', actions.moveModalSelection(-1), 'Prev')
|
|
106
120
|
.map('<Down>', actions.moveModalSelection(1))
|
|
@@ -136,6 +150,21 @@ export function getDefaultKeymapConfig(): ResolvedKeymapConfig {
|
|
|
136
150
|
.map('<C-n>', actions.previewTheme(1))
|
|
137
151
|
.map('<C-p>', actions.previewTheme(-1))
|
|
138
152
|
.map('<CR>', actions.confirmTheme, 'Confirm')
|
|
153
|
+
.map('/', actions.beginThemeFilter, 'Filter')
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
// -----------------------------------------------------------------------
|
|
157
|
+
// Modal: theme-picker filtering
|
|
158
|
+
// -----------------------------------------------------------------------
|
|
159
|
+
.mode('modal.theme-picker.filtering', (m) =>
|
|
160
|
+
m
|
|
161
|
+
.map('<Esc>', actions.cancelCommandEdit('modal.theme-picker'), 'Cancel')
|
|
162
|
+
.map('<C-n>', actions.previewTheme(1), 'Next')
|
|
163
|
+
.map('<C-p>', actions.previewTheme(-1), 'Prev')
|
|
164
|
+
.map('<Down>', actions.previewTheme(1))
|
|
165
|
+
.map('<Up>', actions.previewTheme(-1))
|
|
166
|
+
.map('<CR>', actions.confirmTheme, 'Confirm')
|
|
167
|
+
.passthrough()
|
|
139
168
|
)
|
|
140
169
|
|
|
141
170
|
// -----------------------------------------------------------------------
|