@lvce-editor/shared-process 0.7.11 → 0.8.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/config/defaultSettings.json +2 -0
- package/extensions/builtin.language-basics-elm/src/tokenizeElm.js +276 -6
- package/extensions/builtin.theme-atom-one-dark/README.md +10 -0
- package/extensions/builtin.theme-atom-one-dark/color-theme.json +154 -0
- package/extensions/builtin.theme-atom-one-dark/extension.json +12 -0
- package/extensions/builtin.theme-ayu/README.md +10 -0
- package/extensions/builtin.theme-ayu/color-theme.json +174 -0
- package/extensions/builtin.theme-ayu/extension.json +12 -0
- package/extensions/builtin.theme-cobalt2/README.md +18 -0
- package/extensions/builtin.theme-cobalt2/color-theme.json +135 -0
- package/extensions/builtin.theme-cobalt2/extension.json +12 -0
- package/extensions/builtin.theme-high-contrast/README.md +9 -0
- package/extensions/builtin.theme-high-contrast/color-theme.json +86 -0
- package/extensions/builtin.theme-high-contrast/extension.json +11 -0
- package/extensions/builtin.theme-monokai/README.md +10 -0
- package/extensions/builtin.theme-monokai/color-theme.json +121 -0
- package/extensions/builtin.theme-monokai/extension.json +11 -0
- package/extensions/builtin.theme-palenight/README.md +10 -0
- package/extensions/builtin.theme-palenight/color-theme.json +161 -0
- package/extensions/builtin.theme-palenight/extension.json +12 -0
- package/extensions/builtin.theme-slime/README.md +1 -1
- package/package.json +3 -3
- package/src/parts/ExtensionManagement/ExtensionManagement.ipc.js +1 -0
- package/src/parts/ExtensionManagement/ExtensionManagementColorTheme.js +38 -12
- package/src/parts/FileSystemWatch/FileSystemWatch.js +6 -0
- package/src/parts/ModuleMap/ModuleMap.js +1 -0
- package/src/parts/RequiresSocket/RequiresSocket.js +1 -0
|
@@ -3,11 +3,12 @@ import * as Error from '../Error/Error.js'
|
|
|
3
3
|
import * as ReadJson from '../JsonFile/JsonFile.js'
|
|
4
4
|
import * as Path from '../Path/Path.js'
|
|
5
5
|
import * as ExtensionManagement from './ExtensionManagement.js'
|
|
6
|
+
import * as FileSystemWatch from '../FileSystemWatch/FileSystemWatch.js'
|
|
6
7
|
|
|
7
8
|
// TODO test this function
|
|
8
9
|
// TODO very similar with getIconTheme
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
const getColorThemePath = async (extensions, colorThemeId) => {
|
|
11
12
|
for (const extension of extensions) {
|
|
12
13
|
if (!extension.colorThemes) {
|
|
13
14
|
continue
|
|
@@ -17,18 +18,27 @@ export const getColorThemeJson = async (colorThemeId) => {
|
|
|
17
18
|
continue
|
|
18
19
|
}
|
|
19
20
|
const absolutePath = Path.join(extension.path, colorTheme.path)
|
|
20
|
-
|
|
21
|
-
const json = await ReadJson.readJson(absolutePath)
|
|
22
|
-
return json
|
|
23
|
-
} catch (error) {
|
|
24
|
-
throw new VError(error, `Failed to load color theme "${colorThemeId}"`)
|
|
25
|
-
}
|
|
21
|
+
return absolutePath
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
return ''
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const getColorThemeJson = async (colorThemeId) => {
|
|
28
|
+
const extensions = await ExtensionManagement.getExtensions()
|
|
29
|
+
const colorThemePath = await getColorThemePath(extensions, colorThemeId)
|
|
30
|
+
if (!colorThemePath) {
|
|
31
|
+
throw new Error.OperationalError({
|
|
32
|
+
code: 'E_COLOR_THEME_NOT_FOUND',
|
|
33
|
+
message: `Color theme "${colorThemeId}" not found in extensions folder`,
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const json = await ReadJson.readJson(colorThemePath)
|
|
38
|
+
return json
|
|
39
|
+
} catch (error) {
|
|
40
|
+
throw new VError(error, `Failed to load color theme "${colorThemeId}"`)
|
|
41
|
+
}
|
|
32
42
|
}
|
|
33
43
|
|
|
34
44
|
const getColorThemeInfo = (extension) => {
|
|
@@ -56,3 +66,19 @@ export const getColorThemes = async () => {
|
|
|
56
66
|
const colorThemes = extensions.flatMap(getColorThemeInfo)
|
|
57
67
|
return colorThemes
|
|
58
68
|
}
|
|
69
|
+
|
|
70
|
+
export const watch = async (socket, colorThemeId) => {
|
|
71
|
+
// console.log({ socket, colorThemeId })
|
|
72
|
+
const extensions = await ExtensionManagement.getExtensions()
|
|
73
|
+
const colorThemePath = await getColorThemePath(extensions, colorThemeId)
|
|
74
|
+
const verbose = process.argv.includes('--verbose')
|
|
75
|
+
if (verbose) {
|
|
76
|
+
console.info(
|
|
77
|
+
`[shared-process] starting to watch color theme ${colorThemeId} at ${colorThemePath}`
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
const watcher = FileSystemWatch.watchFile(colorThemePath)
|
|
81
|
+
for await (const event of watcher) {
|
|
82
|
+
socket.send({ jsonrpc: '2.0', method: 'ColorTheme.reload', params: [] })
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -66,6 +66,7 @@ export const getModuleId = (commandId) => {
|
|
|
66
66
|
case 'ExtensionHost.getIconThemeJson':
|
|
67
67
|
case 'ExtensionHost.getLanguageConfiguration':
|
|
68
68
|
case 'ExtensionHost.getLanguages':
|
|
69
|
+
case 'ExtensionHost.watchColorTheme':
|
|
69
70
|
case 'ExtensionManagement.disable':
|
|
70
71
|
case 'ExtensionManagement.enable':
|
|
71
72
|
case 'ExtensionManagement.getAllExtensions':
|