@lvce-editor/editor-worker 18.24.0 → 18.26.0
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/editorWorkerMain.js +158 -118
- package/package.json +1 -1
package/dist/editorWorkerMain.js
CHANGED
|
@@ -1537,12 +1537,12 @@ const launchColorPickerWorker = async () => {
|
|
|
1537
1537
|
return launchWorker(name, url);
|
|
1538
1538
|
};
|
|
1539
1539
|
|
|
1540
|
-
|
|
1540
|
+
const state$f = {};
|
|
1541
1541
|
const getOrCreate$3 = () => {
|
|
1542
|
-
if (!workerPromise
|
|
1543
|
-
workerPromise
|
|
1542
|
+
if (!state$f.workerPromise) {
|
|
1543
|
+
state$f.workerPromise = launchColorPickerWorker();
|
|
1544
1544
|
}
|
|
1545
|
-
return workerPromise
|
|
1545
|
+
return state$f.workerPromise;
|
|
1546
1546
|
};
|
|
1547
1547
|
const invoke$9 = async (method, ...params) => {
|
|
1548
1548
|
const worker = await getOrCreate$3();
|
|
@@ -1845,7 +1845,7 @@ const getInitialLineState = initialLineState => {
|
|
|
1845
1845
|
return deepCopy(initialLineState);
|
|
1846
1846
|
};
|
|
1847
1847
|
|
|
1848
|
-
const state$
|
|
1848
|
+
const state$e = {
|
|
1849
1849
|
warned: []
|
|
1850
1850
|
};
|
|
1851
1851
|
const flattenTokensArray = tokens => {
|
|
@@ -1857,10 +1857,10 @@ const flattenTokensArray = tokens => {
|
|
|
1857
1857
|
return flattened;
|
|
1858
1858
|
};
|
|
1859
1859
|
const warnDeprecatedArrayReturn = (languageId, fn) => {
|
|
1860
|
-
if (state$
|
|
1860
|
+
if (state$e.warned.includes(fn)) {
|
|
1861
1861
|
return;
|
|
1862
1862
|
}
|
|
1863
|
-
state$
|
|
1863
|
+
state$e.warned.push(fn);
|
|
1864
1864
|
console.warn(`tokenizers without hasArrayReturn=false are deprecated (language ${languageId})`);
|
|
1865
1865
|
};
|
|
1866
1866
|
const safeTokenizeLine = (languageId, tokenizeLine, line, lineStateAtStart, hasArrayReturn) => {
|
|
@@ -1921,12 +1921,14 @@ const TokenizePlainText = {
|
|
|
1921
1921
|
tokenizeLine
|
|
1922
1922
|
};
|
|
1923
1923
|
|
|
1924
|
-
|
|
1924
|
+
const state$d = {
|
|
1925
|
+
enabled: false
|
|
1926
|
+
};
|
|
1925
1927
|
const setEnabled$1 = value => {
|
|
1926
|
-
enabled
|
|
1928
|
+
state$d.enabled = value;
|
|
1927
1929
|
};
|
|
1928
1930
|
const getEnabled$1 = () => {
|
|
1929
|
-
return enabled
|
|
1931
|
+
return state$d.enabled;
|
|
1930
1932
|
};
|
|
1931
1933
|
|
|
1932
1934
|
const {
|
|
@@ -1934,21 +1936,35 @@ const {
|
|
|
1934
1936
|
set: set$5
|
|
1935
1937
|
} = SyntaxHighlightingWorker;
|
|
1936
1938
|
|
|
1937
|
-
const state$
|
|
1939
|
+
const state$c = {
|
|
1938
1940
|
pending: Object.create(null),
|
|
1941
|
+
tokenizePaths: Object.create(null),
|
|
1939
1942
|
tokenizers: Object.create(null)
|
|
1940
1943
|
};
|
|
1941
1944
|
const has = languageId => {
|
|
1942
|
-
return Object.hasOwn(state$
|
|
1945
|
+
return Object.hasOwn(state$c.tokenizers, languageId);
|
|
1943
1946
|
};
|
|
1944
1947
|
const set$4 = (languageId, tokenizer) => {
|
|
1945
|
-
state$
|
|
1948
|
+
state$c.tokenizers[languageId] = tokenizer;
|
|
1946
1949
|
};
|
|
1947
1950
|
const get$4 = languageId => {
|
|
1948
|
-
return state$
|
|
1951
|
+
return state$c.tokenizers[languageId];
|
|
1952
|
+
};
|
|
1953
|
+
const setTokenizePath = (languageId, tokenizePath) => {
|
|
1954
|
+
state$c.tokenizePaths[languageId] = tokenizePath;
|
|
1955
|
+
};
|
|
1956
|
+
const getTokenizePath$1 = languageId => {
|
|
1957
|
+
return state$c.tokenizePaths[languageId] || '';
|
|
1958
|
+
};
|
|
1959
|
+
const setTokenizePaths = languages => {
|
|
1960
|
+
for (const language of languages) {
|
|
1961
|
+
if (language && language.id && language.tokenize) {
|
|
1962
|
+
setTokenizePath(language.id, language.tokenize);
|
|
1963
|
+
}
|
|
1964
|
+
}
|
|
1949
1965
|
};
|
|
1950
1966
|
const isPending = languageId => {
|
|
1951
|
-
return Object.hasOwn(state$
|
|
1967
|
+
return Object.hasOwn(state$c.pending, languageId);
|
|
1952
1968
|
};
|
|
1953
1969
|
|
|
1954
1970
|
const tokenMaps = Object.create(null);
|
|
@@ -1964,6 +1980,7 @@ const loadTokenizer = async (languageId, tokenizePath) => {
|
|
|
1964
1980
|
if (!tokenizePath) {
|
|
1965
1981
|
return;
|
|
1966
1982
|
}
|
|
1983
|
+
setTokenizePath(languageId, tokenizePath);
|
|
1967
1984
|
if (getEnabled$1()) {
|
|
1968
1985
|
// @ts-ignore
|
|
1969
1986
|
const tokenMap = await invoke$8('Tokenizer.load', languageId, tokenizePath);
|
|
@@ -2008,10 +2025,37 @@ const get$2 = id => {
|
|
|
2008
2025
|
return tokenizers[id] || TokenizePlainText;
|
|
2009
2026
|
};
|
|
2010
2027
|
|
|
2028
|
+
const getEmbeddedTokenization = (langageId, line, embeddedLanguage, embeddedLanguageStart, embeddedLanguageEnd, topContexts, tokenizersToLoad) => {
|
|
2029
|
+
const embeddedTokenizer = getTokenizer(embeddedLanguage);
|
|
2030
|
+
if (embeddedLanguageStart !== line.length && embeddedTokenizer && embeddedTokenizer !== TokenizePlainText) {
|
|
2031
|
+
const isFull = embeddedLanguageStart === 0 && embeddedLanguageEnd === line.length;
|
|
2032
|
+
const partialLine = line.slice(embeddedLanguageStart, embeddedLanguageEnd);
|
|
2033
|
+
const embedResult = safeTokenizeLine(langageId, embeddedTokenizer.tokenizeLine, partialLine, topContexts[embeddedLanguage] || getInitialLineState(embeddedTokenizer.initialLineState), embeddedTokenizer.hasArrayReturn);
|
|
2034
|
+
topContexts[embeddedLanguage] = embedResult;
|
|
2035
|
+
if (embedResult.embeddedLanguage) {
|
|
2036
|
+
const nested = getEmbeddedTokenization(langageId, partialLine, embedResult.embeddedLanguage, embedResult.embeddedLanguageStart, embedResult.embeddedLanguageEnd, topContexts, tokenizersToLoad);
|
|
2037
|
+
if (nested?.isFull) {
|
|
2038
|
+
return nested;
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
return {
|
|
2042
|
+
isFull,
|
|
2043
|
+
result: embedResult,
|
|
2044
|
+
TokenMap: embeddedTokenizer.TokenMap
|
|
2045
|
+
};
|
|
2046
|
+
}
|
|
2047
|
+
tokenizersToLoad.push(embeddedLanguage);
|
|
2048
|
+
topContexts[embeddedLanguage] = undefined;
|
|
2049
|
+
return {
|
|
2050
|
+
isFull: false,
|
|
2051
|
+
result: {},
|
|
2052
|
+
TokenMap: []
|
|
2053
|
+
};
|
|
2054
|
+
};
|
|
2011
2055
|
const getTokensViewportEmbedded = (langageId, lines, lineCache, linesWithEmbed) => {
|
|
2012
2056
|
const tokenizersToLoad = [];
|
|
2013
2057
|
const embeddedResults = [];
|
|
2014
|
-
|
|
2058
|
+
const topContexts = Object.create(null);
|
|
2015
2059
|
for (const index of linesWithEmbed) {
|
|
2016
2060
|
const result = lineCache[index + 1];
|
|
2017
2061
|
const line = lines[index];
|
|
@@ -2021,19 +2065,7 @@ const getTokensViewportEmbedded = (langageId, lines, lineCache, linesWithEmbed)
|
|
|
2021
2065
|
embeddedLanguageEnd,
|
|
2022
2066
|
embeddedLanguageStart
|
|
2023
2067
|
} = result;
|
|
2024
|
-
|
|
2025
|
-
if (embeddedLanguageStart !== line.length && embeddedTokenizer && embeddedTokenizer !== TokenizePlainText) {
|
|
2026
|
-
const isFull = embeddedLanguageStart === 0 && embeddedLanguageEnd === line.length;
|
|
2027
|
-
const partialLine = line.slice(embeddedLanguageStart, embeddedLanguageEnd);
|
|
2028
|
-
const embedResult = safeTokenizeLine(langageId, embeddedTokenizer.tokenizeLine, partialLine, topContext || getInitialLineState(embeddedTokenizer.initialLineState), embeddedTokenizer.hasArrayReturn);
|
|
2029
|
-
topContext = embedResult;
|
|
2030
|
-
result.embeddedResultIndex = embeddedResults.length;
|
|
2031
|
-
embeddedResults.push({
|
|
2032
|
-
isFull,
|
|
2033
|
-
result: embedResult,
|
|
2034
|
-
TokenMap: embeddedTokenizer.TokenMap
|
|
2035
|
-
});
|
|
2036
|
-
} else if (line.length === 0) {
|
|
2068
|
+
if (line.length === 0) {
|
|
2037
2069
|
const embedResult = {
|
|
2038
2070
|
tokens: []
|
|
2039
2071
|
};
|
|
@@ -2044,16 +2076,13 @@ const getTokensViewportEmbedded = (langageId, lines, lineCache, linesWithEmbed)
|
|
|
2044
2076
|
TokenMap: []
|
|
2045
2077
|
});
|
|
2046
2078
|
} else {
|
|
2047
|
-
|
|
2048
|
-
embeddedResults.push(
|
|
2049
|
-
isFull: false,
|
|
2050
|
-
result: {},
|
|
2051
|
-
TokenMap: []
|
|
2052
|
-
});
|
|
2053
|
-
topContext = undefined;
|
|
2079
|
+
result.embeddedResultIndex = embeddedResults.length;
|
|
2080
|
+
embeddedResults.push(getEmbeddedTokenization(langageId, line, embeddedLanguage, embeddedLanguageStart, embeddedLanguageEnd, topContexts, tokenizersToLoad));
|
|
2054
2081
|
}
|
|
2055
2082
|
} else {
|
|
2056
|
-
|
|
2083
|
+
for (const embeddedLanguage of Object.keys(topContexts)) {
|
|
2084
|
+
topContexts[embeddedLanguage] = undefined;
|
|
2085
|
+
}
|
|
2057
2086
|
}
|
|
2058
2087
|
}
|
|
2059
2088
|
return {
|
|
@@ -2155,8 +2184,8 @@ const getTokensViewport2 = async (editor, startLineIndex, endLineIndex, syncIncr
|
|
|
2155
2184
|
|
|
2156
2185
|
const loadTokenizers = async languageIds => {
|
|
2157
2186
|
for (const languageId of languageIds) {
|
|
2158
|
-
|
|
2159
|
-
await loadTokenizer(languageId);
|
|
2187
|
+
const tokenizePath = getTokenizePath$1(languageId);
|
|
2188
|
+
await loadTokenizer(languageId, tokenizePath);
|
|
2160
2189
|
}
|
|
2161
2190
|
};
|
|
2162
2191
|
|
|
@@ -2360,6 +2389,8 @@ const positionAt = (textDocument, offset) => {
|
|
|
2360
2389
|
};
|
|
2361
2390
|
};
|
|
2362
2391
|
|
|
2392
|
+
const maxTokenizerLoadPasses = 10;
|
|
2393
|
+
|
|
2363
2394
|
// const getTokensIncremental = (editor, min, max) => {
|
|
2364
2395
|
// const currentLength = editor.lineStateCache.length
|
|
2365
2396
|
// const tokens = []
|
|
@@ -2706,20 +2737,27 @@ const getVisible$1 = async (editor, syncIncremental) => {
|
|
|
2706
2737
|
} = editor;
|
|
2707
2738
|
const maxLineY = Math.min(minLineY + numberOfVisibleLines, lines.length);
|
|
2708
2739
|
// @ts-ignore
|
|
2709
|
-
|
|
2740
|
+
let {
|
|
2710
2741
|
embeddedResults,
|
|
2711
2742
|
tokenizersToLoad,
|
|
2712
2743
|
tokens
|
|
2713
2744
|
} = await getTokensViewport2(editor, minLineY, maxLineY, syncIncremental);
|
|
2745
|
+
for (let i = 0; tokenizersToLoad.length > 0 && i < maxTokenizerLoadPasses; i++) {
|
|
2746
|
+
await loadTokenizers(tokenizersToLoad);
|
|
2747
|
+
// @ts-ignore
|
|
2748
|
+
const refreshed = await getTokensViewport2(editor, minLineY, maxLineY, syncIncremental);
|
|
2749
|
+
({
|
|
2750
|
+
embeddedResults,
|
|
2751
|
+
tokenizersToLoad,
|
|
2752
|
+
tokens
|
|
2753
|
+
} = refreshed);
|
|
2754
|
+
}
|
|
2714
2755
|
const minLineOffset = await offsetAtSync(editor, minLineY, 0);
|
|
2715
2756
|
const averageCharWidth = charWidth;
|
|
2716
2757
|
const {
|
|
2717
2758
|
differences,
|
|
2718
2759
|
result
|
|
2719
2760
|
} = getLineInfosViewport(editor, tokens, embeddedResults, minLineY, maxLineY, minLineOffset, width, deltaX, averageCharWidth);
|
|
2720
|
-
if (tokenizersToLoad.length > 0) {
|
|
2721
|
-
loadTokenizers(tokenizersToLoad);
|
|
2722
|
-
}
|
|
2723
2761
|
return {
|
|
2724
2762
|
differences,
|
|
2725
2763
|
textInfos: result
|
|
@@ -2772,12 +2810,14 @@ const getNewDeltaPercent = (height, scrollBarHeight, relativeY) => {
|
|
|
2772
2810
|
};
|
|
2773
2811
|
};
|
|
2774
2812
|
|
|
2775
|
-
|
|
2813
|
+
const state$b = {
|
|
2814
|
+
enabled: false
|
|
2815
|
+
};
|
|
2776
2816
|
const setEnabled = value => {
|
|
2777
|
-
enabled = value;
|
|
2817
|
+
state$b.enabled = value;
|
|
2778
2818
|
};
|
|
2779
2819
|
const getEnabled = () => {
|
|
2780
|
-
return enabled;
|
|
2820
|
+
return state$b.enabled;
|
|
2781
2821
|
};
|
|
2782
2822
|
|
|
2783
2823
|
// TODO this should be in a separate scrolling module
|
|
@@ -2957,7 +2997,7 @@ const getUrlAtOffset = (editor, offset) => {
|
|
|
2957
2997
|
|
|
2958
2998
|
const EditorChange = 1;
|
|
2959
2999
|
|
|
2960
|
-
const state$
|
|
3000
|
+
const state$a = Object.create(null);
|
|
2961
3001
|
|
|
2962
3002
|
/**
|
|
2963
3003
|
* Register a listener for a specific event type
|
|
@@ -2967,13 +3007,13 @@ const state$6 = Object.create(null);
|
|
|
2967
3007
|
const registerListener$1 = (listenerType, rpcId) => {
|
|
2968
3008
|
number(listenerType);
|
|
2969
3009
|
number(rpcId);
|
|
2970
|
-
if (!Object.hasOwn(state$
|
|
2971
|
-
state$
|
|
3010
|
+
if (!Object.hasOwn(state$a, listenerType)) {
|
|
3011
|
+
state$a[listenerType] = [];
|
|
2972
3012
|
}
|
|
2973
3013
|
|
|
2974
3014
|
// Avoid duplicate registrations
|
|
2975
|
-
if (!state$
|
|
2976
|
-
state$
|
|
3015
|
+
if (!state$a[listenerType].includes(rpcId)) {
|
|
3016
|
+
state$a[listenerType].push(rpcId);
|
|
2977
3017
|
}
|
|
2978
3018
|
};
|
|
2979
3019
|
|
|
@@ -2985,10 +3025,10 @@ const registerListener$1 = (listenerType, rpcId) => {
|
|
|
2985
3025
|
const unregisterListener$1 = (listenerType, rpcId) => {
|
|
2986
3026
|
number(listenerType);
|
|
2987
3027
|
number(rpcId);
|
|
2988
|
-
if (Object.hasOwn(state$
|
|
2989
|
-
const index = state$
|
|
3028
|
+
if (Object.hasOwn(state$a, listenerType)) {
|
|
3029
|
+
const index = state$a[listenerType].indexOf(rpcId);
|
|
2990
3030
|
if (index !== -1) {
|
|
2991
|
-
state$
|
|
3031
|
+
state$a[listenerType].splice(index, 1);
|
|
2992
3032
|
}
|
|
2993
3033
|
}
|
|
2994
3034
|
};
|
|
@@ -3000,7 +3040,7 @@ const unregisterListener$1 = (listenerType, rpcId) => {
|
|
|
3000
3040
|
*/
|
|
3001
3041
|
const getListeners = listenerType => {
|
|
3002
3042
|
number(listenerType);
|
|
3003
|
-
return state$
|
|
3043
|
+
return state$a[listenerType] || [];
|
|
3004
3044
|
};
|
|
3005
3045
|
|
|
3006
3046
|
/**
|
|
@@ -3228,16 +3268,6 @@ const from = (array, getSelection) => {
|
|
|
3228
3268
|
}
|
|
3229
3269
|
return newSelections;
|
|
3230
3270
|
};
|
|
3231
|
-
const push = (selections, startRowIndex, startColumnIndex, endRowIndex, endColumnIndex) => {
|
|
3232
|
-
const oldLength = selections.length;
|
|
3233
|
-
const newSelections = alloc(oldLength + 4);
|
|
3234
|
-
newSelections.set(selections);
|
|
3235
|
-
newSelections[oldLength + 1] = startRowIndex;
|
|
3236
|
-
newSelections[oldLength + 2] = startColumnIndex;
|
|
3237
|
-
newSelections[oldLength + 3] = endRowIndex;
|
|
3238
|
-
newSelections[oldLength + 4] = endColumnIndex;
|
|
3239
|
-
return newSelections;
|
|
3240
|
-
};
|
|
3241
3271
|
|
|
3242
3272
|
// TODO maybe only accept sorted selection edits in the first place
|
|
3243
3273
|
|
|
@@ -4488,7 +4518,7 @@ const y = (editor, rowIndex) => {
|
|
|
4488
4518
|
return offsetY;
|
|
4489
4519
|
};
|
|
4490
4520
|
|
|
4491
|
-
const state$
|
|
4521
|
+
const state$9 = {
|
|
4492
4522
|
timeout: -1
|
|
4493
4523
|
};
|
|
4494
4524
|
|
|
@@ -4519,7 +4549,7 @@ const editorShowMessage = async (editor, rowIndex, columnIndex, message, isError
|
|
|
4519
4549
|
|
|
4520
4550
|
// TODO use wrapper timing module instead of this
|
|
4521
4551
|
// @ts-ignore
|
|
4522
|
-
state$
|
|
4552
|
+
state$9.timeout = setTimeout(handleTimeout, 3000);
|
|
4523
4553
|
}
|
|
4524
4554
|
return editor;
|
|
4525
4555
|
};
|
|
@@ -4539,8 +4569,8 @@ const showErrorMessage = async (editor, rowIndex, columnIndex, message) => {
|
|
|
4539
4569
|
|
|
4540
4570
|
// @ts-ignore
|
|
4541
4571
|
const editorHideMessage = async editor => {
|
|
4542
|
-
clearTimeout(state$
|
|
4543
|
-
state$
|
|
4572
|
+
clearTimeout(state$9.timeout);
|
|
4573
|
+
state$9.timeout = -1;
|
|
4544
4574
|
// await RendererProcess.invoke(/* Viewlet.send */ 'Viewlet.send', /* id */ editor.uid, /* method */ 'hideOverlayMessage')
|
|
4545
4575
|
return editor;
|
|
4546
4576
|
};
|
|
@@ -4656,12 +4686,12 @@ const launchRenameWorker = async () => {
|
|
|
4656
4686
|
return rpc;
|
|
4657
4687
|
};
|
|
4658
4688
|
|
|
4659
|
-
|
|
4689
|
+
const state$8 = {};
|
|
4660
4690
|
const getOrCreate$2 = () => {
|
|
4661
|
-
if (!workerPromise
|
|
4662
|
-
workerPromise
|
|
4691
|
+
if (!state$8.workerPromise) {
|
|
4692
|
+
state$8.workerPromise = launchRenameWorker();
|
|
4663
4693
|
}
|
|
4664
|
-
return workerPromise
|
|
4694
|
+
return state$8.workerPromise;
|
|
4665
4695
|
};
|
|
4666
4696
|
const invoke$5 = async (method, ...params) => {
|
|
4667
4697
|
const worker = await getOrCreate$2();
|
|
@@ -4781,12 +4811,12 @@ const openColorPicker = async editor => {
|
|
|
4781
4811
|
return addWidgetToEditor(ColorPicker$1, ColorPicker, editor, create$6, newStateGenerator$6);
|
|
4782
4812
|
};
|
|
4783
4813
|
|
|
4784
|
-
const state$
|
|
4814
|
+
const state$7 = {
|
|
4785
4815
|
compositionText: '',
|
|
4786
4816
|
isComposing: false
|
|
4787
4817
|
};
|
|
4788
4818
|
const compositionStart = (editor, event) => {
|
|
4789
|
-
state$
|
|
4819
|
+
state$7.isComposing = true;
|
|
4790
4820
|
return editor;
|
|
4791
4821
|
};
|
|
4792
4822
|
const getCompositionChanges = (selections, data) => {
|
|
@@ -4796,9 +4826,9 @@ const getCompositionChanges = (selections, data) => {
|
|
|
4796
4826
|
const selectionStartColumn = selections[i + 1];
|
|
4797
4827
|
const selectionEndRow = selections[i + 2];
|
|
4798
4828
|
const selectionEndColumn = selections[i + 3];
|
|
4799
|
-
const startColumnIndex = selectionStartColumn - state$
|
|
4829
|
+
const startColumnIndex = selectionStartColumn - state$7.compositionText.length;
|
|
4800
4830
|
changes.push({
|
|
4801
|
-
deleted: [state$
|
|
4831
|
+
deleted: [state$7.compositionText],
|
|
4802
4832
|
end: {
|
|
4803
4833
|
columnIndex: selectionEndColumn,
|
|
4804
4834
|
rowIndex: selectionEndRow
|
|
@@ -4818,7 +4848,7 @@ const compositionUpdate = (editor, data) => {
|
|
|
4818
4848
|
selections
|
|
4819
4849
|
} = editor;
|
|
4820
4850
|
const changes = getCompositionChanges(selections, data);
|
|
4821
|
-
state$
|
|
4851
|
+
state$7.compositionText = data;
|
|
4822
4852
|
return scheduleDocumentAndCursorsSelections(editor, changes);
|
|
4823
4853
|
};
|
|
4824
4854
|
const compositionEnd = (editor, data) => {
|
|
@@ -4826,8 +4856,8 @@ const compositionEnd = (editor, data) => {
|
|
|
4826
4856
|
selections
|
|
4827
4857
|
} = editor;
|
|
4828
4858
|
const changes = getCompositionChanges(selections, data);
|
|
4829
|
-
state$
|
|
4830
|
-
state$
|
|
4859
|
+
state$7.isComposing = false;
|
|
4860
|
+
state$7.compositionText = '';
|
|
4831
4861
|
return scheduleDocumentAndCursorsSelections(editor, changes);
|
|
4832
4862
|
};
|
|
4833
4863
|
|
|
@@ -5903,19 +5933,19 @@ const closeWidgetsMaybe = widgets => {
|
|
|
5903
5933
|
return widgets.filter(isPersistentWidget);
|
|
5904
5934
|
};
|
|
5905
5935
|
|
|
5906
|
-
const state$
|
|
5936
|
+
const state$6 = {
|
|
5907
5937
|
position: {
|
|
5908
5938
|
columnIndex: 0,
|
|
5909
5939
|
rowIndex: 0
|
|
5910
5940
|
}
|
|
5911
5941
|
};
|
|
5912
5942
|
const getPosition$1 = () => {
|
|
5913
|
-
return state$
|
|
5943
|
+
return state$6.position;
|
|
5914
5944
|
};
|
|
5915
5945
|
|
|
5916
5946
|
// @ts-ignore
|
|
5917
5947
|
const setPosition$1 = position => {
|
|
5918
|
-
state$
|
|
5948
|
+
state$6.position = position;
|
|
5919
5949
|
};
|
|
5920
5950
|
|
|
5921
5951
|
const openExternal = async (url, platform) => {
|
|
@@ -6133,20 +6163,20 @@ const handleMouseDown = (state, button, altKey, ctrlKey, x, y, detail) => {
|
|
|
6133
6163
|
}
|
|
6134
6164
|
};
|
|
6135
6165
|
|
|
6136
|
-
const state$
|
|
6166
|
+
const state$5 = {
|
|
6137
6167
|
editor: undefined,
|
|
6138
6168
|
timeout: -1,
|
|
6139
6169
|
x: 0,
|
|
6140
6170
|
y: 0
|
|
6141
6171
|
};
|
|
6142
6172
|
const get = () => {
|
|
6143
|
-
return state$
|
|
6173
|
+
return state$5;
|
|
6144
6174
|
};
|
|
6145
6175
|
const set = (editor, timeout, x, y) => {
|
|
6146
|
-
state$
|
|
6147
|
-
state$
|
|
6148
|
-
state$
|
|
6149
|
-
state$
|
|
6176
|
+
state$5.editor = editor;
|
|
6177
|
+
state$5.timeout = timeout;
|
|
6178
|
+
state$5.x = x;
|
|
6179
|
+
state$5.y = y;
|
|
6150
6180
|
};
|
|
6151
6181
|
|
|
6152
6182
|
const showHover$1 = async (editor, position) => {
|
|
@@ -6287,7 +6317,7 @@ const editorHandleNativeSelectionChange = (editor, range) => {
|
|
|
6287
6317
|
return scheduleSelections(editor, selections);
|
|
6288
6318
|
};
|
|
6289
6319
|
|
|
6290
|
-
const state$
|
|
6320
|
+
const state$4 = {
|
|
6291
6321
|
/**
|
|
6292
6322
|
* @type {any}
|
|
6293
6323
|
*/
|
|
@@ -6302,33 +6332,33 @@ const state$1 = {
|
|
|
6302
6332
|
|
|
6303
6333
|
// @ts-ignore
|
|
6304
6334
|
const setEditor = editor => {
|
|
6305
|
-
state$
|
|
6306
|
-
state$
|
|
6335
|
+
state$4.currentEditor = editor;
|
|
6336
|
+
state$4.hasListener = true;
|
|
6307
6337
|
};
|
|
6308
6338
|
const clearEditor = () => {
|
|
6309
|
-
state$
|
|
6310
|
-
state$
|
|
6311
|
-
state$
|
|
6339
|
+
state$4.currentEditor = undefined;
|
|
6340
|
+
state$4.hasListener = false;
|
|
6341
|
+
state$4.isSelecting = false;
|
|
6312
6342
|
};
|
|
6313
6343
|
const startSelecting = () => {
|
|
6314
|
-
state$
|
|
6344
|
+
state$4.isSelecting = true;
|
|
6315
6345
|
};
|
|
6316
6346
|
const isSelecting = () => {
|
|
6317
|
-
return state$
|
|
6347
|
+
return state$4.isSelecting;
|
|
6318
6348
|
};
|
|
6319
6349
|
|
|
6320
6350
|
// @ts-ignore
|
|
6321
6351
|
const setPosition = position => {
|
|
6322
|
-
state$
|
|
6352
|
+
state$4.position = position;
|
|
6323
6353
|
};
|
|
6324
6354
|
const getEditor$1 = () => {
|
|
6325
|
-
return state$
|
|
6355
|
+
return state$4.currentEditor;
|
|
6326
6356
|
};
|
|
6327
6357
|
const getPosition = () => {
|
|
6328
|
-
return state$
|
|
6358
|
+
return state$4.position;
|
|
6329
6359
|
};
|
|
6330
6360
|
const hasListener = () => {
|
|
6331
|
-
return state$
|
|
6361
|
+
return state$4.hasListener;
|
|
6332
6362
|
};
|
|
6333
6363
|
|
|
6334
6364
|
// @ts-ignore
|
|
@@ -6708,7 +6738,7 @@ const handleTouchEnd = (editor, touchEvent) => {
|
|
|
6708
6738
|
// }
|
|
6709
6739
|
};
|
|
6710
6740
|
|
|
6711
|
-
const state = {
|
|
6741
|
+
const state$3 = {
|
|
6712
6742
|
deltaY: 0,
|
|
6713
6743
|
touchOffsetY: 0
|
|
6714
6744
|
};
|
|
@@ -6719,8 +6749,8 @@ const handleTouchStart = (editor, touchEvent) => {
|
|
|
6719
6749
|
return;
|
|
6720
6750
|
}
|
|
6721
6751
|
const firstTouch = touchEvent.touches[0];
|
|
6722
|
-
state.touchOffsetY = firstTouch.y;
|
|
6723
|
-
state.deltaY = editor.deltaY;
|
|
6752
|
+
state$3.touchOffsetY = firstTouch.y;
|
|
6753
|
+
state$3.deltaY = editor.deltaY;
|
|
6724
6754
|
// const position = EditorPosition.at(editor, firstTouch.x, firstTouch.y)
|
|
6725
6755
|
// EditorMoveSelection.state.position = position
|
|
6726
6756
|
// state.date = Date.now()
|
|
@@ -6761,7 +6791,7 @@ const handleTouchMove = (editor, touchEvent) => {
|
|
|
6761
6791
|
return;
|
|
6762
6792
|
}
|
|
6763
6793
|
const firstTouch = touchEvent.touches[0];
|
|
6764
|
-
const offsetY = state.deltaY + (state.touchOffsetY - firstTouch.y);
|
|
6794
|
+
const offsetY = state$3.deltaY + (state$3.touchOffsetY - firstTouch.y);
|
|
6765
6795
|
setDeltaYFixedValue(editor, offsetY);
|
|
6766
6796
|
};
|
|
6767
6797
|
|
|
@@ -7783,7 +7813,13 @@ const getSelectionEditsSingleLineWord = (lines, selections) => {
|
|
|
7783
7813
|
const columnIndexAfter = line.indexOf(word, lastSelectionEndColumnIndex);
|
|
7784
7814
|
if (columnIndexAfter !== -1) {
|
|
7785
7815
|
const columnIndexAfterEnd = columnIndexAfter + word.length;
|
|
7786
|
-
const newSelections =
|
|
7816
|
+
const newSelections = new Uint32Array(selections.length + 4);
|
|
7817
|
+
newSelections.set(selections, 0);
|
|
7818
|
+
const insertIndex = selections.length;
|
|
7819
|
+
newSelections[insertIndex] = rowIndex;
|
|
7820
|
+
newSelections[insertIndex + 1] = columnIndexAfter;
|
|
7821
|
+
newSelections[insertIndex + 2] = rowIndex;
|
|
7822
|
+
newSelections[insertIndex + 3] = columnIndexAfterEnd;
|
|
7787
7823
|
return {
|
|
7788
7824
|
revealRange: newSelections.length - 4,
|
|
7789
7825
|
selectionEdits: newSelections
|
|
@@ -7988,6 +8024,7 @@ const setLanguageId = async (editor, languageId, tokenizePath) => {
|
|
|
7988
8024
|
const {
|
|
7989
8025
|
tokenizerId
|
|
7990
8026
|
} = editor;
|
|
8027
|
+
setTokenizePath(languageId, tokenizePath);
|
|
7991
8028
|
// TODO move tokenizer to syntax highlighting worker
|
|
7992
8029
|
// TODO only load tokenizer if not already loaded
|
|
7993
8030
|
// if already loaded just set tokenizer and rerender text
|
|
@@ -8128,12 +8165,12 @@ const launchHoverWorker = async () => {
|
|
|
8128
8165
|
return rpc;
|
|
8129
8166
|
};
|
|
8130
8167
|
|
|
8131
|
-
|
|
8168
|
+
const state$2 = {};
|
|
8132
8169
|
const getOrCreate$1 = () => {
|
|
8133
|
-
if (!workerPromise
|
|
8134
|
-
workerPromise
|
|
8170
|
+
if (!state$2.workerPromise) {
|
|
8171
|
+
state$2.workerPromise = launchHoverWorker();
|
|
8135
8172
|
}
|
|
8136
|
-
return workerPromise
|
|
8173
|
+
return state$2.workerPromise;
|
|
8137
8174
|
};
|
|
8138
8175
|
const invoke$2 = async (method, ...params) => {
|
|
8139
8176
|
const worker = await getOrCreate$1();
|
|
@@ -8212,12 +8249,12 @@ const launchSourceActionWorker = async () => {
|
|
|
8212
8249
|
return rpc;
|
|
8213
8250
|
};
|
|
8214
8251
|
|
|
8215
|
-
|
|
8252
|
+
const state$1 = {};
|
|
8216
8253
|
const getOrCreate = () => {
|
|
8217
|
-
if (!workerPromise) {
|
|
8218
|
-
workerPromise = launchSourceActionWorker();
|
|
8254
|
+
if (!state$1.workerPromise) {
|
|
8255
|
+
state$1.workerPromise = launchSourceActionWorker();
|
|
8219
8256
|
}
|
|
8220
|
-
return workerPromise;
|
|
8257
|
+
return state$1.workerPromise;
|
|
8221
8258
|
};
|
|
8222
8259
|
const invoke$1 = async (method, ...params) => {
|
|
8223
8260
|
const worker = await getOrCreate();
|
|
@@ -10704,12 +10741,14 @@ const restoreWidgetState = async (keys, savedStates) => {
|
|
|
10704
10741
|
return newEditors;
|
|
10705
10742
|
};
|
|
10706
10743
|
|
|
10707
|
-
|
|
10744
|
+
const state = {
|
|
10745
|
+
isReloading: false
|
|
10746
|
+
};
|
|
10708
10747
|
const hotReload = async () => {
|
|
10709
|
-
if (isReloading) {
|
|
10748
|
+
if (state.isReloading) {
|
|
10710
10749
|
return;
|
|
10711
10750
|
}
|
|
10712
|
-
isReloading = true;
|
|
10751
|
+
state.isReloading = true;
|
|
10713
10752
|
|
|
10714
10753
|
// TODO use getEditors
|
|
10715
10754
|
const keys = getKeys$2();
|
|
@@ -10723,7 +10762,7 @@ const hotReload = async () => {
|
|
|
10723
10762
|
// TODO ask renderer worker to rerender all editors
|
|
10724
10763
|
// @ts-ignore
|
|
10725
10764
|
await invoke$b(`Editor.rerender`);
|
|
10726
|
-
isReloading = false;
|
|
10765
|
+
state.isReloading = false;
|
|
10727
10766
|
};
|
|
10728
10767
|
|
|
10729
10768
|
const sendMessagePortToSyntaxHighlightingWorker = async port => {
|
|
@@ -10883,6 +10922,7 @@ const loadContent = async (state, savedState) => {
|
|
|
10883
10922
|
// TODO support overwriting language id by setting it explicitly or via settings
|
|
10884
10923
|
const charWidth = await measureCharacterWidth(fontWeight, fontSize, fontFamily, letterSpacing);
|
|
10885
10924
|
const languages = await getLanguages(platform, assetDir);
|
|
10925
|
+
setTokenizePaths(languages);
|
|
10886
10926
|
const computedLanguageId = getLanguageId$1(uri, languages);
|
|
10887
10927
|
const tokenizePath = getTokenizePath(languages, computedLanguageId);
|
|
10888
10928
|
await loadTokenizer(computedLanguageId, tokenizePath);
|