@adecore/editor-react 0.22.1 → 0.23.1
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/dist/CallHierarchyPanel.d.ts +6 -0
- package/dist/CallHierarchyPanel.js +92 -0
- package/dist/CompletionPopup.js +11 -3
- package/dist/DiffView.d.ts +22 -0
- package/dist/DiffView.js +203 -0
- package/dist/EditorContextMenu.js +1 -0
- package/dist/EditorView.js +18 -1
- package/dist/FindReplace.d.ts +1 -1
- package/dist/FindReplace.js +41 -11
- package/dist/HoverCard.js +2 -2
- package/dist/LanguagePopups.js +4 -1
- package/dist/Markdown.d.ts +2 -1
- package/dist/Markdown.js +8 -4
- package/dist/PanelResizeHandle.d.ts +8 -0
- package/dist/PanelResizeHandle.js +71 -0
- package/dist/PeekPanel.d.ts +3 -0
- package/dist/PeekPanel.js +7 -4
- package/dist/PickPopup.js +15 -2
- package/dist/RenameCard.js +10 -5
- package/dist/RenderedDocs.d.ts +9 -0
- package/dist/RenderedDocs.js +84 -0
- package/dist/SplitDiffView.d.ts +9 -0
- package/dist/SplitDiffView.js +276 -0
- package/dist/SymbolPicker.d.ts +3 -0
- package/dist/SymbolPicker.js +4 -3
- package/dist/call-hierarchy-model.d.ts +52 -0
- package/dist/call-hierarchy-model.js +93 -0
- package/dist/call-hierarchy.d.ts +42 -0
- package/dist/call-hierarchy.js +398 -0
- package/dist/code-actions-model.d.ts +2 -0
- package/dist/code-actions-model.js +12 -10
- package/dist/code-actions.js +3 -1
- package/dist/completion-model.d.ts +14 -4
- package/dist/completion-model.js +40 -33
- package/dist/completion.d.ts +4 -0
- package/dist/completion.js +257 -42
- package/dist/diagnostics.js +8 -6
- package/dist/diff-expansion.d.ts +9 -0
- package/dist/diff-expansion.js +41 -0
- package/dist/diff-overlays.d.ts +15 -0
- package/dist/diff-overlays.js +28 -0
- package/dist/diff-syntax.d.ts +16 -0
- package/dist/diff-syntax.js +49 -0
- package/dist/diff-wordmarks.d.ts +5 -0
- package/dist/diff-wordmarks.js +26 -0
- package/dist/doc-comment-model.d.ts +23 -0
- package/dist/doc-comment-model.js +291 -0
- package/dist/editor-language.d.ts +13 -1
- package/dist/editor-language.js +15 -5
- package/dist/editor-react.css +79 -0
- package/dist/format-on-type.d.ts +14 -0
- package/dist/format-on-type.js +96 -0
- package/dist/host-types.d.ts +19 -0
- package/dist/hover.d.ts +4 -0
- package/dist/hover.js +15 -2
- package/dist/index.d.ts +19 -5
- package/dist/index.js +9 -1
- package/dist/inlay-hints.d.ts +47 -2
- package/dist/inlay-hints.js +353 -16
- package/dist/language-ids.js +4 -2
- package/dist/locales/en.json +117 -3
- package/dist/locales/nl.json +117 -3
- package/dist/models.d.ts +6 -2
- package/dist/models.js +5 -1
- package/dist/panel-size.d.ts +6 -0
- package/dist/panel-size.js +25 -0
- package/dist/patch-decorations.d.ts +27 -0
- package/dist/patch-decorations.js +182 -0
- package/dist/patch-layout.d.ts +40 -0
- package/dist/patch-layout.js +304 -0
- package/dist/peek.d.ts +3 -1
- package/dist/peek.js +6 -1
- package/dist/pick.d.ts +1 -0
- package/dist/pick.js +11 -1
- package/dist/popups.d.ts +17 -0
- package/dist/popups.js +1 -0
- package/dist/project-language.d.ts +12 -0
- package/dist/project-language.js +52 -2
- package/dist/refresher.d.ts +1 -0
- package/dist/refresher.js +5 -0
- package/dist/rename-model.d.ts +1 -1
- package/dist/rename-model.js +3 -7
- package/dist/rename.js +5 -8
- package/dist/rendered-docs.d.ts +64 -0
- package/dist/rendered-docs.js +374 -0
- package/dist/row-host.d.ts +2 -0
- package/dist/row-host.js +11 -3
- package/dist/semantic-delta.d.ts +2 -0
- package/dist/semantic-delta.js +27 -0
- package/dist/semantic-model.js +16 -0
- package/dist/semantic-tokens.d.ts +26 -1
- package/dist/semantic-tokens.js +174 -14
- package/dist/shortcut-keys.d.ts +2 -0
- package/dist/shortcut-keys.js +6 -2
- package/dist/signature.js +1 -1
- package/dist/snippet-field-transforms.d.ts +30 -0
- package/dist/snippet-field-transforms.js +116 -0
- package/dist/snippet-indent.d.ts +2 -0
- package/dist/snippet-indent.js +49 -0
- package/dist/snippet-range-order.d.ts +3 -0
- package/dist/snippet-range-order.js +19 -0
- package/dist/snippet-session.d.ts +42 -6
- package/dist/snippet-session.js +650 -53
- package/dist/snippet-transform-client.d.ts +19 -0
- package/dist/snippet-transform-client.js +66 -0
- package/dist/snippet-transform-format.d.ts +15 -0
- package/dist/snippet-transform-format.js +302 -0
- package/dist/snippet-transform-protocol.d.ts +45 -0
- package/dist/snippet-transform-protocol.js +8 -0
- package/dist/snippet-transform-queue.d.ts +32 -0
- package/dist/snippet-transform-queue.js +173 -0
- package/dist/snippet-transform-worker.d.ts +10 -0
- package/dist/snippet-transform-worker.js +41 -0
- package/dist/snippet-variable-names.d.ts +1 -0
- package/dist/snippet-variable-names.js +36 -0
- package/dist/snippet-variables.d.ts +7 -0
- package/dist/snippet-variables.js +66 -0
- package/dist/snippet.d.ts +30 -3
- package/dist/snippet.js +402 -87
- package/dist/split-alignment.d.ts +6 -0
- package/dist/split-alignment.js +38 -0
- package/dist/split-scroll.d.ts +14 -0
- package/dist/split-scroll.js +45 -0
- package/dist/symbols.d.ts +2 -1
- package/dist/symbols.js +39 -7
- package/dist/testing.d.ts +5 -1
- package/dist/testing.js +12 -0
- package/dist/timers.d.ts +1 -0
- package/dist/timers.js +4 -0
- package/dist/use-panel-body.d.ts +6 -0
- package/dist/use-panel-body.js +13 -0
- package/dist/workspace-edit.d.ts +25 -3
- package/dist/workspace-edit.js +282 -143
- package/package.json +10 -5
- package/src/CallHierarchyPanel.tsx +244 -0
- package/src/CompletionPopup.tsx +12 -1
- package/src/DiffView.tsx +262 -0
- package/src/EditorContextMenu.tsx +1 -0
- package/src/EditorView.tsx +21 -2
- package/src/FindReplace.tsx +51 -13
- package/src/HoverCard.tsx +23 -21
- package/src/LanguagePopups.tsx +5 -0
- package/src/Markdown.tsx +10 -3
- package/src/PanelResizeHandle.tsx +104 -0
- package/src/PeekPanel.tsx +11 -6
- package/src/PickPopup.tsx +18 -2
- package/src/RenameCard.tsx +18 -0
- package/src/RenderedDocs.tsx +155 -0
- package/src/SplitDiffView.tsx +337 -0
- package/src/SymbolPicker.tsx +4 -3
- package/src/call-hierarchy-model.ts +151 -0
- package/src/call-hierarchy.ts +440 -0
- package/src/code-actions-model.ts +17 -11
- package/src/code-actions.ts +3 -1
- package/src/completion-model.ts +61 -35
- package/src/completion.ts +302 -42
- package/src/diagnostics.ts +8 -6
- package/src/diff-expansion.ts +49 -0
- package/src/diff-overlays.tsx +69 -0
- package/src/diff-syntax.ts +67 -0
- package/src/diff-wordmarks.ts +31 -0
- package/src/doc-comment-model.ts +336 -0
- package/src/editor-language.ts +22 -6
- package/src/editor-react.css +79 -0
- package/src/format-on-type.ts +111 -0
- package/src/host-types.ts +23 -0
- package/src/hover.ts +18 -3
- package/src/index.ts +27 -4
- package/src/inlay-hints.ts +394 -18
- package/src/language-ids.ts +4 -2
- package/src/locales/en.json +117 -3
- package/src/locales/nl.json +117 -3
- package/src/models.ts +40 -1
- package/src/panel-size.ts +28 -0
- package/src/patch-decorations.ts +224 -0
- package/src/patch-layout.ts +388 -0
- package/src/peek.ts +6 -1
- package/src/pick.ts +12 -1
- package/src/popups.ts +24 -0
- package/src/project-language.ts +63 -2
- package/src/refresher.ts +6 -0
- package/src/rename-model.ts +4 -8
- package/src/rename.ts +5 -8
- package/src/rendered-docs.ts +430 -0
- package/src/row-host.ts +12 -3
- package/src/semantic-delta.ts +29 -0
- package/src/semantic-model.ts +17 -0
- package/src/semantic-tokens.ts +202 -19
- package/src/shortcut-keys.ts +6 -2
- package/src/signature.ts +1 -1
- package/src/snippet-field-transforms.ts +144 -0
- package/src/snippet-indent.ts +53 -0
- package/src/snippet-range-order.ts +19 -0
- package/src/snippet-session.ts +797 -56
- package/src/snippet-transform-client.ts +84 -0
- package/src/snippet-transform-format.ts +325 -0
- package/src/snippet-transform-protocol.ts +24 -0
- package/src/snippet-transform-queue.ts +199 -0
- package/src/snippet-transform-worker.ts +58 -0
- package/src/snippet-variable-names.ts +36 -0
- package/src/snippet-variables.ts +74 -0
- package/src/snippet.ts +452 -89
- package/src/split-alignment.ts +45 -0
- package/src/split-scroll.ts +54 -0
- package/src/symbols.ts +43 -7
- package/src/testing.ts +25 -0
- package/src/timers.ts +5 -0
- package/src/use-panel-body.ts +17 -0
- package/src/workspace-edit.ts +347 -169
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const SNIPPET_VARIABLES: ReadonlySet<string> = new Set([
|
|
2
|
+
'TM_SELECTED_TEXT',
|
|
3
|
+
'TM_CURRENT_LINE',
|
|
4
|
+
'TM_CURRENT_WORD',
|
|
5
|
+
'TM_LINE_INDEX',
|
|
6
|
+
'TM_LINE_NUMBER',
|
|
7
|
+
'TM_FILENAME',
|
|
8
|
+
'TM_FILENAME_BASE',
|
|
9
|
+
'TM_DIRECTORY',
|
|
10
|
+
'TM_FILEPATH',
|
|
11
|
+
'RELATIVE_FILEPATH',
|
|
12
|
+
'WORKSPACE_NAME',
|
|
13
|
+
'WORKSPACE_FOLDER',
|
|
14
|
+
'CURSOR_INDEX',
|
|
15
|
+
'CURSOR_NUMBER',
|
|
16
|
+
'CLIPBOARD',
|
|
17
|
+
'CURRENT_YEAR',
|
|
18
|
+
'CURRENT_YEAR_SHORT',
|
|
19
|
+
'CURRENT_MONTH',
|
|
20
|
+
'CURRENT_MONTH_NAME',
|
|
21
|
+
'CURRENT_MONTH_NAME_SHORT',
|
|
22
|
+
'CURRENT_DATE',
|
|
23
|
+
'CURRENT_DAY_NAME',
|
|
24
|
+
'CURRENT_DAY_NAME_SHORT',
|
|
25
|
+
'CURRENT_HOUR',
|
|
26
|
+
'CURRENT_MINUTE',
|
|
27
|
+
'CURRENT_SECOND',
|
|
28
|
+
'CURRENT_SECONDS_UNIX',
|
|
29
|
+
'CURRENT_TIMEZONE_OFFSET',
|
|
30
|
+
'RANDOM',
|
|
31
|
+
'RANDOM_HEX',
|
|
32
|
+
'UUID',
|
|
33
|
+
'LINE_COMMENT',
|
|
34
|
+
'BLOCK_COMMENT_START',
|
|
35
|
+
'BLOCK_COMMENT_END'
|
|
36
|
+
]);
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { SnippetVariableContext } from './host-types.ts';
|
|
2
|
+
import type { SnippetVariableResolver } from './snippet.ts';
|
|
3
|
+
|
|
4
|
+
const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
5
|
+
const DAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
6
|
+
|
|
7
|
+
export function createSnippetResolver(
|
|
8
|
+
context: SnippetVariableContext,
|
|
9
|
+
custom?: (name: string, context: SnippetVariableContext) => string | undefined,
|
|
10
|
+
sources: { now?: Date; random?: () => number; uuid?: () => string } = {}
|
|
11
|
+
): SnippetVariableResolver {
|
|
12
|
+
const now = sources.now ?? new Date();
|
|
13
|
+
const random = sources.random ?? Math.random;
|
|
14
|
+
const path = context.path;
|
|
15
|
+
const filename = path?.replace(/\\/g, '/').split('/').at(-1);
|
|
16
|
+
const folder = context.folder?.replace(/\\/g, '/').replace(/\/$/, '');
|
|
17
|
+
const normalized = path?.replace(/\\/g, '/');
|
|
18
|
+
const pad = (value: number): string => String(value).padStart(2, '0');
|
|
19
|
+
const timezone = -now.getTimezoneOffset();
|
|
20
|
+
const values: Record<string, string | undefined> = {
|
|
21
|
+
TM_SELECTED_TEXT: context.selectedText,
|
|
22
|
+
TM_CURRENT_LINE: context.currentLine,
|
|
23
|
+
TM_CURRENT_WORD: context.currentWord,
|
|
24
|
+
TM_LINE_INDEX: String(context.position.line),
|
|
25
|
+
TM_LINE_NUMBER: String(context.position.line + 1),
|
|
26
|
+
CURSOR_INDEX: String(context.cursorIndex),
|
|
27
|
+
CURSOR_NUMBER: String(context.cursorIndex + 1),
|
|
28
|
+
TM_FILENAME: filename,
|
|
29
|
+
TM_FILENAME_BASE: filename === undefined ? undefined : filename.replace(/(?<=.)\.[^.]*$/, ''),
|
|
30
|
+
TM_DIRECTORY: normalized === undefined ? undefined : normalized.includes('/') ? normalized.slice(0, normalized.lastIndexOf('/')) : '',
|
|
31
|
+
TM_FILEPATH: path,
|
|
32
|
+
RELATIVE_FILEPATH: folder !== undefined && normalized?.startsWith(folder + '/') ? normalized.slice(folder.length + 1) : path,
|
|
33
|
+
WORKSPACE_FOLDER: context.folder,
|
|
34
|
+
WORKSPACE_NAME: folder?.split('/').at(-1),
|
|
35
|
+
CURRENT_YEAR: String(now.getFullYear()),
|
|
36
|
+
CURRENT_YEAR_SHORT: String(now.getFullYear()).slice(-2),
|
|
37
|
+
CURRENT_MONTH: pad(now.getMonth() + 1),
|
|
38
|
+
CURRENT_MONTH_NAME: MONTHS[now.getMonth()],
|
|
39
|
+
CURRENT_MONTH_NAME_SHORT: MONTHS[now.getMonth()]!.slice(0, 3),
|
|
40
|
+
CURRENT_DATE: pad(now.getDate()),
|
|
41
|
+
CURRENT_DAY_NAME: DAYS[now.getDay()],
|
|
42
|
+
CURRENT_DAY_NAME_SHORT: DAYS[now.getDay()]!.slice(0, 3),
|
|
43
|
+
CURRENT_HOUR: pad(now.getHours()),
|
|
44
|
+
CURRENT_MINUTE: pad(now.getMinutes()),
|
|
45
|
+
CURRENT_SECOND: pad(now.getSeconds()),
|
|
46
|
+
CURRENT_SECONDS_UNIX: String(Math.floor(now.getTime() / 1000)),
|
|
47
|
+
CURRENT_TIMEZONE_OFFSET: (timezone < 0 ? '-' : '+') + pad(Math.floor(Math.abs(timezone) / 60)) + pad(Math.abs(timezone) % 60)
|
|
48
|
+
};
|
|
49
|
+
const builtins = new Map(Object.entries(values));
|
|
50
|
+
const cache = new Map<string, string | undefined>();
|
|
51
|
+
return (name) => {
|
|
52
|
+
if (!cache.has(name)) {
|
|
53
|
+
let supplied: string | undefined;
|
|
54
|
+
try {
|
|
55
|
+
supplied = custom?.(name, context);
|
|
56
|
+
} catch {
|
|
57
|
+
// A failed host override leaves the built-in or editable variable available.
|
|
58
|
+
}
|
|
59
|
+
const value =
|
|
60
|
+
supplied ??
|
|
61
|
+
(name === 'RANDOM'
|
|
62
|
+
? String(Math.floor(random() * 1_000_000)).padStart(6, '0')
|
|
63
|
+
: name === 'RANDOM_HEX'
|
|
64
|
+
? Math.floor(random() * 0x1000000)
|
|
65
|
+
.toString(16)
|
|
66
|
+
.padStart(6, '0')
|
|
67
|
+
: name === 'UUID'
|
|
68
|
+
? (sources.uuid?.() ?? globalThis.crypto?.randomUUID())
|
|
69
|
+
: builtins.get(name));
|
|
70
|
+
cache.set(name, value);
|
|
71
|
+
}
|
|
72
|
+
return cache.get(name);
|
|
73
|
+
};
|
|
74
|
+
}
|