@lvce-editor/shared-process 0.11.8 → 0.11.10

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.
Files changed (45) hide show
  1. package/config/defaultKeyBindings.json +25 -0
  2. package/config/defaultSettings.json +2 -7
  3. package/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +232 -3
  4. package/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +14 -0
  5. package/extensions/builtin.language-basics-css/src/tokenizeCss.js +8 -0
  6. package/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +52 -4
  7. package/extensions/builtin.language-basics-perl/extension.json +2 -1
  8. package/extensions/builtin.language-basics-perl/src/tokenizePerl.js +53 -6
  9. package/extensions/builtin.language-basics-python/src/tokenizePython.js +86 -3
  10. package/extensions/builtin.language-basics-ruby/README.md +14 -0
  11. package/extensions/builtin.language-basics-ruby/extension.json +48 -0
  12. package/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +241 -0
  13. package/extensions/builtin.language-basics-scss/README.md +14 -0
  14. package/extensions/builtin.language-basics-scss/extension.json +12 -0
  15. package/extensions/builtin.language-basics-scss/src/tokenizeScss.js +28 -0
  16. package/extensions/builtin.language-basics-shellscript/extension.json +2 -1
  17. package/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +326 -13
  18. package/extensions/builtin.language-basics-toml/src/tokenizeToml.js +87 -13
  19. package/extensions/builtin.language-basics-xml/extension.json +2 -1
  20. package/extensions/builtin.language-basics-xml/src/tokenizeXml.js +7 -0
  21. package/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +8 -1
  22. package/extensions/builtin.theme-cobalt2/color-theme.json +4 -0
  23. package/extensions/builtin.theme-gruvbox/color-theme.json +4 -0
  24. package/extensions/builtin.theme-palenight/color-theme.json +4 -0
  25. package/extensions/builtin.theme-slime/color-theme.json +9 -1
  26. package/package.json +5 -5
  27. package/src/parts/Cli/Cli.js +2 -2
  28. package/src/parts/CliInstall/CliInstall.js +21 -6
  29. package/src/parts/CliList/CliList.js +3 -2
  30. package/src/parts/CliUnlink/CliUnlink.js +1 -1
  31. package/src/parts/DownloadAndExtract/DownloadAndExtract.js +18 -8
  32. package/src/parts/ErrorCodes/ErrorCodes.js +8 -18
  33. package/src/parts/ErrorHandling/ErrorHandling.js +4 -9
  34. package/src/parts/ExportStatic/ExportStatic.js +57 -330
  35. package/src/parts/ExtensionHost/ExtensionHost.js +4 -7
  36. package/src/parts/ExtensionInstallFromGitHub/ExtensionInstallFromGitHub.js +1 -4
  37. package/src/parts/ExtensionManagement/ExtensionManagementColorTheme.js +3 -4
  38. package/src/parts/FileSystem/FileSystem.js +5 -15
  39. package/src/parts/GetResponse/GetResponse.js +10 -14
  40. package/src/parts/JsonRpc/JsonRpc.js +3 -6
  41. package/src/parts/JsonRpcErrorCode/JsonRpcErrorCode.js +2 -0
  42. package/src/parts/JsonRpcVersion/JsonRpcVersion.js +1 -0
  43. package/src/parts/OutputChannel/OutputChannel.ipc.js +3 -2
  44. package/src/parts/Terminal/Terminal.js +5 -4
  45. package/src/sharedProcessMain.js +2 -5
@@ -137,6 +137,10 @@
137
137
  "name": "KeywordControl",
138
138
  "foreground": "#EA6962"
139
139
  },
140
+ {
141
+ "name": "KeywordOperator",
142
+ "foreground": "#EA6962"
143
+ },
140
144
  {
141
145
  "name": "Regex",
142
146
  "foreground": "#D8A657"
@@ -192,6 +192,10 @@
192
192
  {
193
193
  "name": "KeywordReturn",
194
194
  "foreground": "#89DDFF"
195
+ },
196
+ {
197
+ "name": "KeywordOperator",
198
+ "foreground": "#89DDFF"
195
199
  }
196
200
  ]
197
201
  }
@@ -30,6 +30,8 @@
30
30
 
31
31
  "MainBackground": "#1e2324",
32
32
 
33
+ "MenuItemHoverBackground": "rgb(81, 95, 89)",
34
+
33
35
  "PanelBackground": "#1b2020",
34
36
  "PanelBorderTopColor": "rgba(128, 128, 128, 0.35)",
35
37
  "PanelTabForeground": "rgba(231, 231, 231, 0.6)",
@@ -52,7 +54,9 @@
52
54
  "TitleBarBackground": "rgb(40, 46, 47)",
53
55
  "TitleBarBorderBottomColor": "#222",
54
56
  "TitleBarColor": "#cccccc",
