diff --git a/package.json b/package.json index 875bd72..6033df8 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,11 @@ "@atcute/tangled": "^1.0.5", "@atcute/tid": "^1.0.2", "@atcute/uint8array": "^1.0.4", + "@codemirror/commands": "^6.8.1", "@codemirror/lang-json": "^6.0.2", "@codemirror/lint": "^6.8.5", "@codemirror/state": "^6.5.2", + "@codemirror/view": "^6.38.2", "@fsegurai/codemirror-theme-basic-dark": "^6.2.2", "@fsegurai/codemirror-theme-basic-light": "^6.2.2", "@mary/exif-rm": "jsr:^0.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b83c54d..38c8d09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: '@atcute/uint8array': specifier: ^1.0.4 version: 1.0.4 + '@codemirror/commands': + specifier: ^6.8.1 + version: 6.8.1 '@codemirror/lang-json': specifier: ^6.0.2 version: 6.0.2 @@ -65,6 +68,9 @@ importers: '@codemirror/state': specifier: ^6.5.2 version: 6.5.2 + '@codemirror/view': + specifier: ^6.38.2 + version: 6.38.2 '@fsegurai/codemirror-theme-basic-dark': specifier: ^6.2.2 version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)(@lezer/highlight@1.2.1) diff --git a/src/components/editor.tsx b/src/components/editor.tsx index f057e92..d8abcc4 100644 --- a/src/components/editor.tsx +++ b/src/components/editor.tsx @@ -5,6 +5,8 @@ import { linter } from "@codemirror/lint"; import { basicLight } from "@fsegurai/codemirror-theme-basic-light"; import { basicDark } from "@fsegurai/codemirror-theme-basic-dark"; import { Compartment } from "@codemirror/state"; +import { indentWithTab } from "@codemirror/commands"; +import { keymap } from "@codemirror/view"; export let editorView: EditorView; @@ -41,6 +43,7 @@ const Editor = (props: { content: string }) => { basicSetup, theme, json(), + keymap.of([indentWithTab]), linter(jsonParseLinter()), themeColor.of(document.documentElement.classList.contains("dark") ? basicDark : basicLight), ],