From 85b02bf020d7d78be206fde17408d024cc0b0c52 Mon Sep 17 00:00:00 2001 From: Kohei Watanabe Date: Sat, 17 Sep 2022 21:42:09 +0900 Subject: [PATCH] auto indent --- app/views/components/editor.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/views/components/editor.tsx b/app/views/components/editor.tsx index ab333cf..4f082a8 100644 --- a/app/views/components/editor.tsx +++ b/app/views/components/editor.tsx @@ -1,7 +1,7 @@ import { onCleanup, onMount } from "solid-js"; import { minimalSetup } from "codemirror"; import { emacsStyleKeymap, indentWithTab } from "@codemirror/commands"; -import { indentUnit } from "@codemirror/language"; +import { indentService, indentUnit } from "@codemirror/language"; import { EditorView, keymap } from "@codemirror/view"; import type Pages from "../../protocol/pages"; import "./editor.css"; @@ -37,6 +37,11 @@ export default (props: { }), EditorView.lineWrapping, indentUnit.of(" "), + indentService.of((context, pos) => { + const previousLine = context.lineAt(pos, -1).text; + if (previousLine.trim() === "") return null; + return /^[ \t]*/.exec(previousLine)?.[0]?.length ?? null; + }), keymap.of([indentWithTab, ...emacsStyleKeymap]), minimalSetup, quotLanguage,