55
- "TitleBarColorInactive": "rgba(204, 204, 204, 0.6)"
57
+ "TitleBarColorInactive": "rgba(204, 204, 204, 0.6)",
58
+
59
+ "WorkbenchForeground": "#cccccc"
56
60
  },
57
61
  "tokenColors": [
58
62
  {
@@ -230,6 +234,10 @@
230
234
  {
231
235
  "name": "KeywordThis",
232
236
  "foreground": "#BE9296"
237
+ },
238
+ {
239
+ "name": "KeywordOperator",
240
+ "foreground": "#B4B4B4"
233
241
  }
234
242
  ]
235
243
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.11.8",
3
+ "version": "0.11.10",
4
4
  "description": "Utility package for @lvce-editor/server",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -17,9 +17,9 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@babel/code-frame": "^7.18.6",
20
- "@lvce-editor/extension-host": "0.11.8",
21
- "@lvce-editor/extension-host-helper-process": "0.11.8",
22
- "@lvce-editor/pty-host": "0.11.8",
20
+ "@lvce-editor/extension-host": "0.11.10",
21
+ "@lvce-editor/extension-host-helper-process": "0.11.10",
22
+ "@lvce-editor/pty-host": "0.11.10",
23
23
  "debug": "^4.3.4",
24
24
  "execa": "^6.1.0",
25
25
  "exit-hook": "^3.1.4",
@@ -29,7 +29,7 @@
29
29
  "open": "^8.4.0",
30
30
  "p-queue": "^7.3.0",
31
31
  "parse-json": "^6.0.2",
32
- "tail": "^2.2.4",
32
+ "tail": "^2.2.5",
33
33
  "tar-fs": "^2.1.1",
34
34
  "tmp-promise": "^3.0.3",
35
35
  "trash": "^8.1.0",
@@ -16,12 +16,12 @@ const getModule = (argv0) => {
16
16
  }
17
17
  }
18
18
 
