Skip to content

Commit fe1e12f

Browse files
feat: 🎸 add bike-style virtual cursor (#1770)
* feat: 🎸 add bike-style virtual cursor * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent bd69107 commit fe1e12f

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

Diff for: packages/crepe/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"codemirror": "^6.0.1",
7373
"katex": "^0.16.0",
7474
"nanoid": "^5.0.9",
75+
"prosemirror-virtual-cursor": "^0.4.2",
7576
"remark-math": "^6.0.0",
7677
"tslib": "^2.8.1",
7778
"unist-util-visit": "^5.0.0"

Diff for: packages/crepe/src/feature/cursor/index.ts

+10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import { cursor, dropCursorConfig } from '@milkdown/kit/plugin/cursor'
2+
import { createVirtualCursor } from 'prosemirror-virtual-cursor'
23

34
import type { DefineFeature } from '../shared'
5+
import { $prose } from '@milkdown/kit/utils'
46

57
interface CursorConfig {
68
color: string | false
79
width: number
10+
virtual: boolean
811
}
912
export type CursorFeatureConfig = Partial<CursorConfig>
1013

@@ -21,4 +24,11 @@ export const defineFeature: DefineFeature<CursorFeatureConfig> = (
2124
}))
2225
})
2326
.use(cursor)
27+
28+
if (config?.virtual === false) {
29+
return
30+
}
31+
32+
const virtualCursor = createVirtualCursor()
33+
editor.use($prose(() => virtualCursor))
2434
}

Diff for: packages/crepe/src/theme/common/cursor.css

+5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import '@milkdown/kit/prose/gapcursor/style/gapcursor.css';
2+
@import 'prosemirror-virtual-cursor/style/virtual-cursor.css';
23

34
.milkdown {
45
.crepe-drop-cursor {
@@ -16,4 +17,8 @@
1617
box-sizing: border-box;
1718
border-top: 1px solid var(--crepe-color-on-background);
1819
}
20+
21+
.ProseMirror-focused {
22+
--prosemirror-virtual-cursor-color: var(--crepe-color-outline);
23+
}
1924
}

Diff for: pnpm-lock.yaml

+23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)