Skip to content

Commit 8ae3dc8

Browse files
authored
Escape keys (#880)
* Implements `escapeKeys` to close the inspector * `inspector` is no longer experimental * Changelog entry for `escapeKeys` enhancement * Generate types for `escapeKeys`
1 parent 826dfc6 commit 8ae3dc8

File tree

8 files changed

+37
-7
lines changed

8 files changed

+37
-7
lines changed

.changeset/witty-games-shout.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte-inspector': minor
3+
---
4+
5+
Implements `escapeKeys` to close the inspector via hotkey (default keys are `Backspace` and `Escape`).

docs/inspector.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ SVELTE_INSPECTOR_OPTIONS=true
7575

7676
Define key to open the editor for the currently selected dom node.
7777

78+
### escapeKeys
79+
80+
- **Type:** `string[]`
81+
- **Default:** `['Backspace', 'Escape']`
82+
83+
Define keys to close the inspector.
84+
7885
### holdMode
7986

8087
- **Type:** `boolean`

packages/playground/kit-demo-app/svelte.config.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ const config = {
66
adapter: adapter()
77
},
88
vitePlugin: {
9-
experimental: {
10-
inspector: true
11-
}
9+
inspector: true
1210
}
1311
};
14-
1512
export default config;

packages/vite-plugin-svelte-inspector/src/options.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { debug } from './debug.js';
55
export const defaultInspectorOptions = {
66
toggleKeyCombo: process.platform === 'darwin' ? 'meta-shift' : 'control-shift',
77
navKeys: { parent: 'ArrowUp', child: 'ArrowDown', next: 'ArrowRight', prev: 'ArrowLeft' },
8+
escapeKeys: ['Backspace', 'Escape'],
89
openKey: 'Enter',
910
holdMode: true,
1011
showToggleButton: 'active',

packages/vite-plugin-svelte-inspector/src/public.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ export interface Options {
3636
*/
3737
openKey?: string;
3838

39+
/**
40+
* define keys to close the inspector
41+
* @default ['Backspace', 'Escape']
42+
*/
43+
escapeKeys?: string[];
44+
3945
/**
4046
* inspector is automatically disabled when releasing toggleKeyCombo after holding it for a longpress
4147
* @default true

packages/vite-plugin-svelte-inspector/src/runtime/Inspector.svelte

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
55
import options from 'virtual:svelte-inspector-options';
66
const toggle_combo = options.toggleKeyCombo?.toLowerCase().split('-');
7+
const escape_keys = options.escapeKeys?.map((key) => key?.toLowerCase());
78
const nav_keys = Object.values(options.navKeys).map((k) => k.toLowerCase());
89
let enabled = false;
910
let has_opened = false;
@@ -148,6 +149,10 @@
148149
return is_toggle(event) && toggle_combo?.every((key) => is_key_active(key, event));
149150
}
150151
152+
function is_escape(event) {
153+
return escape_keys?.includes(event.key.toLowerCase());
154+
}
155+
151156
function is_toggle(event) {
152157
return toggle_combo?.includes(event.key.toLowerCase());
153158
}
@@ -188,8 +193,11 @@
188193
}
189194
} else if (is_open(event)) {
190195
open_editor(event);
191-
} else if (is_holding()) {
192-
// unhandled additional key pressed while holding, possibly another shortcut, disable again
196+
} else if (is_holding() || is_escape(event)) {
197+
// is_holding() checks for unhandled additional key pressed
198+
// while holding the toggle keys, which is possibly another
199+
// shortcut (e.g. 'meta-shift-x'), so disable again.
200+
193201
disable();
194202
}
195203
}

packages/vite-plugin-svelte-inspector/types/index.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ declare module '@sveltejs/vite-plugin-svelte-inspector' {
3737
*/
3838
openKey?: string;
3939

40+
/**
41+
* define keys to close the inspector
42+
* @default ['Backspace', 'Escape']
43+
*/
44+
escapeKeys?: string[];
45+
4046
/**
4147
* inspector is automatically disabled when releasing toggleKeyCombo after holding it for a longpress
4248
* @default true

packages/vite-plugin-svelte-inspector/types/index.d.ts.map

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
null,
1414
null
1515
],
16-
"mappings": ";kBAAiBA,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCoBRC,eAAeA"
16+
"mappings": ";kBAAiBA,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCoBRC,eAAeA"
1717
}

0 commit comments

Comments
 (0)