19
- export const handleCliArgs = async (argv, console, process) => {
19
+ export const handleCliArgs = async (argv) => {
20
20
  const argv0 = argv[0]
21
21
  const module = await getModule(argv0)
22
22
  // console.log('handle cli args')
23
23
  try {
24
- await module.handleCliArgs(argv, console, process)
24
+ await module.handleCliArgs(argv)
25
25
  } catch (error) {
26
26
  Logger.error(error)
27
27
  Process.setExitCode(1)
@@ -1,11 +1,26 @@
1
1
  import * as ExtensionInstall from '../ExtensionInstall/ExtensionInstall.js'
2
2
  import * as Logger from '../Logger/Logger.js'
3
+ import * as Process from '../Process/Process.js'
3
4
 
4
- export const handleCliArgs = async (argv, console) => {
5
- const extension = argv[1]
6
- if (!extension) {
7
- Logger.error('extension argument is required')
8
- return
5
+ export const handleCliArgs = async (argv) => {
6
+ try {
7
+ const extension = argv[1]
8
+ if (!extension) {
9
+ Logger.error('extension argument is required')
10
+ return
11
+ }
12
+ await ExtensionInstall.install(extension)
13
+ } catch (error) {
14
+ if (error && error.message && error.message.includes('Response code')) {
15
+ Logger.error(error.message)
16
+ Process.setExitCode(128)
17
+ return
18
+ }
19
+ if (error && error.message && error.message.includes('getaddrinfo EAI_AGAIN')) {
20
+ Logger.error(error.message)
21
+ Process.setExitCode(128)
22
+ return
23
+ }
24
+ throw error
9
25
  }
10
- await ExtensionInstall.install(extension)
11
26
  }
@@ -1,4 +1,5 @@
1
1
  import * as ExtensionList from '../ExtensionList/ExtensionList.js'
2
+ import * as Logger from '../Logger/Logger.js'
2
3
 
3
4
  const getOutputLine = (extension) => {
4
5
  return `${extension.id}: ${extension.version}`
@@ -8,8 +9,8 @@ const getOutput = (extensions) => {
8
9
  return extensions.map(getOutputLine).join('\n')
9
10
  }
10
11
 
11
- export const handleCliArgs = async (argv, console) => {
12
+ export const handleCliArgs = async (argv) => {
12
13
  const extensions = await ExtensionList.list()
13
14
  const output = getOutput(extensions)
14
- console.info(output)
15
+ Logger.info(output)
15
16
  }
@@ -1,7 +1,7 @@
1
1
  import * as ExtensionUnlink from '../ExtensionUnlink/ExtensionUnlink.js'
2
2
  import * as Process from '../Process/Process.js'
3
3
 
4
- export const handleCliArgs = async (argv, console, process) => {
4
+ export const handleCliArgs = async (argv) => {
5
5
  const path = argv.length > 1 ? argv[1] : Process.cwd()
6
6
  await ExtensionUnlink.unlink(path)
7
7
  }
@@ -1,14 +1,24 @@
1
- import got from 'got'
1
+ import got, { RequestError } from 'got'
2
2
  import { pipeline } from 'stream/promises'
3
3
  import tar from 'tar-fs'
4
4
  import { createGunzip } from 'zlib'
5
+ import { VError } from '../VError/VError.js'
5
6
 
6
7
  export const downloadAndExtractTarGz = async ({ url, outDir, strip }) => {
7
- await pipeline(
8
- got.stream(url),
9
- createGunzip(),
10
- tar.extract(outDir, {
11
- strip,
12
- })
13
- )
8
+ try {
9
+ await pipeline(
10
+ got.stream(url),
11
+ createGunzip(),
12
+ tar.extract(outDir, {
13
+ strip,
14
+ })
15
+ )
16
+ } catch (error) {
17
+ // console.log({ error })
18
+ if (error && error instanceof RequestError) {
19
+ console.log('is req error')
20
+ throw new VError(`Failed to download ${url}: ${error.message}`)
21
+ }
22
+ throw error
23
+ }
14
24
  }
@@ -1,23 +1,13 @@
1
- export const ENOENT = 'ENOENT'
2
-
3
- export const EXDEV = 'EXDEV'
4
-
5
- export const EEXIST = 'EEXIST'
6
-
7
- export const ENOTDIR = 'ENOTDIR'
8
-
9
- export const E_MANIFEST_NOT_FOUND = 'E_MANIFEST_NOT_FOUND'
10
-
11
- export const EPIPE = 'EPIPE'
12
-
13
- export const ERR_IPC_CHANNEL_CLOSED = 'ERR_IPC_CHANNEL_CLOSED'
14
-
15
1
  export const E_COLOR_THEME_NOT_FOUND = 'E_COLOR_THEME_NOT_FOUND'
16
-
17
2
  export const E_ICON_THEME_NOT_FOUND = 'E_ICON_THEME_NOT_FOUND'
18
-
3
+ export const E_MANIFEST_NOT_FOUND = 'E_MANIFEST_NOT_FOUND'
19
4
  export const ECONNRESET = 'ECONNRESET'
20
-
5
+ export const EEXIST = 'EEXIST'
6
+ export const ELOOP = 'ELOOP'
7
+ export const ENOENT = 'ENOENT'
8
+ export const ENOTDIR = 'ENOTDIR'
21
9
  export const EPERM = 'EPERM'
22
-
10
+ export const EPIPE = 'EPIPE'
11
+ export const ERR_IPC_CHANNEL_CLOSED = 'ERR_IPC_CHANNEL_CLOSED'
23
12
  export const ERR_MODULE_NOT_FOUND = 'ERR_MODULE_NOT_FOUND'
13
+ export const EXDEV = 'EXDEV'
@@ -2,6 +2,7 @@ import * as ErrorCodes from '../ErrorCodes/ErrorCodes.js'
2
2
  import * as PrettyError from '../PrettyError/PrettyError.js'
3
3
  import * as Socket from '../Socket/Socket.js'
4
4
  import * as Process from '../Process/Process.js'
5
+ import * as JsonRpcVersion from '../JsonRpcVersion/JsonRpcVersion.js'
5
6
 
6
7
  export const state = {
7
8
  seenErrors: [],
@@ -17,9 +18,7 @@ const preparePrettyError = (error) => {
17
18
  }
18
19
 
19
20
  const printPrettyError = (prettyError) => {
20
- console.error(
21
- `${prettyError.message}\n${prettyError.codeFrame}\n${prettyError.stack}`
22
- )
21
+ console.error(`${prettyError.message}\n${prettyError.codeFrame}\n${prettyError.stack}`)
23
22
  }
24
23
 
25
24
  export const handleError = (error) => {
@@ -29,7 +28,7 @@ export const handleError = (error) => {
29
28
  state.seenErrors.push(error.message)
30
29
  const prettyError = preparePrettyError(error)
31
30
  Socket.send({
32
- jsonrpc: '2.0',
31
+ jsonrpc: JsonRpcVersion.Two,
33
32
  method: /* Dialog.showErrorDialogWithOptions */ 'Dialog.showMessage',
34
33
  params: [
35
34
  {
@@ -62,11 +61,7 @@ export const handleUncaughtExceptionMonitor = (error, origin) => {
62
61
  // parent process is disposed, ignore
63
62
  return
64
63
  }
65
- if (
66
- error &&
67
- error.code === ErrorCodes.ERR_IPC_CHANNEL_CLOSED &&
68
- !Process.isConnected()
69
- ) {
64
+ if (error && error.code === ErrorCodes.ERR_IPC_CHANNEL_CLOSED && !Process.isConnected()) {
70
65
  // parent process is disposed, ignore
71
66
  return
72
67
  }