@vscode/markdown-editor 0.0.2-12 → 0.0.2-121
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 +571 -0
- package/dist/commands.d.ts +67 -0
- package/dist/commands.js +185 -0
- package/dist/commands.js.map +1 -0
- package/dist/config-BGeaJqWk.js +286 -0
- package/dist/config-BGeaJqWk.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +1964 -155
- package/dist/index.js +8134 -2188
- package/dist/index.js.map +1 -1
- package/dist/markdown-editor.css +1 -0
- package/dist/stringEdit-CVDbCUBY.js +215 -0
- package/dist/stringEdit-CVDbCUBY.js.map +1 -0
- package/dist/web-editors.d.ts +301 -0
- package/dist/web-editors.js +7368 -0
- package/dist/web-editors.js.map +1 -0
- package/package.json +66 -17
- package/src/contrib/comments/commentInput.css +89 -0
- package/src/contrib/comments/commentWidget.css +60 -0
- package/src/contrib/find/find.css +347 -0
- package/src/contrib/rename/rename.css +73 -0
- package/src/contrib/suggest/suggest.css +109 -0
- package/src/view/editor.css +1608 -66
- package/src/view/themes/default.css +21 -4
- package/src/view/themes/github.css +25 -13
- package/src/view/themes/vscode-default.css +407 -0
- package/src/view/themes/{vscode.css → vscode-github.css} +134 -62
- package/dist/_observables/assert.d.ts +0 -2
- package/dist/_observables/deps.d.ts +0 -28
- package/dist/_observables/disposables.d.ts +0 -19
- package/dist/_observables/equals.d.ts +0 -32
- package/dist/_observables/index.d.ts +0 -2
- package/dist/_observables/observableInternal/base.d.ts +0 -172
- package/dist/_observables/observableInternal/changeTracker.d.ts +0 -44
- package/dist/_observables/observableInternal/commonFacade/cancellation.d.ts +0 -24
- package/dist/_observables/observableInternal/commonFacade/deps.d.ts +0 -24
- package/dist/_observables/observableInternal/debugLocation.d.ts +0 -21
- package/dist/_observables/observableInternal/debugName.d.ts +0 -33
- package/dist/_observables/observableInternal/experimental/deferUnobserve.d.ts +0 -16
- package/dist/_observables/observableInternal/experimental/reducer.d.ts +0 -37
- package/dist/_observables/observableInternal/experimental/utils.d.ts +0 -15
- package/dist/_observables/observableInternal/index.d.ts +0 -25
- package/dist/_observables/observableInternal/logging/consoleObservableLogger.d.ts +0 -40
- package/dist/_observables/observableInternal/logging/debugGetDependencyGraph.d.ts +0 -4
- package/dist/_observables/observableInternal/logging/debugger/debuggerRpc.d.ts +0 -4
- package/dist/_observables/observableInternal/logging/debugger/devToolsLogger.d.ts +0 -43
- package/dist/_observables/observableInternal/logging/debugger/rpc.d.ts +0 -41
- package/dist/_observables/observableInternal/logging/debugger/utils.d.ts +0 -13
- package/dist/_observables/observableInternal/logging/logging.d.ts +0 -30
- package/dist/_observables/observableInternal/map.d.ts +0 -18
- package/dist/_observables/observableInternal/observables/baseObservable.d.ts +0 -58
- package/dist/_observables/observableInternal/observables/constObservable.d.ts +0 -5
- package/dist/_observables/observableInternal/observables/derived.d.ts +0 -46
- package/dist/_observables/observableInternal/observables/derivedImpl.d.ts +0 -83
- package/dist/_observables/observableInternal/observables/lazyObservableValue.d.ts +0 -27
- package/dist/_observables/observableInternal/observables/observableFromEvent.d.ts +0 -37
- package/dist/_observables/observableInternal/observables/observableSignal.d.ts +0 -11
- package/dist/_observables/observableInternal/observables/observableSignalFromEvent.d.ts +0 -5
- package/dist/_observables/observableInternal/observables/observableValue.d.ts +0 -37
- package/dist/_observables/observableInternal/observables/observableValueOpts.d.ts +0 -8
- package/dist/_observables/observableInternal/reactions/autorun.d.ts +0 -56
- package/dist/_observables/observableInternal/reactions/autorunImpl.d.ts +0 -53
- package/dist/_observables/observableInternal/set.d.ts +0 -17
- package/dist/_observables/observableInternal/transaction.d.ts +0 -27
- package/dist/_observables/observableInternal/utils/promise.d.ts +0 -75
- package/dist/_observables/observableInternal/utils/runOnChange.d.ts +0 -7
- package/dist/_observables/observableInternal/utils/utils.d.ts +0 -43
- package/dist/_observables/observableInternal/utils/utilsCancellation.d.ts +0 -10
- package/dist/_observables/observableInternal/utils/valueWithChangeEvent.d.ts +0 -10
- package/dist/_observables/utils.d.ts +0 -15
- package/dist/observables.d.ts +0 -4
- package/dist/observables.js +0 -439
- package/dist/observables.js.map +0 -1
- package/dist/runOnChange-C00UIwqQ.js +0 -1538
- package/dist/runOnChange-C00UIwqQ.js.map +0 -1
package/dist/commands.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
const r = ["macos"], n = ["windows", "linux"], o = (i, u = !1) => ({
|
|
2
|
+
kind: "cursor",
|
|
3
|
+
command: i,
|
|
4
|
+
extend: u
|
|
5
|
+
}), d = (i) => ({ kind: "edit", command: i }), c = (i) => ({ kind: "history", command: i }), s = (i) => ({ kind: "tab", command: i }), l = (i) => ({
|
|
6
|
+
kind: "enter",
|
|
7
|
+
command: i
|
|
8
|
+
}), t = (i, u, a) => ({ key: i, modifiers: u, platforms: a }), e = (i, u, a, w, m = "host") => ({ id: i, title: u, action: a, keybindings: w, routing: m }), L = [
|
|
9
|
+
e("markdown.editor.cursorLeft", "Move Cursor Left", o("left"), [
|
|
10
|
+
t("b", { ctrl: !0 }, r),
|
|
11
|
+
t("ArrowLeft")
|
|
12
|
+
]),
|
|
13
|
+
e("markdown.editor.cursorRight", "Move Cursor Right", o("right"), [
|
|
14
|
+
t("f", { ctrl: !0 }, r),
|
|
15
|
+
t("ArrowRight")
|
|
16
|
+
]),
|
|
17
|
+
e("markdown.editor.cursorUp", "Move Cursor Up", o("up"), [
|
|
18
|
+
t("p", { ctrl: !0 }, r),
|
|
19
|
+
t("ArrowUp")
|
|
20
|
+
]),
|
|
21
|
+
e("markdown.editor.cursorDown", "Move Cursor Down", o("down"), [
|
|
22
|
+
t("n", { ctrl: !0 }, r),
|
|
23
|
+
t("ArrowDown")
|
|
24
|
+
]),
|
|
25
|
+
e("markdown.editor.cursorLeftSelect", "Select Left", o("left", !0), [
|
|
26
|
+
t("ArrowLeft", { shift: !0 })
|
|
27
|
+
]),
|
|
28
|
+
e("markdown.editor.cursorRightSelect", "Select Right", o("right", !0), [
|
|
29
|
+
t("ArrowRight", { shift: !0 })
|
|
30
|
+
]),
|
|
31
|
+
e("markdown.editor.cursorUpSelect", "Select Up", o("up", !0), [
|
|
32
|
+
t("ArrowUp", { shift: !0 })
|
|
33
|
+
]),
|
|
34
|
+
e("markdown.editor.cursorDownSelect", "Select Down", o("down", !0), [
|
|
35
|
+
t("ArrowDown", { shift: !0 })
|
|
36
|
+
]),
|
|
37
|
+
e("markdown.editor.cursorWordLeft", "Move Cursor Word Left", o("wordLeft"), [
|
|
38
|
+
t("ArrowLeft", { alt: !0 }, r),
|
|
39
|
+
t("ArrowLeft", { ctrl: !0 }, n)
|
|
40
|
+
]),
|
|
41
|
+
e("markdown.editor.cursorWordRight", "Move Cursor Word Right", o("wordRight"), [
|
|
42
|
+
t("ArrowRight", { alt: !0 }, r),
|
|
43
|
+
t("ArrowRight", { ctrl: !0 }, n)
|
|
44
|
+
]),
|
|
45
|
+
e("markdown.editor.cursorWordLeftSelect", "Select Word Left", o("wordLeft", !0), [
|
|
46
|
+
t("ArrowLeft", { alt: !0, shift: !0 }, r),
|
|
47
|
+
t("ArrowLeft", { ctrl: !0, shift: !0 }, n)
|
|
48
|
+
]),
|
|
49
|
+
e("markdown.editor.cursorWordRightSelect", "Select Word Right", o("wordRight", !0), [
|
|
50
|
+
t("ArrowRight", { alt: !0, shift: !0 }, r),
|
|
51
|
+
t("ArrowRight", { ctrl: !0, shift: !0 }, n)
|
|
52
|
+
]),
|
|
53
|
+
e("markdown.editor.cursorVisualLineStart", "Move Cursor to Visual Line Start", o("visualLineStart"), [
|
|
54
|
+
t("ArrowLeft", { meta: !0 }, r),
|
|
55
|
+
t("Home")
|
|
56
|
+
]),
|
|
57
|
+
e("markdown.editor.cursorVisualLineEnd", "Move Cursor to Visual Line End", o("visualLineEnd"), [
|
|
58
|
+
t("ArrowRight", { meta: !0 }, r),
|
|
59
|
+
t("End")
|
|
60
|
+
]),
|
|
61
|
+
e("markdown.editor.cursorVisualLineStartSelect", "Select to Visual Line Start", o("visualLineStart", !0), [
|
|
62
|
+
t("ArrowLeft", { meta: !0, shift: !0 }, r),
|
|
63
|
+
t("Home", { shift: !0 })
|
|
64
|
+
]),
|
|
65
|
+
e("markdown.editor.cursorVisualLineEndSelect", "Select to Visual Line End", o("visualLineEnd", !0), [
|
|
66
|
+
t("ArrowRight", { meta: !0, shift: !0 }, r),
|
|
67
|
+
t("End", { shift: !0 })
|
|
68
|
+
]),
|
|
69
|
+
e("markdown.editor.cursorLogicalLineStart", "Move Cursor to Logical Line Start", o("logicalLineStart"), [
|
|
70
|
+
t("a", { ctrl: !0 }, r)
|
|
71
|
+
]),
|
|
72
|
+
e("markdown.editor.cursorLogicalLineEnd", "Move Cursor to Logical Line End", o("logicalLineEnd"), [
|
|
73
|
+
t("e", { ctrl: !0 }, r)
|
|
74
|
+
]),
|
|
75
|
+
e("markdown.editor.cursorLogicalLineStartSelect", "Select to Logical Line Start", o("logicalLineStart", !0), [
|
|
76
|
+
t("a", { ctrl: !0, shift: !0 }, r)
|
|
77
|
+
]),
|
|
78
|
+
e("markdown.editor.cursorLogicalLineEndSelect", "Select to Logical Line End", o("logicalLineEnd", !0), [
|
|
79
|
+
t("e", { ctrl: !0, shift: !0 }, r)
|
|
80
|
+
]),
|
|
81
|
+
e("markdown.editor.cursorDocumentStart", "Move Cursor to Document Start", o("documentStart"), [
|
|
82
|
+
t("ArrowUp", { meta: !0 }, r),
|
|
83
|
+
t("Home", { ctrl: !0 }, n)
|
|
84
|
+
]),
|
|
85
|
+
e("markdown.editor.cursorDocumentEnd", "Move Cursor to Document End", o("documentEnd"), [
|
|
86
|
+
t("ArrowDown", { meta: !0 }, r),
|
|
87
|
+
t("End", { ctrl: !0 }, n)
|
|
88
|
+
]),
|
|
89
|
+
e("markdown.editor.cursorDocumentStartSelect", "Select to Document Start", o("documentStart", !0), [
|
|
90
|
+
t("ArrowUp", { meta: !0, shift: !0 }, r),
|
|
91
|
+
t("Home", { ctrl: !0, shift: !0 }, n)
|
|
92
|
+
]),
|
|
93
|
+
e("markdown.editor.cursorDocumentEndSelect", "Select to Document End", o("documentEnd", !0), [
|
|
94
|
+
t("ArrowDown", { meta: !0, shift: !0 }, r),
|
|
95
|
+
t("End", { ctrl: !0, shift: !0 }, n)
|
|
96
|
+
]),
|
|
97
|
+
e("markdown.editor.selectAll", "Select All", { kind: "selectAll" }, [
|
|
98
|
+
t("a", { meta: !0 }, r),
|
|
99
|
+
t("a", { ctrl: !0 }, n)
|
|
100
|
+
]),
|
|
101
|
+
e("markdown.editor.deleteLeft", "Delete Left", d("deleteLeft"), [
|
|
102
|
+
t("h", { ctrl: !0 }, r),
|
|
103
|
+
t("Backspace", { ctrl: !0 }, r),
|
|
104
|
+
t("Backspace"),
|
|
105
|
+
t("Backspace", { shift: !0 })
|
|
106
|
+
]),
|
|
107
|
+
e("markdown.editor.deleteRight", "Delete Right", d("deleteRight"), [
|
|
108
|
+
t("d", { ctrl: !0 }, r),
|
|
109
|
+
t("Delete", { ctrl: !0 }, r),
|
|
110
|
+
t("Delete")
|
|
111
|
+
]),
|
|
112
|
+
e("markdown.editor.deleteWordLeft", "Delete Word Left", d("deleteWordLeft"), [
|
|
113
|
+
t("Backspace", { alt: !0 }, r),
|
|
114
|
+
t("Backspace", { ctrl: !0 }, n)
|
|
115
|
+
]),
|
|
116
|
+
e("markdown.editor.deleteWordRight", "Delete Word Right", d("deleteWordRight"), [
|
|
117
|
+
t("Delete", { alt: !0 }, r),
|
|
118
|
+
t("Delete", { ctrl: !0 }, n)
|
|
119
|
+
]),
|
|
120
|
+
e("markdown.editor.deleteLineLeft", "Delete All Left", d("deleteLineLeft"), [
|
|
121
|
+
t("Backspace", { meta: !0 }, r)
|
|
122
|
+
]),
|
|
123
|
+
e("markdown.editor.deleteLineRight", "Delete All Right", d("deleteLineRight"), [
|
|
124
|
+
t("Delete", { meta: !0 }, r),
|
|
125
|
+
t("k", { ctrl: !0 }, r)
|
|
126
|
+
]),
|
|
127
|
+
e("markdown.editor.copyLinesUp", "Copy Line Up", d("copyLinesUp"), [
|
|
128
|
+
t("ArrowUp", { alt: !0, shift: !0 }, r),
|
|
129
|
+
t("ArrowUp", { alt: !0, shift: !0 }, ["windows"]),
|
|
130
|
+
t("ArrowUp", { ctrl: !0, alt: !0, shift: !0 }, ["linux"])
|
|
131
|
+
]),
|
|
132
|
+
e("markdown.editor.copyLinesDown", "Copy Line Down", d("copyLinesDown"), [
|
|
133
|
+
t("ArrowDown", { alt: !0, shift: !0 }, r),
|
|
134
|
+
t("ArrowDown", { alt: !0, shift: !0 }, ["windows"]),
|
|
135
|
+
t("ArrowDown", { ctrl: !0, alt: !0, shift: !0 }, ["linux"])
|
|
136
|
+
]),
|
|
137
|
+
e("markdown.editor.moveLinesUp", "Move Line Up", d("moveLinesUp"), [
|
|
138
|
+
t("ArrowUp", { alt: !0 })
|
|
139
|
+
]),
|
|
140
|
+
e("markdown.editor.moveLinesDown", "Move Line Down", d("moveLinesDown"), [
|
|
141
|
+
t("ArrowDown", { alt: !0 })
|
|
142
|
+
]),
|
|
143
|
+
e("markdown.editor.deleteLines", "Delete Line", d("deleteLines"), [
|
|
144
|
+
t("k", { meta: !0, shift: !0 }, r),
|
|
145
|
+
t("k", { ctrl: !0, shift: !0 }, n)
|
|
146
|
+
]),
|
|
147
|
+
e("markdown.editor.joinLines", "Join Lines", d("joinLines"), [
|
|
148
|
+
t("j", { ctrl: !0 }, r)
|
|
149
|
+
]),
|
|
150
|
+
e("markdown.editor.toggleLocked", "Toggle Markdown Read-only", { kind: "toggleReadonly" }, [
|
|
151
|
+
t("e", { meta: !0 }, r)
|
|
152
|
+
]),
|
|
153
|
+
e("markdown.editor.undo", "Undo", c("undo"), [
|
|
154
|
+
t("z", { meta: !0 }, r),
|
|
155
|
+
t("z", { ctrl: !0 }, n)
|
|
156
|
+
]),
|
|
157
|
+
e("markdown.editor.redo", "Redo", c("redo"), [
|
|
158
|
+
t("z", { meta: !0, shift: !0 }, r),
|
|
159
|
+
t("z", { ctrl: !0, shift: !0 }, n),
|
|
160
|
+
t("y", { ctrl: !0 }, n)
|
|
161
|
+
]),
|
|
162
|
+
e("markdown.editor.insertTab", "Insert Tab", s("insert"), [
|
|
163
|
+
t("Tab")
|
|
164
|
+
], "local"),
|
|
165
|
+
e("markdown.editor.outdent", "Outdent", s("outdent"), [
|
|
166
|
+
t("Tab", { shift: !0 })
|
|
167
|
+
], "local"),
|
|
168
|
+
e("markdown.editor.toggleTabFocus", "Toggle Tab Key Moves Focus", { kind: "toggleTabFocus" }, [
|
|
169
|
+
t("m", { ctrl: !0 })
|
|
170
|
+
], "local"),
|
|
171
|
+
e("markdown.editor.smartEnter", "Insert Paragraph", l("smartEnter"), [
|
|
172
|
+
t("Enter")
|
|
173
|
+
]),
|
|
174
|
+
e("markdown.editor.insertHardLineBreak", "Insert Hard Line Break", l("insertHardLineBreak"), [
|
|
175
|
+
t("Enter", { shift: !0 })
|
|
176
|
+
]),
|
|
177
|
+
e("markdown.editor.insertParagraph", "Insert Paragraph Without Continuing Markup", l("insertParagraph"), [
|
|
178
|
+
t("Enter", { meta: !0 }, r),
|
|
179
|
+
t("Enter", { ctrl: !0 })
|
|
180
|
+
])
|
|
181
|
+
];
|
|
182
|
+
export {
|
|
183
|
+
L as commands
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sources":["../src/editorCommands.ts"],"sourcesContent":["export type KeyboardPlatform = 'macos' | 'windows' | 'linux';\n\nexport type CursorKeyboardAction =\n\t| 'left'\n\t| 'right'\n\t| 'up'\n\t| 'down'\n\t| 'wordLeft'\n\t| 'wordRight'\n\t| 'visualLineStart'\n\t| 'visualLineEnd'\n\t| 'logicalLineStart'\n\t| 'logicalLineEnd'\n\t| 'documentStart'\n\t| 'documentEnd';\n\nexport type EditKeyboardAction =\n\t| 'deleteLeft'\n\t| 'deleteRight'\n\t| 'deleteWordLeft'\n\t| 'deleteWordRight'\n\t| 'deleteLineLeft'\n\t| 'deleteLineRight'\n\t| 'copyLinesUp'\n\t| 'copyLinesDown'\n\t| 'moveLinesUp'\n\t| 'moveLinesDown'\n\t| 'deleteLines'\n\t| 'joinLines';\n\nexport type HistoryKeyboardAction = 'undo' | 'redo';\nexport type TabKeyboardAction = 'insert' | 'outdent';\n\nexport type EditorKeyboardAction =\n\t| { readonly kind: 'cursor'; readonly command: CursorKeyboardAction; readonly extend: boolean }\n\t| { readonly kind: 'edit'; readonly command: EditKeyboardAction }\n\t| { readonly kind: 'history'; readonly command: HistoryKeyboardAction }\n\t| { readonly kind: 'tab'; readonly command: TabKeyboardAction }\n\t| { readonly kind: 'toggleTabFocus' }\n\t| { readonly kind: 'toggleReadonly' }\n\t| { readonly kind: 'selectAll' }\n\t| { readonly kind: 'enter'; readonly command: 'smartEnter' | 'insertParagraph' | 'insertHardLineBreak' };\n\nexport interface KeyboardModifiers {\n\treadonly shift?: boolean;\n\treadonly alt?: boolean;\n\treadonly ctrl?: boolean;\n\treadonly meta?: boolean;\n}\n\nexport interface EditorCommandKeybinding {\n\treadonly key: string;\n\treadonly modifiers?: KeyboardModifiers;\n\treadonly platforms?: readonly KeyboardPlatform[];\n}\n\nexport interface EditorCommandDefinition {\n\treadonly id: `markdown.editor.${string}`;\n\treadonly title: string;\n\treadonly action: EditorKeyboardAction;\n\treadonly keybindings: readonly EditorCommandKeybinding[];\n\t/**\n\t * Local commands must execute synchronously in the webview instead of being\n\t * forwarded through the VS Code keybinding service.\n\t */\n\treadonly routing?: 'host' | 'local';\n}\n\nconst MACOS = ['macos'] as const;\nconst NON_MACOS = ['windows', 'linux'] as const;\n\nconst cursor = (command: CursorKeyboardAction, extend = false): EditorKeyboardAction => ({\n\tkind: 'cursor',\n\tcommand,\n\textend,\n});\nconst edit = (command: EditKeyboardAction): EditorKeyboardAction => ({ kind: 'edit', command });\nconst history = (command: HistoryKeyboardAction): EditorKeyboardAction => ({ kind: 'history', command });\nconst tab = (command: TabKeyboardAction): EditorKeyboardAction => ({ kind: 'tab', command });\nconst enter = (command: 'smartEnter' | 'insertParagraph' | 'insertHardLineBreak'): EditorKeyboardAction => ({\n\tkind: 'enter',\n\tcommand,\n});\nconst binding = (\n\tkey: string,\n\tmodifiers?: KeyboardModifiers,\n\tplatforms?: readonly KeyboardPlatform[],\n): EditorCommandKeybinding => ({ key, modifiers, platforms });\nconst command = (\n\tid: EditorCommandDefinition['id'],\n\ttitle: string,\n\taction: EditorKeyboardAction,\n\tkeybindings: readonly EditorCommandKeybinding[],\n\trouting: EditorCommandDefinition['routing'] = 'host',\n): EditorCommandDefinition => ({ id, title, action, keybindings, routing });\n\n/**\n * Canonical editor command catalog. Standalone keyboard handling and host\n * integrations derive their command registration and default keybindings from\n * this list.\n */\nexport const commands: readonly EditorCommandDefinition[] = [\n\tcommand('markdown.editor.cursorLeft', 'Move Cursor Left', cursor('left'), [\n\t\tbinding('b', { ctrl: true }, MACOS),\n\t\tbinding('ArrowLeft'),\n\t]),\n\tcommand('markdown.editor.cursorRight', 'Move Cursor Right', cursor('right'), [\n\t\tbinding('f', { ctrl: true }, MACOS),\n\t\tbinding('ArrowRight'),\n\t]),\n\tcommand('markdown.editor.cursorUp', 'Move Cursor Up', cursor('up'), [\n\t\tbinding('p', { ctrl: true }, MACOS),\n\t\tbinding('ArrowUp'),\n\t]),\n\tcommand('markdown.editor.cursorDown', 'Move Cursor Down', cursor('down'), [\n\t\tbinding('n', { ctrl: true }, MACOS),\n\t\tbinding('ArrowDown'),\n\t]),\n\tcommand('markdown.editor.cursorLeftSelect', 'Select Left', cursor('left', true), [\n\t\tbinding('ArrowLeft', { shift: true }),\n\t]),\n\tcommand('markdown.editor.cursorRightSelect', 'Select Right', cursor('right', true), [\n\t\tbinding('ArrowRight', { shift: true }),\n\t]),\n\tcommand('markdown.editor.cursorUpSelect', 'Select Up', cursor('up', true), [\n\t\tbinding('ArrowUp', { shift: true }),\n\t]),\n\tcommand('markdown.editor.cursorDownSelect', 'Select Down', cursor('down', true), [\n\t\tbinding('ArrowDown', { shift: true }),\n\t]),\n\tcommand('markdown.editor.cursorWordLeft', 'Move Cursor Word Left', cursor('wordLeft'), [\n\t\tbinding('ArrowLeft', { alt: true }, MACOS),\n\t\tbinding('ArrowLeft', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorWordRight', 'Move Cursor Word Right', cursor('wordRight'), [\n\t\tbinding('ArrowRight', { alt: true }, MACOS),\n\t\tbinding('ArrowRight', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorWordLeftSelect', 'Select Word Left', cursor('wordLeft', true), [\n\t\tbinding('ArrowLeft', { alt: true, shift: true }, MACOS),\n\t\tbinding('ArrowLeft', { ctrl: true, shift: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorWordRightSelect', 'Select Word Right', cursor('wordRight', true), [\n\t\tbinding('ArrowRight', { alt: true, shift: true }, MACOS),\n\t\tbinding('ArrowRight', { ctrl: true, shift: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorVisualLineStart', 'Move Cursor to Visual Line Start', cursor('visualLineStart'), [\n\t\tbinding('ArrowLeft', { meta: true }, MACOS),\n\t\tbinding('Home'),\n\t]),\n\tcommand('markdown.editor.cursorVisualLineEnd', 'Move Cursor to Visual Line End', cursor('visualLineEnd'), [\n\t\tbinding('ArrowRight', { meta: true }, MACOS),\n\t\tbinding('End'),\n\t]),\n\tcommand('markdown.editor.cursorVisualLineStartSelect', 'Select to Visual Line Start', cursor('visualLineStart', true), [\n\t\tbinding('ArrowLeft', { meta: true, shift: true }, MACOS),\n\t\tbinding('Home', { shift: true }),\n\t]),\n\tcommand('markdown.editor.cursorVisualLineEndSelect', 'Select to Visual Line End', cursor('visualLineEnd', true), [\n\t\tbinding('ArrowRight', { meta: true, shift: true }, MACOS),\n\t\tbinding('End', { shift: true }),\n\t]),\n\tcommand('markdown.editor.cursorLogicalLineStart', 'Move Cursor to Logical Line Start', cursor('logicalLineStart'), [\n\t\tbinding('a', { ctrl: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.cursorLogicalLineEnd', 'Move Cursor to Logical Line End', cursor('logicalLineEnd'), [\n\t\tbinding('e', { ctrl: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.cursorLogicalLineStartSelect', 'Select to Logical Line Start', cursor('logicalLineStart', true), [\n\t\tbinding('a', { ctrl: true, shift: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.cursorLogicalLineEndSelect', 'Select to Logical Line End', cursor('logicalLineEnd', true), [\n\t\tbinding('e', { ctrl: true, shift: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.cursorDocumentStart', 'Move Cursor to Document Start', cursor('documentStart'), [\n\t\tbinding('ArrowUp', { meta: true }, MACOS),\n\t\tbinding('Home', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorDocumentEnd', 'Move Cursor to Document End', cursor('documentEnd'), [\n\t\tbinding('ArrowDown', { meta: true }, MACOS),\n\t\tbinding('End', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorDocumentStartSelect', 'Select to Document Start', cursor('documentStart', true), [\n\t\tbinding('ArrowUp', { meta: true, shift: true }, MACOS),\n\t\tbinding('Home', { ctrl: true, shift: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.cursorDocumentEndSelect', 'Select to Document End', cursor('documentEnd', true), [\n\t\tbinding('ArrowDown', { meta: true, shift: true }, MACOS),\n\t\tbinding('End', { ctrl: true, shift: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.selectAll', 'Select All', { kind: 'selectAll' }, [\n\t\tbinding('a', { meta: true }, MACOS),\n\t\tbinding('a', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.deleteLeft', 'Delete Left', edit('deleteLeft'), [\n\t\tbinding('h', { ctrl: true }, MACOS),\n\t\tbinding('Backspace', { ctrl: true }, MACOS),\n\t\tbinding('Backspace'),\n\t\tbinding('Backspace', { shift: true }),\n\t]),\n\tcommand('markdown.editor.deleteRight', 'Delete Right', edit('deleteRight'), [\n\t\tbinding('d', { ctrl: true }, MACOS),\n\t\tbinding('Delete', { ctrl: true }, MACOS),\n\t\tbinding('Delete'),\n\t]),\n\tcommand('markdown.editor.deleteWordLeft', 'Delete Word Left', edit('deleteWordLeft'), [\n\t\tbinding('Backspace', { alt: true }, MACOS),\n\t\tbinding('Backspace', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.deleteWordRight', 'Delete Word Right', edit('deleteWordRight'), [\n\t\tbinding('Delete', { alt: true }, MACOS),\n\t\tbinding('Delete', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.deleteLineLeft', 'Delete All Left', edit('deleteLineLeft'), [\n\t\tbinding('Backspace', { meta: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.deleteLineRight', 'Delete All Right', edit('deleteLineRight'), [\n\t\tbinding('Delete', { meta: true }, MACOS),\n\t\tbinding('k', { ctrl: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.copyLinesUp', 'Copy Line Up', edit('copyLinesUp'), [\n\t\tbinding('ArrowUp', { alt: true, shift: true }, MACOS),\n\t\tbinding('ArrowUp', { alt: true, shift: true }, ['windows']),\n\t\tbinding('ArrowUp', { ctrl: true, alt: true, shift: true }, ['linux']),\n\t]),\n\tcommand('markdown.editor.copyLinesDown', 'Copy Line Down', edit('copyLinesDown'), [\n\t\tbinding('ArrowDown', { alt: true, shift: true }, MACOS),\n\t\tbinding('ArrowDown', { alt: true, shift: true }, ['windows']),\n\t\tbinding('ArrowDown', { ctrl: true, alt: true, shift: true }, ['linux']),\n\t]),\n\tcommand('markdown.editor.moveLinesUp', 'Move Line Up', edit('moveLinesUp'), [\n\t\tbinding('ArrowUp', { alt: true }),\n\t]),\n\tcommand('markdown.editor.moveLinesDown', 'Move Line Down', edit('moveLinesDown'), [\n\t\tbinding('ArrowDown', { alt: true }),\n\t]),\n\tcommand('markdown.editor.deleteLines', 'Delete Line', edit('deleteLines'), [\n\t\tbinding('k', { meta: true, shift: true }, MACOS),\n\t\tbinding('k', { ctrl: true, shift: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.joinLines', 'Join Lines', edit('joinLines'), [\n\t\tbinding('j', { ctrl: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.toggleLocked', 'Toggle Markdown Read-only', { kind: 'toggleReadonly' }, [\n\t\tbinding('e', { meta: true }, MACOS),\n\t]),\n\tcommand('markdown.editor.undo', 'Undo', history('undo'), [\n\t\tbinding('z', { meta: true }, MACOS),\n\t\tbinding('z', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.redo', 'Redo', history('redo'), [\n\t\tbinding('z', { meta: true, shift: true }, MACOS),\n\t\tbinding('z', { ctrl: true, shift: true }, NON_MACOS),\n\t\tbinding('y', { ctrl: true }, NON_MACOS),\n\t]),\n\tcommand('markdown.editor.insertTab', 'Insert Tab', tab('insert'), [\n\t\tbinding('Tab'),\n\t], 'local'),\n\tcommand('markdown.editor.outdent', 'Outdent', tab('outdent'), [\n\t\tbinding('Tab', { shift: true }),\n\t], 'local'),\n\tcommand('markdown.editor.toggleTabFocus', 'Toggle Tab Key Moves Focus', { kind: 'toggleTabFocus' }, [\n\t\tbinding('m', { ctrl: true }),\n\t], 'local'),\n\tcommand('markdown.editor.smartEnter', 'Insert Paragraph', enter('smartEnter'), [\n\t\tbinding('Enter'),\n\t]),\n\tcommand('markdown.editor.insertHardLineBreak', 'Insert Hard Line Break', enter('insertHardLineBreak'), [\n\t\tbinding('Enter', { shift: true }),\n\t]),\n\tcommand('markdown.editor.insertParagraph', 'Insert Paragraph Without Continuing Markup', enter('insertParagraph'), [\n\t\tbinding('Enter', { meta: true }, MACOS),\n\t\tbinding('Enter', { ctrl: true }),\n\t]),\n];\n"],"names":["MACOS","NON_MACOS","cursor","command","extend","edit","history","tab","enter","binding","key","modifiers","platforms","id","title","action","keybindings","routing","commands"],"mappings":"AAoEA,MAAMA,IAAQ,CAAC,OAAO,GAChBC,IAAY,CAAC,WAAW,OAAO,GAE/BC,IAAS,CAACC,GAA+BC,IAAS,QAAiC;AAAA,EACxF,MAAM;AAAA,EACN,SAAAD;AAAAA,EACA,QAAAC;AACD,IACMC,IAAO,CAACF,OAAuD,EAAE,MAAM,QAAQ,SAAAA,MAC/EG,IAAU,CAACH,OAA0D,EAAE,MAAM,WAAW,SAAAA,MACxFI,IAAM,CAACJ,OAAsD,EAAE,MAAM,OAAO,SAAAA,MAC5EK,IAAQ,CAACL,OAA6F;AAAA,EAC3G,MAAM;AAAA,EACN,SAAAA;AACD,IACMM,IAAU,CACfC,GACAC,GACAC,OAC8B,EAAE,KAAAF,GAAK,WAAAC,GAAW,WAAAC,MAC3CT,IAAU,CACfU,GACAC,GACAC,GACAC,GACAC,IAA8C,YAChB,EAAE,IAAAJ,GAAI,OAAAC,GAAO,QAAAC,GAAQ,aAAAC,GAAa,SAAAC,EAAA,IAOpDC,IAA+C;AAAA,EAC3Df,EAAQ,8BAA8B,oBAAoBD,EAAO,MAAM,GAAG;AAAA,IACzEO,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,WAAW;AAAA,EAAA,CACnB;AAAA,EACDN,EAAQ,+BAA+B,qBAAqBD,EAAO,OAAO,GAAG;AAAA,IAC5EO,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,YAAY;AAAA,EAAA,CACpB;AAAA,EACDN,EAAQ,4BAA4B,kBAAkBD,EAAO,IAAI,GAAG;AAAA,IACnEO,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,SAAS;AAAA,EAAA,CACjB;AAAA,EACDN,EAAQ,8BAA8B,oBAAoBD,EAAO,MAAM,GAAG;AAAA,IACzEO,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,WAAW;AAAA,EAAA,CACnB;AAAA,EACDN,EAAQ,oCAAoC,eAAeD,EAAO,QAAQ,EAAI,GAAG;AAAA,IAChFO,EAAQ,aAAa,EAAE,OAAO,IAAM;AAAA,EAAA,CACpC;AAAA,EACDN,EAAQ,qCAAqC,gBAAgBD,EAAO,SAAS,EAAI,GAAG;AAAA,IACnFO,EAAQ,cAAc,EAAE,OAAO,IAAM;AAAA,EAAA,CACrC;AAAA,EACDN,EAAQ,kCAAkC,aAAaD,EAAO,MAAM,EAAI,GAAG;AAAA,IAC1EO,EAAQ,WAAW,EAAE,OAAO,IAAM;AAAA,EAAA,CAClC;AAAA,EACDN,EAAQ,oCAAoC,eAAeD,EAAO,QAAQ,EAAI,GAAG;AAAA,IAChFO,EAAQ,aAAa,EAAE,OAAO,IAAM;AAAA,EAAA,CACpC;AAAA,EACDN,EAAQ,kCAAkC,yBAAyBD,EAAO,UAAU,GAAG;AAAA,IACtFO,EAAQ,aAAa,EAAE,KAAK,GAAA,GAAQT,CAAK;AAAA,IACzCS,EAAQ,aAAa,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CAC9C;AAAA,EACDE,EAAQ,mCAAmC,0BAA0BD,EAAO,WAAW,GAAG;AAAA,IACzFO,EAAQ,cAAc,EAAE,KAAK,GAAA,GAAQT,CAAK;AAAA,IAC1CS,EAAQ,cAAc,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CAC/C;AAAA,EACDE,EAAQ,wCAAwC,oBAAoBD,EAAO,YAAY,EAAI,GAAG;AAAA,IAC7FO,EAAQ,aAAa,EAAE,KAAK,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACtDS,EAAQ,aAAa,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQR,CAAS;AAAA,EAAA,CAC3D;AAAA,EACDE,EAAQ,yCAAyC,qBAAqBD,EAAO,aAAa,EAAI,GAAG;AAAA,IAChGO,EAAQ,cAAc,EAAE,KAAK,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACvDS,EAAQ,cAAc,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQR,CAAS;AAAA,EAAA,CAC5D;AAAA,EACDE,EAAQ,yCAAyC,oCAAoCD,EAAO,iBAAiB,GAAG;AAAA,IAC/GO,EAAQ,aAAa,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAC1CS,EAAQ,MAAM;AAAA,EAAA,CACd;AAAA,EACDN,EAAQ,uCAAuC,kCAAkCD,EAAO,eAAe,GAAG;AAAA,IACzGO,EAAQ,cAAc,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAC3CS,EAAQ,KAAK;AAAA,EAAA,CACb;AAAA,EACDN,EAAQ,+CAA+C,+BAA+BD,EAAO,mBAAmB,EAAI,GAAG;AAAA,IACtHO,EAAQ,aAAa,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACvDS,EAAQ,QAAQ,EAAE,OAAO,IAAM;AAAA,EAAA,CAC/B;AAAA,EACDN,EAAQ,6CAA6C,6BAA6BD,EAAO,iBAAiB,EAAI,GAAG;AAAA,IAChHO,EAAQ,cAAc,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACxDS,EAAQ,OAAO,EAAE,OAAO,IAAM;AAAA,EAAA,CAC9B;AAAA,EACDN,EAAQ,0CAA0C,qCAAqCD,EAAO,kBAAkB,GAAG;AAAA,IAClHO,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,EAAA,CAClC;AAAA,EACDG,EAAQ,wCAAwC,mCAAmCD,EAAO,gBAAgB,GAAG;AAAA,IAC5GO,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,EAAA,CAClC;AAAA,EACDG,EAAQ,gDAAgD,gCAAgCD,EAAO,oBAAoB,EAAI,GAAG;AAAA,IACzHO,EAAQ,KAAK,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,EAAA,CAC/C;AAAA,EACDG,EAAQ,8CAA8C,8BAA8BD,EAAO,kBAAkB,EAAI,GAAG;AAAA,IACnHO,EAAQ,KAAK,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,EAAA,CAC/C;AAAA,EACDG,EAAQ,uCAAuC,iCAAiCD,EAAO,eAAe,GAAG;AAAA,IACxGO,EAAQ,WAAW,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IACxCS,EAAQ,QAAQ,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CACzC;AAAA,EACDE,EAAQ,qCAAqC,+BAA+BD,EAAO,aAAa,GAAG;AAAA,IAClGO,EAAQ,aAAa,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAC1CS,EAAQ,OAAO,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CACxC;AAAA,EACDE,EAAQ,6CAA6C,4BAA4BD,EAAO,iBAAiB,EAAI,GAAG;AAAA,IAC/GO,EAAQ,WAAW,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACrDS,EAAQ,QAAQ,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQR,CAAS;AAAA,EAAA,CACtD;AAAA,EACDE,EAAQ,2CAA2C,0BAA0BD,EAAO,eAAe,EAAI,GAAG;AAAA,IACzGO,EAAQ,aAAa,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACvDS,EAAQ,OAAO,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQR,CAAS;AAAA,EAAA,CACrD;AAAA,EACDE,EAAQ,6BAA6B,cAAc,EAAE,MAAM,eAAe;AAAA,IACzEM,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CACtC;AAAA,EACDE,EAAQ,8BAA8B,eAAeE,EAAK,YAAY,GAAG;AAAA,IACxEI,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,aAAa,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAC1CS,EAAQ,WAAW;AAAA,IACnBA,EAAQ,aAAa,EAAE,OAAO,IAAM;AAAA,EAAA,CACpC;AAAA,EACDN,EAAQ,+BAA+B,gBAAgBE,EAAK,aAAa,GAAG;AAAA,IAC3EI,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,UAAU,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IACvCS,EAAQ,QAAQ;AAAA,EAAA,CAChB;AAAA,EACDN,EAAQ,kCAAkC,oBAAoBE,EAAK,gBAAgB,GAAG;AAAA,IACrFI,EAAQ,aAAa,EAAE,KAAK,GAAA,GAAQT,CAAK;AAAA,IACzCS,EAAQ,aAAa,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CAC9C;AAAA,EACDE,EAAQ,mCAAmC,qBAAqBE,EAAK,iBAAiB,GAAG;AAAA,IACxFI,EAAQ,UAAU,EAAE,KAAK,GAAA,GAAQT,CAAK;AAAA,IACtCS,EAAQ,UAAU,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CAC3C;AAAA,EACDE,EAAQ,kCAAkC,mBAAmBE,EAAK,gBAAgB,GAAG;AAAA,IACpFI,EAAQ,aAAa,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,EAAA,CAC1C;AAAA,EACDG,EAAQ,mCAAmC,oBAAoBE,EAAK,iBAAiB,GAAG;AAAA,IACvFI,EAAQ,UAAU,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IACvCS,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,EAAA,CAClC;AAAA,EACDG,EAAQ,+BAA+B,gBAAgBE,EAAK,aAAa,GAAG;AAAA,IAC3EI,EAAQ,WAAW,EAAE,KAAK,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACpDS,EAAQ,WAAW,EAAE,KAAK,IAAM,OAAO,GAAA,GAAQ,CAAC,SAAS,CAAC;AAAA,IAC1DA,EAAQ,WAAW,EAAE,MAAM,IAAM,KAAK,IAAM,OAAO,MAAQ,CAAC,OAAO,CAAC;AAAA,EAAA,CACpE;AAAA,EACDN,EAAQ,iCAAiC,kBAAkBE,EAAK,eAAe,GAAG;AAAA,IACjFI,EAAQ,aAAa,EAAE,KAAK,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IACtDS,EAAQ,aAAa,EAAE,KAAK,IAAM,OAAO,GAAA,GAAQ,CAAC,SAAS,CAAC;AAAA,IAC5DA,EAAQ,aAAa,EAAE,MAAM,IAAM,KAAK,IAAM,OAAO,MAAQ,CAAC,OAAO,CAAC;AAAA,EAAA,CACtE;AAAA,EACDN,EAAQ,+BAA+B,gBAAgBE,EAAK,aAAa,GAAG;AAAA,IAC3EI,EAAQ,WAAW,EAAE,KAAK,IAAM;AAAA,EAAA,CAChC;AAAA,EACDN,EAAQ,iCAAiC,kBAAkBE,EAAK,eAAe,GAAG;AAAA,IACjFI,EAAQ,aAAa,EAAE,KAAK,IAAM;AAAA,EAAA,CAClC;AAAA,EACDN,EAAQ,+BAA+B,eAAeE,EAAK,aAAa,GAAG;AAAA,IAC1EI,EAAQ,KAAK,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IAC/CS,EAAQ,KAAK,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQR,CAAS;AAAA,EAAA,CACnD;AAAA,EACDE,EAAQ,6BAA6B,cAAcE,EAAK,WAAW,GAAG;AAAA,IACrEI,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,EAAA,CAClC;AAAA,EACDG,EAAQ,gCAAgC,6BAA6B,EAAE,MAAM,oBAAoB;AAAA,IAChGM,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,EAAA,CAClC;AAAA,EACDG,EAAQ,wBAAwB,QAAQG,EAAQ,MAAM,GAAG;AAAA,IACxDG,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IAClCS,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CACtC;AAAA,EACDE,EAAQ,wBAAwB,QAAQG,EAAQ,MAAM,GAAG;AAAA,IACxDG,EAAQ,KAAK,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQT,CAAK;AAAA,IAC/CS,EAAQ,KAAK,EAAE,MAAM,IAAM,OAAO,GAAA,GAAQR,CAAS;AAAA,IACnDQ,EAAQ,KAAK,EAAE,MAAM,GAAA,GAAQR,CAAS;AAAA,EAAA,CACtC;AAAA,EACDE,EAAQ,6BAA6B,cAAcI,EAAI,QAAQ,GAAG;AAAA,IACjEE,EAAQ,KAAK;AAAA,EAAA,GACX,OAAO;AAAA,EACVN,EAAQ,2BAA2B,WAAWI,EAAI,SAAS,GAAG;AAAA,IAC7DE,EAAQ,OAAO,EAAE,OAAO,IAAM;AAAA,EAAA,GAC5B,OAAO;AAAA,EACVN,EAAQ,kCAAkC,8BAA8B,EAAE,MAAM,oBAAoB;AAAA,IACnGM,EAAQ,KAAK,EAAE,MAAM,IAAM;AAAA,EAAA,GACzB,OAAO;AAAA,EACVN,EAAQ,8BAA8B,oBAAoBK,EAAM,YAAY,GAAG;AAAA,IAC9EC,EAAQ,OAAO;AAAA,EAAA,CACf;AAAA,EACDN,EAAQ,uCAAuC,0BAA0BK,EAAM,qBAAqB,GAAG;AAAA,IACtGC,EAAQ,SAAS,EAAE,OAAO,IAAM;AAAA,EAAA,CAChC;AAAA,EACDN,EAAQ,mCAAmC,8CAA8CK,EAAM,iBAAiB,GAAG;AAAA,IAClHC,EAAQ,SAAS,EAAE,MAAM,GAAA,GAAQT,CAAK;AAAA,IACtCS,EAAQ,SAAS,EAAE,MAAM,IAAM;AAAA,EAAA,CAC/B;AACF;"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
const C = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?", f = {
|
|
2
|
+
wordSeparators: C,
|
|
3
|
+
wordSegmenterLocales: []
|
|
4
|
+
};
|
|
5
|
+
function _(e, n) {
|
|
6
|
+
return e !== void 0 && !/\s/u.test(e) && !n.includes(e);
|
|
7
|
+
}
|
|
8
|
+
class S {
|
|
9
|
+
_separators;
|
|
10
|
+
_segmenter;
|
|
11
|
+
_cachedLine;
|
|
12
|
+
_cachedWords = [];
|
|
13
|
+
constructor(n) {
|
|
14
|
+
this._separators = new Set(n.wordSeparators), this._segmenter = L(n.wordSegmenterLocales);
|
|
15
|
+
}
|
|
16
|
+
classify(n) {
|
|
17
|
+
return n === void 0 || n === " " || n === " " ? 1 : this._separators.has(n) ? 2 : 0;
|
|
18
|
+
}
|
|
19
|
+
previousIntlWord(n, i) {
|
|
20
|
+
let t;
|
|
21
|
+
for (const r of this._intlWords(n)) {
|
|
22
|
+
if (r.index > i)
|
|
23
|
+
break;
|
|
24
|
+
t = r;
|
|
25
|
+
}
|
|
26
|
+
return t;
|
|
27
|
+
}
|
|
28
|
+
nextIntlWord(n, i) {
|
|
29
|
+
return this._intlWords(n).find((t) => t.index >= i);
|
|
30
|
+
}
|
|
31
|
+
_intlWords(n) {
|
|
32
|
+
if (!this._segmenter)
|
|
33
|
+
return [];
|
|
34
|
+
if (this._cachedLine === n)
|
|
35
|
+
return this._cachedWords;
|
|
36
|
+
const i = [];
|
|
37
|
+
for (const t of this._segmenter.segment(n))
|
|
38
|
+
t.isWordLike && i.push({ index: t.index, segment: t.segment });
|
|
39
|
+
return this._cachedLine = n, this._cachedWords = i, i;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function L(e) {
|
|
43
|
+
if (e.length === 0)
|
|
44
|
+
return;
|
|
45
|
+
const n = [];
|
|
46
|
+
for (const i of e) {
|
|
47
|
+
if (typeof i != "string" || i.length === 0) {
|
|
48
|
+
console.warn("Ignoring invalid editor.wordSegmenterLocales entry", i);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
n.push(...Intl.Segmenter.supportedLocalesOf(i));
|
|
53
|
+
} catch (t) {
|
|
54
|
+
console.warn(`Ignoring invalid editor.wordSegmenterLocales entry: ${i}`, t);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (n.length !== 0)
|
|
58
|
+
try {
|
|
59
|
+
return new Intl.Segmenter(n, { granularity: "word" });
|
|
60
|
+
} catch (i) {
|
|
61
|
+
console.warn(`Unable to initialize editor.wordSegmenterLocales: ${n.join(", ")}`, i);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const y = /* @__PURE__ */ new Map();
|
|
66
|
+
function W(e) {
|
|
67
|
+
const n = `${e.wordSeparators}/${e.wordSegmenterLocales.join(",")}`;
|
|
68
|
+
let i = y.get(n);
|
|
69
|
+
return i || (i = new S(e), y.set(n, i)), i;
|
|
70
|
+
}
|
|
71
|
+
function x(e, n, i = f) {
|
|
72
|
+
if (n = p(n, 0, e.length), n === 0)
|
|
73
|
+
return 0;
|
|
74
|
+
let t = e.lastIndexOf(`
|
|
75
|
+
`, n - 1) + 1, r = e.indexOf(`
|
|
76
|
+
`, n);
|
|
77
|
+
r === -1 && (r = e.length);
|
|
78
|
+
let s = n - t;
|
|
79
|
+
if (s === 0) {
|
|
80
|
+
const a = t - 1;
|
|
81
|
+
t = a <= 0 ? 0 : e.lastIndexOf(`
|
|
82
|
+
`, a - 1) + 1, r = a, s = Math.max(0, a - t);
|
|
83
|
+
}
|
|
84
|
+
const l = e.slice(t, r), d = W(i);
|
|
85
|
+
let o = v(l, d, s);
|
|
86
|
+
return o?.type === 1 && o.end - o.start === 1 && o.nextClass === 0 && (o = v(l, d, o.start)), t + (o?.start ?? 0);
|
|
87
|
+
}
|
|
88
|
+
function E(e, n, i = f) {
|
|
89
|
+
if (n = p(n, 0, e.length), n === e.length)
|
|
90
|
+
return e.length;
|
|
91
|
+
let t = e.lastIndexOf(`
|
|
92
|
+
`, n - 1) + 1, r = e.indexOf(`
|
|
93
|
+
`, n);
|
|
94
|
+
r === -1 && (r = e.length);
|
|
95
|
+
let s = n - t;
|
|
96
|
+
n === r && r < e.length && (t = r + 1, r = e.indexOf(`
|
|
97
|
+
`, t), r === -1 && (r = e.length), s = 0);
|
|
98
|
+
const l = e.slice(t, r), d = W(i);
|
|
99
|
+
let o = O(l, d, s);
|
|
100
|
+
return o?.type === 1 && o.end - o.start === 1 && o.nextClass === 0 && (o = O(l, d, o.end)), t + (o?.end ?? l.length);
|
|
101
|
+
}
|
|
102
|
+
function A(e, n, i = f) {
|
|
103
|
+
if (n = p(n, 0, e.length), n === 0)
|
|
104
|
+
return 0;
|
|
105
|
+
const t = n === 0 ? 0 : e.lastIndexOf(`
|
|
106
|
+
`, n - 1) + 1, r = n - t;
|
|
107
|
+
if (r === 0)
|
|
108
|
+
return n - 1;
|
|
109
|
+
let s = r - 1;
|
|
110
|
+
for (; s >= 0 && (e[t + s] === " " || e[t + s] === " "); )
|
|
111
|
+
s--;
|
|
112
|
+
if (s + 1 < r - 1)
|
|
113
|
+
return t + s + 1;
|
|
114
|
+
let l = e.indexOf(`
|
|
115
|
+
`, n);
|
|
116
|
+
l === -1 && (l = e.length);
|
|
117
|
+
const d = e.slice(t, l), o = v(d, W(i), r);
|
|
118
|
+
return t + (o?.start ?? 0);
|
|
119
|
+
}
|
|
120
|
+
function D(e, n, i = f) {
|
|
121
|
+
if (n = p(n, 0, e.length), n === e.length)
|
|
122
|
+
return e.length;
|
|
123
|
+
const t = e.lastIndexOf(`
|
|
124
|
+
`, n - 1) + 1;
|
|
125
|
+
let r = e.indexOf(`
|
|
126
|
+
`, n);
|
|
127
|
+
r === -1 && (r = e.length);
|
|
128
|
+
const s = n - t, l = e.slice(t, r);
|
|
129
|
+
let d = s;
|
|
130
|
+
for (; d < l.length && (l[d] === " " || l[d] === " "); )
|
|
131
|
+
d++;
|
|
132
|
+
if (s < d)
|
|
133
|
+
return t + d;
|
|
134
|
+
const o = W(i), a = O(l, o, s);
|
|
135
|
+
if (a)
|
|
136
|
+
return t + a.end;
|
|
137
|
+
if (n < r || r === e.length)
|
|
138
|
+
return r;
|
|
139
|
+
const h = r + 1;
|
|
140
|
+
let c = e.indexOf(`
|
|
141
|
+
`, h);
|
|
142
|
+
c === -1 && (c = e.length);
|
|
143
|
+
const u = e.slice(h, c), g = O(u, o, 0);
|
|
144
|
+
return h + (g?.start ?? u.length);
|
|
145
|
+
}
|
|
146
|
+
function R(e, n, i = f) {
|
|
147
|
+
if (n = p(n, 0, e.length), n === e.length)
|
|
148
|
+
return { start: n, end: n };
|
|
149
|
+
const t = e[n];
|
|
150
|
+
if (/\s/u.test(t)) {
|
|
151
|
+
let g = n, m = n + 1;
|
|
152
|
+
for (; g > 0 && /\s/u.test(e[g - 1]); )
|
|
153
|
+
g--;
|
|
154
|
+
for (; m < e.length && /\s/u.test(e[m]); )
|
|
155
|
+
m++;
|
|
156
|
+
return { start: g, end: m };
|
|
157
|
+
}
|
|
158
|
+
const r = e.lastIndexOf(`
|
|
159
|
+
`, n - 1) + 1;
|
|
160
|
+
let s = e.indexOf(`
|
|
161
|
+
`, n);
|
|
162
|
+
s === -1 && (s = e.length);
|
|
163
|
+
const l = e.slice(r, s), d = n - r, o = W(i), a = o.previousIntlWord(l, d);
|
|
164
|
+
if (a && d < a.index + a.segment.length)
|
|
165
|
+
return {
|
|
166
|
+
start: r + a.index,
|
|
167
|
+
end: r + a.index + a.segment.length
|
|
168
|
+
};
|
|
169
|
+
const h = o.classify(t);
|
|
170
|
+
let c = d, u = d + 1;
|
|
171
|
+
for (; c > 0 && o.classify(l[c - 1]) === h; )
|
|
172
|
+
c--;
|
|
173
|
+
for (; u < l.length && o.classify(l[u]) === h; )
|
|
174
|
+
u++;
|
|
175
|
+
return { start: r + c, end: r + u };
|
|
176
|
+
}
|
|
177
|
+
function v(e, n, i) {
|
|
178
|
+
let t;
|
|
179
|
+
const r = n.previousIntlWord(e, i - 1);
|
|
180
|
+
for (let s = i - 1; s >= 0; s--) {
|
|
181
|
+
const l = n.classify(e[s]);
|
|
182
|
+
if (r && s === r.index)
|
|
183
|
+
return {
|
|
184
|
+
start: r.index,
|
|
185
|
+
end: r.index + r.segment.length,
|
|
186
|
+
type: 0,
|
|
187
|
+
nextClass: l
|
|
188
|
+
};
|
|
189
|
+
if (l === 0) {
|
|
190
|
+
if (t === 1) {
|
|
191
|
+
const d = s + 1;
|
|
192
|
+
return { start: d, end: w(e, n, t, d), type: t, nextClass: l };
|
|
193
|
+
}
|
|
194
|
+
t = 0;
|
|
195
|
+
} else if (l === 2) {
|
|
196
|
+
if (t === 0) {
|
|
197
|
+
const d = s + 1;
|
|
198
|
+
return { start: d, end: w(e, n, t, d), type: t, nextClass: l };
|
|
199
|
+
}
|
|
200
|
+
t = 1;
|
|
201
|
+
} else if (t !== void 0) {
|
|
202
|
+
const d = s + 1;
|
|
203
|
+
return { start: d, end: w(e, n, t, d), type: t, nextClass: l };
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return t === void 0 ? void 0 : {
|
|
207
|
+
start: 0,
|
|
208
|
+
end: w(e, n, t, 0),
|
|
209
|
+
type: t,
|
|
210
|
+
nextClass: 1
|
|
211
|
+
/* Whitespace */
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
function O(e, n, i) {
|
|
215
|
+
let t;
|
|
216
|
+
const r = n.nextIntlWord(e, i);
|
|
217
|
+
for (let s = i; s < e.length; s++) {
|
|
218
|
+
const l = n.classify(e[s]);
|
|
219
|
+
if (r && s === r.index)
|
|
220
|
+
return {
|
|
221
|
+
start: r.index,
|
|
222
|
+
end: r.index + r.segment.length,
|
|
223
|
+
type: 0,
|
|
224
|
+
nextClass: l
|
|
225
|
+
};
|
|
226
|
+
if (l === 0) {
|
|
227
|
+
if (t === 1) {
|
|
228
|
+
const d = s;
|
|
229
|
+
return { start: I(e, n, t, d - 1), end: d, type: t, nextClass: l };
|
|
230
|
+
}
|
|
231
|
+
t = 0;
|
|
232
|
+
} else if (l === 2) {
|
|
233
|
+
if (t === 0) {
|
|
234
|
+
const d = s;
|
|
235
|
+
return { start: I(e, n, t, d - 1), end: d, type: t, nextClass: l };
|
|
236
|
+
}
|
|
237
|
+
t = 1;
|
|
238
|
+
} else if (t !== void 0) {
|
|
239
|
+
const d = s;
|
|
240
|
+
return { start: I(e, n, t, d - 1), end: d, type: t, nextClass: l };
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return t === void 0 ? void 0 : {
|
|
244
|
+
start: I(e, n, t, e.length - 1),
|
|
245
|
+
end: e.length,
|
|
246
|
+
type: t,
|
|
247
|
+
nextClass: 1
|
|
248
|
+
/* Whitespace */
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function w(e, n, i, t) {
|
|
252
|
+
const r = n.nextIntlWord(e, t);
|
|
253
|
+
for (let s = t; s < e.length; s++) {
|
|
254
|
+
if (r && s === r.index + r.segment.length)
|
|
255
|
+
return s;
|
|
256
|
+
const l = n.classify(e[s]);
|
|
257
|
+
if (l === 1 || i === 0 && l === 2 || i === 1 && l === 0)
|
|
258
|
+
return s;
|
|
259
|
+
}
|
|
260
|
+
return e.length;
|
|
261
|
+
}
|
|
262
|
+
function I(e, n, i, t) {
|
|
263
|
+
const r = n.previousIntlWord(e, t);
|
|
264
|
+
for (let s = t; s >= 0; s--) {
|
|
265
|
+
if (r && s === r.index)
|
|
266
|
+
return s;
|
|
267
|
+
const l = n.classify(e[s]);
|
|
268
|
+
if (l === 1 || i === 0 && l === 2 || i === 1 && l === 0)
|
|
269
|
+
return s + 1;
|
|
270
|
+
}
|
|
271
|
+
return 0;
|
|
272
|
+
}
|
|
273
|
+
function p(e, n, i) {
|
|
274
|
+
return Math.min(Math.max(e, n), i);
|
|
275
|
+
}
|
|
276
|
+
export {
|
|
277
|
+
f as D,
|
|
278
|
+
E as a,
|
|
279
|
+
A as b,
|
|
280
|
+
D as c,
|
|
281
|
+
R as d,
|
|
282
|
+
C as e,
|
|
283
|
+
x as f,
|
|
284
|
+
_ as i
|
|
285
|
+
};
|
|
286
|
+
//# sourceMappingURL=config-BGeaJqWk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-BGeaJqWk.js","sources":["../src/core/wordUtils.ts"],"sourcesContent":["export const DEFAULT_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?';\n\nexport interface WordNavigationConfig {\n\treadonly wordSeparators: string;\n\treadonly wordSegmenterLocales: readonly string[];\n}\n\nexport const DEFAULT_WORD_NAVIGATION_CONFIG: WordNavigationConfig = {\n\twordSeparators: DEFAULT_WORD_SEPARATORS,\n\twordSegmenterLocales: [],\n};\n\nexport function isRegularWordCharacter(character: string | undefined, wordSeparators: string): boolean {\n\treturn character !== undefined\n\t\t&& !/\\s/u.test(character)\n\t\t&& !wordSeparators.includes(character);\n}\n\nconst enum WordCharacterClass {\n\tRegular,\n\tWhitespace,\n\tSeparator,\n}\n\nconst enum WordType {\n\tRegular,\n\tSeparator,\n}\n\ninterface WordSpan {\n\treadonly start: number;\n\treadonly end: number;\n\treadonly type: WordType;\n\treadonly nextClass: WordCharacterClass;\n}\n\ninterface IntlWordSpan {\n\treadonly index: number;\n\treadonly segment: string;\n}\n\nclass WordClassifier {\n\tprivate readonly _separators: ReadonlySet<string>;\n\tprivate readonly _segmenter: Intl.Segmenter | undefined;\n\tprivate _cachedLine: string | undefined;\n\tprivate _cachedWords: readonly IntlWordSpan[] = [];\n\n\tconstructor(config: WordNavigationConfig) {\n\t\tthis._separators = new Set(config.wordSeparators);\n\t\tthis._segmenter = createWordSegmenter(config.wordSegmenterLocales);\n\t}\n\n\tclassify(character: string | undefined): WordCharacterClass {\n\t\tif (character === undefined) {\n\t\t\treturn WordCharacterClass.Whitespace;\n\t\t}\n\t\tif (character === ' ' || character === '\\t') {\n\t\t\treturn WordCharacterClass.Whitespace;\n\t\t}\n\t\treturn this._separators.has(character)\n\t\t\t? WordCharacterClass.Separator\n\t\t\t: WordCharacterClass.Regular;\n\t}\n\n\tpreviousIntlWord(line: string, offset: number): IntlWordSpan | undefined {\n\t\tlet candidate: IntlWordSpan | undefined;\n\t\tfor (const word of this._intlWords(line)) {\n\t\t\tif (word.index > offset) { break; }\n\t\t\tcandidate = word;\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tnextIntlWord(line: string, offset: number): IntlWordSpan | undefined {\n\t\treturn this._intlWords(line).find(word => word.index >= offset);\n\t}\n\n\tprivate _intlWords(line: string): readonly IntlWordSpan[] {\n\t\tif (!this._segmenter) { return []; }\n\t\tif (this._cachedLine === line) { return this._cachedWords; }\n\n\t\tconst words: IntlWordSpan[] = [];\n\t\tfor (const segment of this._segmenter.segment(line)) {\n\t\t\tif (segment.isWordLike) {\n\t\t\t\twords.push({ index: segment.index, segment: segment.segment });\n\t\t\t}\n\t\t}\n\t\tthis._cachedLine = line;\n\t\tthis._cachedWords = words;\n\t\treturn words;\n\t}\n}\n\nfunction createWordSegmenter(locales: readonly string[]): Intl.Segmenter | undefined {\n\tif (locales.length === 0) { return undefined; }\n\tconst supportedLocales: string[] = [];\n\tfor (const locale of locales as readonly unknown[]) {\n\t\tif (typeof locale !== 'string' || locale.length === 0) {\n\t\t\tconsole.warn('Ignoring invalid editor.wordSegmenterLocales entry', locale);\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tsupportedLocales.push(...Intl.Segmenter.supportedLocalesOf(locale));\n\t\t} catch (error) {\n\t\t\tconsole.warn(`Ignoring invalid editor.wordSegmenterLocales entry: ${locale}`, error);\n\t\t}\n\t}\n\tif (supportedLocales.length === 0) { return undefined; }\n\ttry {\n\t\treturn new Intl.Segmenter(supportedLocales, { granularity: 'word' });\n\t} catch (error) {\n\t\tconsole.warn(`Unable to initialize editor.wordSegmenterLocales: ${supportedLocales.join(', ')}`, error);\n\t\treturn undefined;\n\t}\n}\n\nconst classifierCache = new Map<string, WordClassifier>();\n\nfunction getClassifier(config: WordNavigationConfig): WordClassifier {\n\tconst key = `${config.wordSeparators}/${config.wordSegmenterLocales.join(',')}`;\n\tlet classifier = classifierCache.get(key);\n\tif (!classifier) {\n\t\tclassifier = new WordClassifier(config);\n\t\tclassifierCache.set(key, classifier);\n\t}\n\treturn classifier;\n}\n\nexport function findWordBoundaryLeft(\n\ttext: string,\n\toffset: number,\n\tconfig: WordNavigationConfig = DEFAULT_WORD_NAVIGATION_CONFIG,\n): number {\n\toffset = clamp(offset, 0, text.length);\n\tif (offset === 0) { return 0; }\n\n\tlet lineStart = text.lastIndexOf('\\n', offset - 1) + 1;\n\tlet lineEnd = text.indexOf('\\n', offset);\n\tif (lineEnd === -1) { lineEnd = text.length; }\n\tlet localOffset = offset - lineStart;\n\tif (localOffset === 0) {\n\t\tconst previousLineEnd = lineStart - 1;\n\t\tlineStart = previousLineEnd <= 0\n\t\t\t? 0\n\t\t\t: text.lastIndexOf('\\n', previousLineEnd - 1) + 1;\n\t\tlineEnd = previousLineEnd;\n\t\tlocalOffset = Math.max(0, previousLineEnd - lineStart);\n\t}\n\n\tconst line = text.slice(lineStart, lineEnd);\n\tconst classifier = getClassifier(config);\n\tlet previous = findPreviousWord(line, classifier, localOffset);\n\tif (\n\t\tprevious?.type === WordType.Separator\n\t\t&& previous.end - previous.start === 1\n\t\t&& previous.nextClass === WordCharacterClass.Regular\n\t) {\n\t\tprevious = findPreviousWord(line, classifier, previous.start);\n\t}\n\treturn lineStart + (previous?.start ?? 0);\n}\n\nexport function findWordBoundaryRight(\n\ttext: string,\n\toffset: number,\n\tconfig: WordNavigationConfig = DEFAULT_WORD_NAVIGATION_CONFIG,\n): number {\n\toffset = clamp(offset, 0, text.length);\n\tif (offset === text.length) { return text.length; }\n\n\tlet lineStart = text.lastIndexOf('\\n', offset - 1) + 1;\n\tlet lineEnd = text.indexOf('\\n', offset);\n\tif (lineEnd === -1) { lineEnd = text.length; }\n\tlet localOffset = offset - lineStart;\n\tif (offset === lineEnd && lineEnd < text.length) {\n\t\tlineStart = lineEnd + 1;\n\t\tlineEnd = text.indexOf('\\n', lineStart);\n\t\tif (lineEnd === -1) { lineEnd = text.length; }\n\t\tlocalOffset = 0;\n\t}\n\n\tconst line = text.slice(lineStart, lineEnd);\n\tconst classifier = getClassifier(config);\n\tlet next = findNextWord(line, classifier, localOffset);\n\tif (\n\t\tnext?.type === WordType.Separator\n\t\t&& next.end - next.start === 1\n\t\t&& next.nextClass === WordCharacterClass.Regular\n\t) {\n\t\tnext = findNextWord(line, classifier, next.end);\n\t}\n\treturn lineStart + (next?.end ?? line.length);\n}\n\nexport function findWordDeleteBoundaryLeft(\n\ttext: string,\n\toffset: number,\n\tconfig: WordNavigationConfig = DEFAULT_WORD_NAVIGATION_CONFIG,\n): number {\n\toffset = clamp(offset, 0, text.length);\n\tif (offset === 0) { return 0; }\n\n\tconst lineStart = offset === 0 ? 0 : text.lastIndexOf('\\n', offset - 1) + 1;\n\tconst localOffset = offset - lineStart;\n\tif (localOffset === 0) {\n\t\treturn offset - 1;\n\t}\n\n\tlet lastNonWhitespace = localOffset - 1;\n\twhile (\n\t\tlastNonWhitespace >= 0\n\t\t&& (text[lineStart + lastNonWhitespace] === ' ' || text[lineStart + lastNonWhitespace] === '\\t')\n\t) {\n\t\tlastNonWhitespace--;\n\t}\n\tif (lastNonWhitespace + 1 < localOffset - 1) {\n\t\treturn lineStart + lastNonWhitespace + 1;\n\t}\n\n\tlet lineEnd = text.indexOf('\\n', offset);\n\tif (lineEnd === -1) { lineEnd = text.length; }\n\tconst line = text.slice(lineStart, lineEnd);\n\tconst previous = findPreviousWord(line, getClassifier(config), localOffset);\n\treturn lineStart + (previous?.start ?? 0);\n}\n\nexport function findWordDeleteBoundaryRight(\n\ttext: string,\n\toffset: number,\n\tconfig: WordNavigationConfig = DEFAULT_WORD_NAVIGATION_CONFIG,\n): number {\n\toffset = clamp(offset, 0, text.length);\n\tif (offset === text.length) { return text.length; }\n\n\tconst lineStart = text.lastIndexOf('\\n', offset - 1) + 1;\n\tlet lineEnd = text.indexOf('\\n', offset);\n\tif (lineEnd === -1) { lineEnd = text.length; }\n\tconst localOffset = offset - lineStart;\n\tconst line = text.slice(lineStart, lineEnd);\n\n\tlet firstNonWhitespace = localOffset;\n\twhile (\n\t\tfirstNonWhitespace < line.length\n\t\t&& (line[firstNonWhitespace] === ' ' || line[firstNonWhitespace] === '\\t')\n\t) {\n\t\tfirstNonWhitespace++;\n\t}\n\tif (localOffset < firstNonWhitespace) {\n\t\treturn lineStart + firstNonWhitespace;\n\t}\n\n\tconst classifier = getClassifier(config);\n\tconst next = findNextWord(line, classifier, localOffset);\n\tif (next) {\n\t\treturn lineStart + next.end;\n\t}\n\tif (offset < lineEnd || lineEnd === text.length) {\n\t\treturn lineEnd;\n\t}\n\n\tconst nextLineStart = lineEnd + 1;\n\tlet nextLineEnd = text.indexOf('\\n', nextLineStart);\n\tif (nextLineEnd === -1) { nextLineEnd = text.length; }\n\tconst nextLine = text.slice(nextLineStart, nextLineEnd);\n\tconst nextLineWord = findNextWord(nextLine, classifier, 0);\n\treturn nextLineStart + (nextLineWord?.start ?? nextLine.length);\n}\n\nexport function findWordAt(\n\ttext: string,\n\toffset: number,\n\tconfig: WordNavigationConfig = DEFAULT_WORD_NAVIGATION_CONFIG,\n): { start: number; end: number } {\n\toffset = clamp(offset, 0, text.length);\n\tif (offset === text.length) {\n\t\treturn { start: offset, end: offset };\n\t}\n\n\tconst character = text[offset];\n\tif (/\\s/u.test(character)) {\n\t\tlet start = offset;\n\t\tlet end = offset + 1;\n\t\twhile (start > 0 && /\\s/u.test(text[start - 1])) { start--; }\n\t\twhile (end < text.length && /\\s/u.test(text[end])) { end++; }\n\t\treturn { start, end };\n\t}\n\n\tconst lineStart = text.lastIndexOf('\\n', offset - 1) + 1;\n\tlet lineEnd = text.indexOf('\\n', offset);\n\tif (lineEnd === -1) { lineEnd = text.length; }\n\tconst line = text.slice(lineStart, lineEnd);\n\tconst localOffset = offset - lineStart;\n\tconst classifier = getClassifier(config);\n\n\tconst intlWord = classifier.previousIntlWord(line, localOffset);\n\tif (intlWord && localOffset < intlWord.index + intlWord.segment.length) {\n\t\treturn {\n\t\t\tstart: lineStart + intlWord.index,\n\t\t\tend: lineStart + intlWord.index + intlWord.segment.length,\n\t\t};\n\t}\n\n\tconst characterClass = classifier.classify(character);\n\tlet start = localOffset;\n\tlet end = localOffset + 1;\n\twhile (start > 0 && classifier.classify(line[start - 1]) === characterClass) { start--; }\n\twhile (end < line.length && classifier.classify(line[end]) === characterClass) { end++; }\n\treturn { start: lineStart + start, end: lineStart + end };\n}\n\nfunction findPreviousWord(line: string, classifier: WordClassifier, offset: number): WordSpan | undefined {\n\tlet type: WordType | undefined;\n\tconst previousIntlWord = classifier.previousIntlWord(line, offset - 1);\n\n\tfor (let index = offset - 1; index >= 0; index--) {\n\t\tconst characterClass = classifier.classify(line[index]);\n\t\tif (previousIntlWord && index === previousIntlWord.index) {\n\t\t\treturn {\n\t\t\t\tstart: previousIntlWord.index,\n\t\t\t\tend: previousIntlWord.index + previousIntlWord.segment.length,\n\t\t\t\ttype: WordType.Regular,\n\t\t\t\tnextClass: characterClass,\n\t\t\t};\n\t\t}\n\n\t\tif (characterClass === WordCharacterClass.Regular) {\n\t\t\tif (type === WordType.Separator) {\n\t\t\t\tconst start = index + 1;\n\t\t\t\treturn { start, end: findWordEnd(line, classifier, type, start), type, nextClass: characterClass };\n\t\t\t}\n\t\t\ttype = WordType.Regular;\n\t\t} else if (characterClass === WordCharacterClass.Separator) {\n\t\t\tif (type === WordType.Regular) {\n\t\t\t\tconst start = index + 1;\n\t\t\t\treturn { start, end: findWordEnd(line, classifier, type, start), type, nextClass: characterClass };\n\t\t\t}\n\t\t\ttype = WordType.Separator;\n\t\t} else if (type !== undefined) {\n\t\t\tconst start = index + 1;\n\t\t\treturn { start, end: findWordEnd(line, classifier, type, start), type, nextClass: characterClass };\n\t\t}\n\t}\n\n\treturn type === undefined\n\t\t? undefined\n\t\t: { start: 0, end: findWordEnd(line, classifier, type, 0), type, nextClass: WordCharacterClass.Whitespace };\n}\n\nfunction findNextWord(line: string, classifier: WordClassifier, offset: number): WordSpan | undefined {\n\tlet type: WordType | undefined;\n\tconst nextIntlWord = classifier.nextIntlWord(line, offset);\n\n\tfor (let index = offset; index < line.length; index++) {\n\t\tconst characterClass = classifier.classify(line[index]);\n\t\tif (nextIntlWord && index === nextIntlWord.index) {\n\t\t\treturn {\n\t\t\t\tstart: nextIntlWord.index,\n\t\t\t\tend: nextIntlWord.index + nextIntlWord.segment.length,\n\t\t\t\ttype: WordType.Regular,\n\t\t\t\tnextClass: characterClass,\n\t\t\t};\n\t\t}\n\n\t\tif (characterClass === WordCharacterClass.Regular) {\n\t\t\tif (type === WordType.Separator) {\n\t\t\t\tconst end = index;\n\t\t\t\treturn { start: findWordStart(line, classifier, type, end - 1), end, type, nextClass: characterClass };\n\t\t\t}\n\t\t\ttype = WordType.Regular;\n\t\t} else if (characterClass === WordCharacterClass.Separator) {\n\t\t\tif (type === WordType.Regular) {\n\t\t\t\tconst end = index;\n\t\t\t\treturn { start: findWordStart(line, classifier, type, end - 1), end, type, nextClass: characterClass };\n\t\t\t}\n\t\t\ttype = WordType.Separator;\n\t\t} else if (type !== undefined) {\n\t\t\tconst end = index;\n\t\t\treturn { start: findWordStart(line, classifier, type, end - 1), end, type, nextClass: characterClass };\n\t\t}\n\t}\n\n\treturn type === undefined\n\t\t? undefined\n\t\t: {\n\t\t\tstart: findWordStart(line, classifier, type, line.length - 1),\n\t\t\tend: line.length,\n\t\t\ttype,\n\t\t\tnextClass: WordCharacterClass.Whitespace,\n\t\t};\n}\n\nfunction findWordEnd(line: string, classifier: WordClassifier, type: WordType, start: number): number {\n\tconst nextIntlWord = classifier.nextIntlWord(line, start);\n\tfor (let index = start; index < line.length; index++) {\n\t\tif (nextIntlWord && index === nextIntlWord.index + nextIntlWord.segment.length) {\n\t\t\treturn index;\n\t\t}\n\t\tconst characterClass = classifier.classify(line[index]);\n\t\tif (\n\t\t\tcharacterClass === WordCharacterClass.Whitespace\n\t\t\t|| (type === WordType.Regular && characterClass === WordCharacterClass.Separator)\n\t\t\t|| (type === WordType.Separator && characterClass === WordCharacterClass.Regular)\n\t\t) {\n\t\t\treturn index;\n\t\t}\n\t}\n\treturn line.length;\n}\n\nfunction findWordStart(line: string, classifier: WordClassifier, type: WordType, start: number): number {\n\tconst previousIntlWord = classifier.previousIntlWord(line, start);\n\tfor (let index = start; index >= 0; index--) {\n\t\tif (previousIntlWord && index === previousIntlWord.index) {\n\t\t\treturn index;\n\t\t}\n\t\tconst characterClass = classifier.classify(line[index]);\n\t\tif (\n\t\t\tcharacterClass === WordCharacterClass.Whitespace\n\t\t\t|| (type === WordType.Regular && characterClass === WordCharacterClass.Separator)\n\t\t\t|| (type === WordType.Separator && characterClass === WordCharacterClass.Regular)\n\t\t) {\n\t\t\treturn index + 1;\n\t\t}\n\t}\n\treturn 0;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n\treturn Math.min(Math.max(value, min), max);\n}\n"],"names":["DEFAULT_WORD_SEPARATORS","DEFAULT_WORD_NAVIGATION_CONFIG","isRegularWordCharacter","character","wordSeparators","WordClassifier","config","createWordSegmenter","line","offset","candidate","word","words","segment","locales","supportedLocales","locale","error","classifierCache","getClassifier","key","classifier","findWordBoundaryLeft","text","clamp","lineStart","lineEnd","localOffset","previousLineEnd","previous","findPreviousWord","findWordBoundaryRight","next","findNextWord","findWordDeleteBoundaryLeft","lastNonWhitespace","findWordDeleteBoundaryRight","firstNonWhitespace","nextLineStart","nextLineEnd","nextLine","nextLineWord","findWordAt","start","end","intlWord","characterClass","type","previousIntlWord","index","findWordEnd","nextIntlWord","findWordStart","value","min","max"],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const DEFAULT_WORD_NAVIGATION_CONFIG: WordNavigationConfig;
|
|
2
|
+
|
|
3
|
+
export declare const DEFAULT_WORD_SEPARATORS = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";
|
|
4
|
+
|
|
5
|
+
export declare interface WordNavigationConfig {
|
|
6
|
+
readonly wordSeparators: string;
|
|
7
|
+
readonly wordSegmenterLocales: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { }
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|