@lvce-editor/shared-process 0.2.2 → 0.4.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.
@@ -380,6 +380,10 @@
380
380
  "id": "Explorer.expandAll",
381
381
  "label": "Explorer: Expand All"
382
382
  },
383
+ {
384
+ "id": "Explorer.expandRecursively",
385
+ "label": "Explorer: Expand Recursively"
386
+ },
383
387
  {
384
388
  "id": "SessionReplay.replayCurrentSession",
385
389
  "label": "SessionReplay: Replay Current Session"
@@ -391,5 +395,13 @@
391
395
  {
392
396
  "id": "SessionReplay.openSession",
393
397
  "label": "SessionReplay: Open Session"
398
+ },
399
+ {
400
+ "id": "ContentTracing.start",
401
+ "label": "Developer: Start Content Tracing"
402
+ },
403
+ {
404
+ "id": "ContentTracing.stop",
405
+ "label": "Developer: Stop Content Tracing"
394
406
  }
395
407
  ]
@@ -1,4 +1,4 @@
1
- # Language Basics CSS
1
+ # Language Basics Css
2
2
 
3
3
  ## Contributing
4
4
 
@@ -104,12 +104,19 @@ export const initialLineState = {
104
104
  stack: [],
105
105
  }
106
106
 
107
+ /**
108
+ * @param {any} lineStateA
109
+ * @param {any} lineStateB
110
+ */
107
111
  export const isEqualLineState = (lineStateA, lineStateB) => {
108
112
  return lineStateA.state === lineStateB.state
109
113
  }
110
114
 
115
+ export const hasArrayReturn = true
116
+
111
117
  /**
112
118
  * @param {string} line
119
+ * @param {any} lineState
113
120
  */
114
121
  export const tokenizeLine = (line, lineState) => {
115
122
  let next = null
@@ -349,11 +356,9 @@ export const tokenizeLine = (line, lineState) => {
349
356
  console.log({ state, line })
350
357
  throw new Error('no')
351
358
  }
352
- index += next[0].length
353
- tokens.push({
354
- type: token,
355
- length: next[0].length,
356
- })
359
+ const tokenLength = next[0].length
360
+ index += tokenLength
361
+ tokens.push(token, tokenLength)
357
362
  }
358
363
  return {
359
364
  state,
@@ -1,33 +1,122 @@
1
+ /**
2
+ * @enum number
3
+ */
4
+ export const State = {
5
+ TopLevelContent: 1,
6
+ InsideLineComment: 2,
7
+ }
8
+
9
+ export const StateMap = {
10
+ [State.TopLevelContent]: 'TopLevelContent',
11
+ [State.InsideLineComment]: 'InsideLineComment',
12
+ }
13
+
1
14
  /**
2
15
  * @enum number
3
16
  */
4
17
  export const TokenType = {
5
- Text: 0,
6
- NewLine: 1,
18
+ CssSelector: 1,
19
+ Whitespace: 2,
20
+ None: 57,
21
+ Unknown: 881,
22
+ NewLine: 884,
23
+ Comment: 885,
24
+ Query: 886,
25
+ Text: 887,
7
26
  }
8
27
 
9
28
  export const TokenMap = {
29
+ [TokenType.CssSelector]: 'CssSelector',
30
+ [TokenType.Whitespace]: 'Whitespace',
31
+ [TokenType.None]: 'None',
32
+ [TokenType.Unknown]: 'Unknown',
33
+ [TokenType.NewLine]: 'NewLine',
34
+ [TokenType.Comment]: 'Comment',
35
+ [TokenType.Query]: 'Query',
10
36
  [TokenType.Text]: 'Text',
11
37
  }
12
38
 
39
+ const RE_LINE_COMMENT_START = /^#/
40
+ const RE_WHITESPACE = /^ +/
41
+ const RE_CURLY_OPEN = /^\{/
42
+ const RE_CURLY_CLOSE = /^\}/
43
+ const RE_PROPERTY_NAME = /^[a-zA-Z\-]+\b/
44
+ const RE_COLON = /^:/
45
+ const RE_PROPERTY_VALUE = /^[^;\}]+/
46
+ const RE_SEMICOLON = /^;/
47
+ const RE_COMMA = /^,/
48
+ const RE_ANYTHING = /^.*/
49
+ const RE_NUMERIC = /^(([0-9]+\.?[0-9]*)|(\.[0-9]+))/
50
+ const RE_ANYTHING_UNTIL_CLOSE_BRACE = /^[^\}]+/
51
+ const RE_BLOCK_COMMENT_START = /^\/\*/
52
+ const RE_BLOCK_COMMENT_END = /^\*\//
53
+ const RE_BLOCK_COMMENT_CONTENT = /^.+?(?=\*\/|$)/s
54
+ const RE_ROUND_OPEN = /^\(/
55
+ const RE_ROUND_CLOSE = /^\)/
56
+ const RE_PSEUDO_SELECTOR_CONTENT = /^[^\)]+/
57
+ const RE_SQUARE_OPEN = /^\[/
58
+ const RE_SQUARE_CLOSE = /^\]/
59
+ const RE_ATTRIBUTE_SELECTOR_CONTENT = /^[^\]]+/
60
+ const RE_QUERY = /^@[a-z\-]+/
61
+ const RE_STAR = /^\*/
62
+ const RE_QUERY_NAME = /^[a-z\-]+/
63
+ const RE_QUERY_CONTENT = /^[^\)]+/
64
+ const RE_COMBINATOR = /^[\+\>\~]/
65
+
13
66
  export const initialLineState = {
14
- state: 1,
67
+ state: State.TopLevelContent,
68
+ tokens: [],
69
+ stack: [],
15
70
  }
16
71
 
72
+ export const hasArrayReturn = true
73
+
74
+ /**
75
+ * @param {string} line
76
+ * @param {any} lineState
77
+ */
17
78
  export const tokenizeLine = (line, lineState) => {
18
- if (line.length === 0) {
19
- return {
20
- state: 1,
21
- tokens: [],
79
+ let next = null
80
+ let index = 0
81
+ let tokens = []
82
+ let token = TokenType.None
83
+ let state = lineState.state
84
+ while (index < line.length) {
85
+ const part = line.slice(index)
86
+ switch (state) {
87
+ case State.TopLevelContent:
88
+ if ((next = part.match(RE_LINE_COMMENT_START))) {
89
+ token = TokenType.Comment
90
+ state = State.InsideLineComment
91
+ } else if ((next = part.match(RE_WHITESPACE))) {
92
+ token = TokenType.Whitespace
93
+ state = State.TopLevelContent
94
+ } else if ((next = part.match(RE_ANYTHING))) {
95
+ token = TokenType.Text
96
+ state = State.TopLevelContent
97
+ } else {
98
+ part //?
99
+ throw new Error('no')
100
+ }
101
+ break
102
+ case State.InsideLineComment:
103
+ if ((next = part.match(RE_ANYTHING))) {
104
+ token = TokenType.Comment
105
+ state = State.TopLevelContent
106
+ } else {
107
+ throw new Error('no')
108
+ }
109
+ break
110
+ default:
111
+ console.log({ state, line })
112
+ throw new Error('no')
22
113
  }
114
+ const tokenLength = next[0].length
115
+ index += tokenLength
116
+ tokens.push(token, tokenLength)
23
117
  }
24
118
  return {
25
- state: 1,
26
- tokens: [
27
- {
28
- type: TokenType.Text,
29
- length: line.length,
30
- },
31
- ],
119
+ state,
120
+ tokens,
32
121
  }
33
122
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "builtin.language-basics-docker",
3
- "version": "0.0.0-dev",
3
+ "version": "0.0.6",
4
4
  "name": "Language Basics Docker",
5
5
  "description": "Provides syntax highlighting and bracket matching in Dockerfile files.",
6
6
  "languages": [
@@ -2,30 +2,89 @@
2
2
  * @enum number
3
3
  */
4
4
  export const TokenType = {
5
+ None: 0,
5
6
  Text: 1,
7
+ VariableName: 2,
8
+ Keyword: 3,
9
+ Whitespace: 4,
10
+ }
11
+
12
+ /**
13
+ * @enum number
14
+ */
15
+ export const State = {
16
+ TopLevelContent: 1,
17
+ AfterSelector: 2,
18
+ InsideSelector: 3,
19
+ AfterPropertyName: 4,
20
+ AfterPropertyNameAfterColon: 5,
21
+ AfterPropertyValue: 6,
22
+ InsideBlockComment: 7,
23
+ InsidePseudoSelector: 8,
24
+ InsideAttributeSelector: 9,
25
+ AfterQuery: 10,
26
+ InsideRound: 11,
27
+ AfterQueryWithRules: 12,
6
28
  }
7
29
 
8
30
  export const TokenMap = {
9
31
  [TokenType.Text]: 'Text',
32
+ [TokenType.VariableName]: 'VariableName',
33
+ [TokenType.Whitespace]: 'Whitespace',
34
+ [TokenType.Keyword]: 'Keyword',
10
35
  }
11
36
 
12
37
  export const initialLineState = {
13
- state: 0,
38
+ state: 1,
14
39
  tokens: [],
15
40
  }
16
41
 
42
+ const RE_WHITESPACE = /^ +/
43
+ const RE_ANYTHING = /^.*/
44
+ const RE_KEYWORD =
45
+ /^(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)\b/
46
+
47
+ export const hasArrayReturnValue = true
48
+
17
49
  /**
18
50
  * @param {string} line
51
+ * @param {any} lineState
19
52
  */
20
- export const tokenizeLine = (line) => {
21
- const tokens = [
22
- {
23
- type: TokenType.Text,
24
- length: line.length,
25
- },
26
- ]
53
+ export const tokenizeLine = (line, lineState) => {
54
+ let next = null
55
+ let index = 0
56
+ let tokens = []
57
+ let token = TokenType.None
58
+ let state = lineState.state
59
+ while (index < line.length) {
60
+ const part = line.slice(index)
61
+ switch (state) {
62
+ case State.TopLevelContent:
63
+ if ((next = part.match(RE_KEYWORD))) {
64
+ token = TokenType.Keyword
65
+ state = State.TopLevelContent
66
+ } else if ((next = part.match(RE_WHITESPACE))) {
67
+ token = TokenType.Whitespace
68
+ state = State.TopLevelContent
69
+ } else if ((next = part.match(RE_ANYTHING))) {
70
+ token = TokenType.Text
71
+ state = State.TopLevelContent
72
+ } else {
73
+ throw new Error('no')
74
+ }
75
+ break
76
+ default:
77
+ console.log({ state, line })
78
+ throw new Error('no')
79
+ }
80
+ index += next[0].length
81
+ tokens.push({
82
+ type: token,
83
+ length: next[0].length,
84
+ })
85
+ }
27
86
  return {
28
- state: 0,
87
+ state,
29
88
  tokens,
30
89
  }
31
90
  }
@@ -98,6 +98,8 @@ export const isLineStateEqual = (lineStateA, lineStateB) => {
98
98
  return lineStateA.state === lineStateB.state
99
99
  }
100
100
 
101
+ export const hasArrayReturn = true
102
+
101
103
  /**
102
104
  *
103
105
  * @param {string} line
@@ -287,11 +289,9 @@ export const tokenizeLine = (line, lineState) => {
287
289
  state
288
290
  throw new Error('no')
289
291
  }
290
- index += next[0].length
291
- tokens.push({
292
- type: token,
293
- length: next[0].length,
294
- })
292
+ const tokenLength = next[0].length
293
+ index += tokenLength
294
+ tokens.push(token, tokenLength)
295
295
  }
296
296
  return {
297
297
  state,
@@ -4,6 +4,9 @@
4
4
  export const State = {
5
5
  TopLevelContent: 1,
6
6
  InsideLineComment: 2,
7
+ AfterPropertyName: 3,
8
+ AfterPropertyNameAfterColon: 4,
9
+ AfterDash: 5,
7
10
  }
8
11
 
9
12
  export const StateMap = {
@@ -15,33 +18,42 @@ export const StateMap = {
15
18
  * @enum number
16
19
  */
17
20
  export const TokenType = {
21
+ Comment: 885,
18
22
  CssSelector: 1,
19
- Whitespace: 2,
20
- None: 57,
21
- Unknown: 881,
23
+ LanguageConstant: 11,
22
24
  NewLine: 884,
23
- Comment: 885,
25
+ None: 57,
26
+ Numeric: 15,
27
+ PropertyName: 12,
28
+ PropertyValueString: 14,
29
+ Punctuation: 13,
24
30
  Query: 886,
25
31
  Text: 887,
32
+ Unknown: 881,
33
+ Whitespace: 2,
26
34
  }
27
35
 
28
36
  export const TokenMap = {
37
+ [TokenType.Comment]: 'Comment',
29
38
  [TokenType.CssSelector]: 'CssSelector',
30
- [TokenType.Whitespace]: 'Whitespace',
31
- [TokenType.None]: 'None',
32
- [TokenType.Unknown]: 'Unknown',
39
+ [TokenType.LanguageConstant]: 'LanguageConstant',
33
40
  [TokenType.NewLine]: 'NewLine',
34
- [TokenType.Comment]: 'Comment',
41
+ [TokenType.None]: 'None',
42
+ [TokenType.Numeric]: 'Numeric',
43
+ [TokenType.PropertyName]: 'JsonPropertyName',
35
44
  [TokenType.Query]: 'Query',
36
45
  [TokenType.Text]: 'Text',
46
+ [TokenType.Unknown]: 'Unknown',
47
+ [TokenType.Whitespace]: 'Whitespace',
48
+ [TokenType.Punctuation]: 'Punctuation',
49
+ [TokenType.PropertyValueString]: 'String',
37
50
  }
38
51
 
39
52
  const RE_LINE_COMMENT_START = /^#/
40
53
  const RE_WHITESPACE = /^ +/
41
54
  const RE_CURLY_OPEN = /^\{/
42
55
  const RE_CURLY_CLOSE = /^\}/
43
- const RE_PROPERTY_NAME = /^[a-zA-Z\-]+\b/
44
- const RE_COLON = /^:/
56
+ const RE_PROPERTY_NAME = /^[a-zA-Z\-\_]+(?=\s*:)/
45
57
  const RE_PROPERTY_VALUE = /^[^;\}]+/
46
58
  const RE_SEMICOLON = /^;/
47
59
  const RE_COMMA = /^,/
@@ -62,6 +74,9 @@ const RE_STAR = /^\*/
62
74
  const RE_QUERY_NAME = /^[a-z\-]+/
63
75
  const RE_QUERY_CONTENT = /^[^\)]+/
64
76
  const RE_COMBINATOR = /^[\+\>\~]/
77
+ const RE_LANGUAGE_CONSTANT = /^(?:true|false)/
78
+ const RE_COLON = /^:/
79
+ const RE_DASH = /^\-/
65
80
 
66
81
  export const initialLineState = {
67
82
  state: State.TopLevelContent,
@@ -89,6 +104,18 @@ export const tokenizeLine = (line, lineState) => {
89
104
  } else if ((next = part.match(RE_WHITESPACE))) {
90
105
  token = TokenType.Whitespace
91
106
  state = State.TopLevelContent
107
+ } else if ((next = part.match(RE_LANGUAGE_CONSTANT))) {
108
+ token = TokenType.LanguageConstant
109
+ state = State.TopLevelContent
110
+ } else if ((next = part.match(RE_PROPERTY_NAME))) {
111
+ token = TokenType.PropertyName
112
+ state = State.AfterPropertyName
113
+ } else if ((next = part.match(RE_NUMERIC))) {
114
+ token = TokenType.Numeric
115
+ state = State.TopLevelContent
116
+ } else if ((next = part.match(RE_DASH))) {
117
+ token = TokenType.Punctuation
118
+ state = State.AfterDash
92
119
  } else if ((next = part.match(RE_ANYTHING))) {
93
120
  token = TokenType.Text
94
121
  state = State.TopLevelContent
@@ -105,6 +132,54 @@ export const tokenizeLine = (line, lineState) => {
105
132
  throw new Error('no')
106
133
  }
107
134
  break
135
+ case State.AfterPropertyName:
136
+ if ((next = part.match(RE_COLON))) {
137
+ token = TokenType.Punctuation
138
+ state = State.AfterPropertyNameAfterColon
139
+ } else if ((next = part.match(RE_WHITESPACE))) {
140
+ token = TokenType.Whitespace
141
+ state = State.AfterPropertyName
142
+ } else {
143
+ throw new Error('no')
144
+ }
145
+ break
146
+ case State.AfterPropertyNameAfterColon:
147
+ if ((next = part.match(RE_WHITESPACE))) {
148
+ token = TokenType.Whitespace
149
+ state = State.AfterPropertyNameAfterColon
150
+ } else if ((next = part.match(RE_LANGUAGE_CONSTANT))) {
151
+ token = TokenType.LanguageConstant
152
+ state = State.TopLevelContent
153
+ } else if ((next = part.match(RE_NUMERIC))) {
154
+ token = TokenType.Numeric
155
+ state = State.TopLevelContent
156
+ } else if ((next = part.match(RE_ANYTHING))) {
157
+ token = TokenType.PropertyValueString
158
+ state = State.TopLevelContent
159
+ } else {
160
+ throw new Error('no')
161
+ }
162
+ break
163
+ case State.AfterDash:
164
+ if ((next = part.match(RE_WHITESPACE))) {
165
+ token = TokenType.Whitespace
166
+ state = State.AfterDash
167
+ } else if ((next = part.match(RE_PROPERTY_NAME))) {
168
+ token = TokenType.PropertyName
169
+ state = State.AfterPropertyName
170
+ } else if ((next = part.match(RE_LANGUAGE_CONSTANT))) {
171
+ token = TokenType.LanguageConstant
172
+ state = State.TopLevelContent
173
+ } else if ((next = part.match(RE_NUMERIC))) {
174
+ token = TokenType.Numeric
175
+ state = State.TopLevelContent
176
+ } else if ((next = part.match(RE_ANYTHING))) {
177
+ token = TokenType.PropertyValueString
178
+ state = State.TopLevelContent
179
+ } else {
180
+ throw new Error('no')
181
+ }
182
+ break
108
183
  default:
109
184
  console.log({ state, line })
110
185
  throw new Error('no')
@@ -115,6 +190,9 @@ export const tokenizeLine = (line, lineState) => {
115
190
  length: next[0].length,
116
191
  })
117
192
  }
193
+ if (state === State.AfterPropertyNameAfterColon) {
194
+ state = State.TopLevelContent
195
+ }
118
196
  return {
119
197
  state,
120
198
  tokens,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.2.2",
3
+ "version": "0.4.1",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -38,8 +38,8 @@
38
38
  "verror": "^1.10.1",
39
39
  "ws": "^8.8.1",
40
40
  "xdg-basedir": "^5.1.0",
41
- "@lvce-editor/pty-host": "0.2.2",
42
- "@lvce-editor/extension-host": "0.2.2"
41
+ "@lvce-editor/pty-host": "0.4.1",
42
+ "@lvce-editor/extension-host": "0.4.1"
43
43
  },
44
44
  "optionalDependencies": {
45
45
  "electron-clipboard-ex": "^1.3.3",
@@ -1,82 +1,23 @@
1
- const MODULE_FILE_SYSTEM = 1
2
- const MODULE_WORKSPACE = 2
3
- const MODULE_TERMINAL = 3
4
- const MODULE_SEARCH = 5
5
- const MODULE_SEARCH_FILE = 6
6
- const MODULE_OUTPUT_CHANNEL = 7
7
- const MODULE_DEVELOPER = 8
8
- const MODULE_EXTENSION_MANAGEMENT = 9
9
- const MODULE_EXTENSION_HOST = 10
10
- const MODULE_PREFERENCES = 11
11
- const MODULE_NATIVE = 12
12
- const MODULE_CLIPBOARD = 13
13
- const MODULE_TEXT_DOCUMENT = 14
14
- const MODULE_WEBSOCKET_SERVER = 16
15
- const MODULE_PLATFORM = 17
16
- const MODULE_RECENTLY_OPENED = 18
1
+ import * as Module from '../Module/Module.js'
2
+ import * as ModuleMap from '../ModuleMap/ModuleMap.js'
17
3
 
18
4
  const commands = Object.create(null)
19
5
  const invocables = Object.create(null)
20
-
21
6
  const pendingModules = Object.create(null)
22
7
 
23
- const loadModule = (moduleId) => {
24
- switch (moduleId) {
25
- case MODULE_FILE_SYSTEM:
26
- return import('../FileSystem/FileSystem.ipc.js')
27
- case MODULE_WORKSPACE:
28
- return import('../Workspace/Workspace.ipc.js')
29
- case MODULE_TERMINAL:
30
- return import('../Terminal/Terminal.ipc.js')
31
- case MODULE_SEARCH:
32
- return import('../Search/Search.ipc.js')
33
- case MODULE_SEARCH_FILE:
34
- return import('../SearchFile/SearchFile.ipc.js')
35
- case MODULE_OUTPUT_CHANNEL:
36
- return import('../OutputChannel/OutputChannel.ipc.js')
37
- case MODULE_DEVELOPER:
38
- return import('../Developer/Developer.ipc.js')
39
- case MODULE_EXTENSION_MANAGEMENT:
40
- return import('../ExtensionManagement/ExtensionManagement.ipc.js')
41
- case MODULE_EXTENSION_HOST:
42
- return import('../ExtensionHost/ExtensionHost.ipc.js')
43
- case MODULE_PREFERENCES:
44
- return import('../Preferences/Preferences.ipc.js')
45
- case MODULE_NATIVE:
46
- return import('../Native/Native.ipc.js')
47
- case MODULE_CLIPBOARD:
48
- return import('../ClipBoard/ClipBoard.ipc.js')
49
- case MODULE_TEXT_DOCUMENT:
50
- return import('../TextDocument/TextDocument.ipc.js')
51
- case MODULE_WEBSOCKET_SERVER:
52
- return import('../WebSocketServer/WebSocketServer.ipc.js')
53
- case MODULE_PLATFORM:
54
- return import('../Platform/Platform.ipc.js')
55
- case MODULE_RECENTLY_OPENED:
56
- return import('../RecentlyOpened/RecentlyOpened.ipc.js')
57
- default:
58
- throw new Error(`unknown module ${moduleId}`)
59
- }
60
- }
61
-
62
8
  const initializeModule = (module) => {
63
- if (typeof module.__initialize__ !== 'function') {
64
- if (module.Commands) {
65
- for (const [key, value] of Object.entries(module.Commands)) {
66
- register(key, value)
67
- }
68
- return
9
+ if (module.Commands) {
10
+ for (const [key, value] of Object.entries(module.Commands)) {
11
+ register(key, value)
69
12
  }
70
- throw new Error(
71
- `module ${module.name} is missing an initialize function and commands`
72
- )
13
+ return
73
14
  }
74
- return module.__initialize__()
15
+ throw new Error(`module ${module.name} is missing commands`)
75
16
  }
76
17
 
77
18
  const getOrLoadModule = (moduleId) => {
78
19
  if (!pendingModules[moduleId]) {
79
- const importPromise = loadModule(moduleId)
20
+ const importPromise = Module.load(moduleId)
80
21
  pendingModules[moduleId] = importPromise
81
22
  .then(initializeModule)
82
23
  .catch((error) => {
@@ -86,139 +27,7 @@ const getOrLoadModule = (moduleId) => {
86
27
  return pendingModules[moduleId]
87
28
  }
88
29
 
89
- const getModuleId = (commandId) => {
90
- switch (commandId) {
91
- case 'FileSystem.chmod':
92
- case 'FileSystem.copy':
93
- case 'FileSystem.createFile':
94
- case 'FileSystem.createFolder':
95
- case 'FileSystem.ensureFile':
96
- case 'FileSystem.getPathSeparator':
97
- case 'FileSystem.mkdir':
98
- case 'FileSystem.readDirWithFileTypes':
99
- case 'FileSystem.readFile':
100
- case 'FileSystem.remove':
101
- case 'FileSystem.rename':
102
- case 'FileSystem.writeFile':
103
- return MODULE_FILE_SYSTEM
104
- case 'Workspace.resolveRoot':
105
- case 'Workspace.getHomeDir':
106
- return MODULE_WORKSPACE
107
- case 'Native.openFolder':
108
- return MODULE_NATIVE
109
- case 'ClipBoard.readFiles':
110
- case 'ClipBoard.writeFiles':
111
- return MODULE_CLIPBOARD
112
- case 'Developer.sharedProcessStartupPerformance':
113
- case 'Developer.sharedProcessMemoryUsage':
114
- case 'Developer.allocateMemory':
115
- case 'Developer.crashSharedProcess':
116
- case 'Developer.createHeapSnapshot':
117
- case 'Developer.createProfile':
118
- case 'Developer.getNodeStartupTiming':
119
- case 'Developer.getNodeStartupTime':
120
- return MODULE_DEVELOPER
121
- case 'ExtensionHost.executeTabCompletionProvider':
122
- case 'ExtensionHostLanguages.getLanguages':
123
- case 'ExtensionHostKeyBindings.getKeyBindings':
124
- case 'ExtensionHost.executeCommand':
125
- case 'ExtensionHost.getMemoryUsage':
126
- case 'ExtensionHost.getSourceControlBadgeCount':
127
- case 'ExtensionHost.format':
128
- case 'ExtensionHostTextDocument.syncInitial':
129
- case 'ExtensionHostHover.execute':
130
- case 'ExtensionHostDiagnostic.execute':
131
- case 'ExtensionHostTextDocument':
132
- case 'EXtensionHostRename.executePrepareRename':
133
- case 'ExtensionHostRename.executeRename':
134
- case 'ExtensionHostDefinition.executeDefinitionProvider':
135
- case 'ExtensionHostFileSystem.readFile':
136
- case 'ExtensionHostFileSystem.writeFile':
137
- case 'ExtensionHostFileSystem.readDirWithFileTypes':
138
- case 'ExtensionHostFileSystem.remove':
139
- case 'ExtensionHostFileSystem.rename':
140
- case 'ExtensionHostSourceControl.acceptInput':
141
- case 'ExtensionHost.start':
142
- case 'ExtensionHost.dispose':
143
- case 'ExtensionHostManagement.activateAll':
144
- case 'ExtensionHostManagement.enableExtensions':
145
- case 'ExtensionHostFileSystem.getPathSeparator':
146
- case 'ExtensionHostWorkspace.setWorkspacePath':
147
- case 'ExtensionHostOutput.getOutputChannels':
148
- case 'ExtensionHost.getStatusBarItems':
149
- case 'ExtensionHost.registerChangeListener':
150
- case 'ExtensionHostTextDocument.setLanguageId':
151
- case 'ExtensionHostQuickPick.handleQuickPickResult':
152
- case 'ExtensionHostBraceCompletion.executeBraceCompletionProvider':
153
- case 'ExtensionHostReferences.executeReferenceProvider':
154
- case 'ExtensionHostImplementation.executeImplementationProvider':
155
- case 'ExtensionHostClosingTag.executeTypeDefinitionProvider':
156
- case 'ExtensionHostClosingTag.execute':
157
- case 'ExtensionHostTextDocument.syncFull':
158
- case 'ExtensionHost.setWorkspacePath':
159
- case 'ExtensionHost.enableExtension':
160
- case 'ExtensionHostCompletion.execute':
161
- case 'ExtensionHostTextDocument.syncIncremental':
162
- case 'ExtensionHostClosingTag.executeClosingTagProvider':
163
- case 'ExtensionHost.sourceControlGetChangedFiles':
164
- case 'ExtensionHostSemanticTokens.executeSemanticTokenProvider':
165
- return MODULE_EXTENSION_HOST
166
- case 'ExtensionHost.getColorThemeJson':
167
- case 'ExtensionHost.getColorThemeNames':
168
- case 'ExtensionHost.getColorThemes':
169
- case 'ExtensionHost.getIconTheme':
170
- case 'ExtensionHost.getIconThemeJson':
171
- case 'ExtensionHost.getLanguageConfiguration':
172
- case 'ExtensionHost.getLanguages':
173
- case 'ExtensionManagement.disable':
174
- case 'ExtensionManagement.enable':
175
- case 'ExtensionManagement.getAllExtensions':
176
- case 'ExtensionManagement.getExtensions':
177
- case 'ExtensionManagement.install':
178
- case 'ExtensionManagement.uninstall':
179
- return MODULE_EXTENSION_MANAGEMENT
180
- case 'Search.search':
181
- return MODULE_SEARCH
182
- case 'Platform.getAppDir':
183
- case 'Platform.getBuiltinExtensionsPath':
184
- case 'Platform.getCachedExtensionsPath':
185
- case 'Platform.getCacheDir':
186
- case 'Platform.getConfigDir':
187
- case 'Platform.getDataDir':
188
- case 'Platform.getDisabledExtensionsPath':
189
- case 'Platform.getExtensionsPath':
190
- case 'Platform.getHomeDir':
191
- case 'Platform.getLogsDir':
192
- case 'Platform.getMarketplaceUrl':
193
- case 'Platform.getRecentlyOpenedPath':
194
- case 'Platform.getTestPath':
195
- case 'Platform.getUserSettingsPath':
196
- case 'Platform.setEnvironmentVariables':
197
- return MODULE_PLATFORM
198
- case 'Terminal.create':
199
- case 'Terminal.dispose':
200
- case 'Terminal.write':
201
- case 'Terminal.resize':
202
- return MODULE_TERMINAL
203
- case 'Preferences.getAll':
204
- return MODULE_PREFERENCES
205
- case 4820:
206
- return MODULE_TEXT_DOCUMENT
207
- case 5621:
208
- return MODULE_WEBSOCKET_SERVER
209
- case 'SearchFile.searchFile':
210
- return MODULE_SEARCH_FILE
211
- case 'OutputChannel.open':
212
- case 'OutputChannel.close':
213
- return MODULE_OUTPUT_CHANNEL
214
- case 'RecentlyOpened.addPath':
215
- return MODULE_RECENTLY_OPENED
216
- default:
217
- throw new Error(`[shared-process] command ${commandId} not found`)
218
- }
219
- }
220
-
221
- const loadCommand = (command) => getOrLoadModule(getModuleId(command))
30
+ const loadCommand = (command) => getOrLoadModule(ModuleMap.getModuleId(command))
222
31
 
223
32
  export const register = (commandId, listener) => {
224
33
  commands[commandId] = listener
@@ -1,7 +1,6 @@
1
- import * as Command from '../Command/Command.js'
2
1
  import * as Configuration from './Configuration.js'
3
2
 
4
- export const __initialize = () => {
5
- Command.register(-1, Configuration.get)
6
- Command.register(-1, Configuration.set)
3
+ export const Commands = {
4
+ '-1': Configuration.get,
5
+ '-2': Configuration.set,
7
6
  }
@@ -2,12 +2,12 @@ import * as Developer from './Developer.js'
2
2
 
3
3
  // prettier-ignore
4
4
  export const Commands = {
5
- 'Developer.sharedProcessStartupPerformance': Developer.sharedProcessStartupPerformance,
6
- 'Developer.sharedProcessMemoryUsage': Developer.sharedProcessMemoryUsage,
7
5
  'Developer.allocateMemory': Developer.allocateMemory,
8
6
  'Developer.crashSharedProcess': Developer.crashSharedProcess,
9
7
  'Developer.createHeapSnapshot': Developer.createHeapSnapshot,
10
8
  'Developer.createProfile': Developer.createProfile,
11
- 'Developer.getNodeStartupTiming': Developer.getNodeStartupTiming,
12
9
  'Developer.getNodeStartupTime': Developer.getNodeStartupTiming,
10
+ 'Developer.getNodeStartupTiming': Developer.getNodeStartupTiming,
11
+ 'Developer.sharedProcessMemoryUsage': Developer.sharedProcessMemoryUsage,
12
+ 'Developer.sharedProcessStartupPerformance': Developer.sharedProcessStartupPerformance,
13
13
  }
@@ -6,17 +6,17 @@ import * as ExtensionHostKeyBindings from './ExtensionHostKeyBindings.js'
6
6
  // prettier-ignore
7
7
  export const Commands = {
8
8
 
9
- 'ExtensionHost.getCommands': ExtensionHostCommand.getCommandsIpc,
10
- 'ExtensionHostKeyBindings.getKeyBindings': ExtensionHostKeyBindings.getKeyBindings,
11
- 'ExtensionHost.start': ExtensionHost.start,
9
+
12
10
  'ExtensionHost.dispose': ExtensionHost.dispose,
11
+ 'ExtensionHost.getCommands': ExtensionHostCommand.getCommandsIpc,
13
12
  'ExtensionHost.send': ExtensionHost.send,
14
-
13
+ 'ExtensionHost.start': ExtensionHost.start,
14
+ 'ExtensionHostCompletion.execute': ExtensionHost.forward,
15
15
  'ExtensionHostExtension.activate': ExtensionHost.forward,
16
16
  'ExtensionHostExtension.disable': ExtensionHost.forward,
17
+ 'ExtensionHostKeyBindings.getKeyBindings': ExtensionHostKeyBindings.getKeyBindings,
17
18
  'ExtensionHostSemanticTokens.executeSemanticTokenProvider': ExtensionHost.forward,
18
19
  'ExtensionHostTextDocument.setLanguageId': ExtensionHost.forward,
19
- 'ExtensionHostTextDocument.syncIncremental': ExtensionHost.forward,
20
20
  'ExtensionHostTextDocument.syncFull': ExtensionHost.forward,
21
- 'ExtensionHostCompletion.execute': ExtensionHost.forward,
21
+ 'ExtensionHostTextDocument.syncIncremental': ExtensionHost.forward,
22
22
  }
@@ -5,15 +5,15 @@ import * as ExtensionHostLanguages from './ExtensionManagementLanguages.js'
5
5
 
6
6
  // prettier-ignore
7
7
  export const Commands = {
8
- 'ExtensionManagement.install': ExtensionManagement.install,
9
- 'ExtensionManagement.uninstall': ExtensionManagement.uninstall,
10
- 'ExtensionManagement.enable': ExtensionManagement.enable,
11
- 'ExtensionManagement.disable': ExtensionManagement.disable,
12
- 'ExtensionManagement.getAllExtensions': ExtensionManagement.getAllExtensions,
13
- 'ExtensionManagement.getExtensions': ExtensionManagement.getExtensions,
14
8
  'ExtensionHost.getColorThemeJson': ExtensionHostColorTheme.getColorThemeJson,
15
9
  'ExtensionHost.getColorThemeNames': ExtensionHostColorTheme.getColorThemeNames,
16
- 'ExtensionHost.getLanguages': ExtensionHostLanguages.getLanguages,
17
- 'ExtensionHost.getLanguageConfiguration': ExtensionHostLanguages.getLanguageConfiguration,
18
10
  'ExtensionHost.getIconThemeJson': ExtensionHostIconTheme.getIconTheme,
11
+ 'ExtensionHost.getLanguageConfiguration': ExtensionHostLanguages.getLanguageConfiguration,
12
+ 'ExtensionHost.getLanguages': ExtensionHostLanguages.getLanguages,
13
+ 'ExtensionManagement.disable': ExtensionManagement.disable,
14
+ 'ExtensionManagement.enable': ExtensionManagement.enable,
15
+ 'ExtensionManagement.getAllExtensions': ExtensionManagement.getAllExtensions,
16
+ 'ExtensionManagement.getExtensions': ExtensionManagement.getExtensions,
17
+ 'ExtensionManagement.install': ExtensionManagement.install,
18
+ 'ExtensionManagement.uninstall': ExtensionManagement.uninstall,
19
19
  }
@@ -0,0 +1,40 @@
1
+ import * as ModuleId from '../ModuleId/ModuleId.js'
2
+
3
+ export const load = (moduleId) => {
4
+ switch (moduleId) {
5
+ case ModuleId.ClipBoard:
6
+ return import('../ClipBoard/ClipBoard.ipc.js')
7
+ case ModuleId.Developer:
8
+ return import('../Developer/Developer.ipc.js')
9
+ case ModuleId.ExtensionHost:
10
+ return import('../ExtensionHost/ExtensionHost.ipc.js')
11
+ case ModuleId.ExtensionManagement:
12
+ return import('../ExtensionManagement/ExtensionManagement.ipc.js')
13
+ case ModuleId.FileSystem:
14
+ return import('../FileSystem/FileSystem.ipc.js')
15
+ case ModuleId.Native:
16
+ return import('../Native/Native.ipc.js')
17
+ case ModuleId.OutputChannel:
18
+ return import('../OutputChannel/OutputChannel.ipc.js')
19
+ case ModuleId.Platform:
20
+ return import('../Platform/Platform.ipc.js')
21
+ case ModuleId.Preferences:
22
+ return import('../Preferences/Preferences.ipc.js')
23
+ case ModuleId.RecentlyOpened:
24
+ return import('../RecentlyOpened/RecentlyOpened.ipc.js')
25
+ case ModuleId.Search:
26
+ return import('../Search/Search.ipc.js')
27
+ case ModuleId.SearchFile:
28
+ return import('../SearchFile/SearchFile.ipc.js')
29
+ case ModuleId.Terminal:
30
+ return import('../Terminal/Terminal.ipc.js')
31
+ case ModuleId.TextDocument:
32
+ return import('../TextDocument/TextDocument.ipc.js')
33
+ case ModuleId.WebSocketServer:
34
+ return import('../WebSocketServer/WebSocketServer.ipc.js')
35
+ case ModuleId.Workspace:
36
+ return import('../Workspace/Workspace.ipc.js')
37
+ default:
38
+ throw new Error(`module ${moduleId} not found`)
39
+ }
40
+ }
@@ -0,0 +1,16 @@
1
+ export const ClipBoard = 1
2
+ export const Developer = 2
3
+ export const ExtensionHost = 3
4
+ export const ExtensionManagement = 4
5
+ export const FileSystem = 5
6
+ export const Native = 6
7
+ export const OutputChannel = 7
8
+ export const Platform = 8
9
+ export const Preferences = 9
10
+ export const RecentlyOpened = 10
11
+ export const Search = 11
12
+ export const SearchFile = 12
13
+ export const Terminal = 13
14
+ export const TextDocument = 14
15
+ export const WebSocketServer = 15
16
+ export const Workspace = 16
@@ -0,0 +1,133 @@
1
+ import * as ModuleId from '../ModuleId/ModuleId.js'
2
+
3
+ export const getModuleId = (commandId) => {
4
+ switch (commandId) {
5
+ case 'ClipBoard.readFiles':
6
+ case 'ClipBoard.writeFiles':
7
+ return ModuleId.ClipBoard
8
+ case 'Developer.allocateMemory':
9
+ case 'Developer.crashSharedProcess':
10
+ case 'Developer.createHeapSnapshot':
11
+ case 'Developer.createProfile':
12
+ case 'Developer.getNodeStartupTime':
13
+ case 'Developer.getNodeStartupTiming':
14
+ case 'Developer.sharedProcessMemoryUsage':
15
+ case 'Developer.sharedProcessStartupPerformance':
16
+ return ModuleId.Developer
17
+ case 'EXtensionHostRename.executePrepareRename':
18
+ case 'ExtensionHost.dispose':
19
+ case 'ExtensionHost.enableExtension':
20
+ case 'ExtensionHost.executeCommand':
21
+ case 'ExtensionHost.executeTabCompletionProvider':
22
+ case 'ExtensionHost.format':
23
+ case 'ExtensionHost.getMemoryUsage':
24
+ case 'ExtensionHost.getSourceControlBadgeCount':
25
+ case 'ExtensionHost.getStatusBarItems':
26
+ case 'ExtensionHost.registerChangeListener':
27
+ case 'ExtensionHost.setWorkspacePath':
28
+ case 'ExtensionHost.sourceControlGetChangedFiles':
29
+ case 'ExtensionHost.start':
30
+ case 'ExtensionHostBraceCompletion.executeBraceCompletionProvider':
31
+ case 'ExtensionHostClosingTag.execute':
32
+ case 'ExtensionHostClosingTag.executeClosingTagProvider':
33
+ case 'ExtensionHostClosingTag.executeTypeDefinitionProvider':
34
+ case 'ExtensionHostCompletion.execute':
35
+ case 'ExtensionHostDefinition.executeDefinitionProvider':
36
+ case 'ExtensionHostDiagnostic.execute':
37
+ case 'ExtensionHostFileSystem.getPathSeparator':
38
+ case 'ExtensionHostFileSystem.readDirWithFileTypes':
39
+ case 'ExtensionHostFileSystem.readFile':
40
+ case 'ExtensionHostFileSystem.remove':
41
+ case 'ExtensionHostFileSystem.rename':
42
+ case 'ExtensionHostFileSystem.writeFile':
43
+ case 'ExtensionHostHover.execute':
44
+ case 'ExtensionHostImplementation.executeImplementationProvider':
45
+ case 'ExtensionHostKeyBindings.getKeyBindings':
46
+ case 'ExtensionHostLanguages.getLanguages':
47
+ case 'ExtensionHostManagement.activateAll':
48
+ case 'ExtensionHostManagement.enableExtensions':
49
+ case 'ExtensionHostOutput.getOutputChannels':
50
+ case 'ExtensionHostQuickPick.handleQuickPickResult':
51
+ case 'ExtensionHostReferences.executeReferenceProvider':
52
+ case 'ExtensionHostRename.executeRename':
53
+ case 'ExtensionHostSemanticTokens.executeSemanticTokenProvider':
54
+ case 'ExtensionHostSourceControl.acceptInput':
55
+ case 'ExtensionHostTextDocument':
56
+ case 'ExtensionHostTextDocument.setLanguageId':
57
+ case 'ExtensionHostTextDocument.syncFull':
58
+ case 'ExtensionHostTextDocument.syncIncremental':
59
+ case 'ExtensionHostTextDocument.syncInitial':
60
+ case 'ExtensionHostWorkspace.setWorkspacePath':
61
+ return ModuleId.ExtensionHost
62
+ case 'ExtensionHost.getColorThemeJson':
63
+ case 'ExtensionHost.getColorThemeNames':
64
+ case 'ExtensionHost.getColorThemes':
65
+ case 'ExtensionHost.getIconTheme':
66
+ case 'ExtensionHost.getIconThemeJson':
67
+ case 'ExtensionHost.getLanguageConfiguration':
68
+ case 'ExtensionHost.getLanguages':
69
+ case 'ExtensionManagement.disable':
70
+ case 'ExtensionManagement.enable':
71
+ case 'ExtensionManagement.getAllExtensions':
72
+ case 'ExtensionManagement.getExtensions':
73
+ case 'ExtensionManagement.install':
74
+ case 'ExtensionManagement.uninstall':
75
+ return ModuleId.ExtensionManagement
76
+ case 'FileSystem.chmod':
77
+ case 'FileSystem.copy':
78
+ case 'FileSystem.createFile':
79
+ case 'FileSystem.createFolder':
80
+ case 'FileSystem.ensureFile':
81
+ case 'FileSystem.getPathSeparator':
82
+ case 'FileSystem.mkdir':
83
+ case 'FileSystem.readDirWithFileTypes':
84
+ case 'FileSystem.readFile':
85
+ case 'FileSystem.remove':
86
+ case 'FileSystem.rename':
87
+ case 'FileSystem.writeFile':
88
+ return ModuleId.FileSystem
89
+ case 'Native.openFolder':
90
+ return ModuleId.Native
91
+ case 'OutputChannel.close':
92
+ case 'OutputChannel.open':
93
+ return ModuleId.OutputChannel
94
+ case 'Platform.getAppDir':
95
+ case 'Platform.getBuiltinExtensionsPath':
96
+ case 'Platform.getCacheDir':
97
+ case 'Platform.getCachedExtensionsPath':
98
+ case 'Platform.getConfigDir':
99
+ case 'Platform.getDataDir':
100
+ case 'Platform.getDisabledExtensionsPath':
101
+ case 'Platform.getExtensionsPath':
102
+ case 'Platform.getHomeDir':
103
+ case 'Platform.getLogsDir':
104
+ case 'Platform.getMarketplaceUrl':
105
+ case 'Platform.getRecentlyOpenedPath':
106
+ case 'Platform.getTestPath':
107
+ case 'Platform.getUserSettingsPath':
108
+ case 'Platform.setEnvironmentVariables':
109
+ return ModuleId.Platform
110
+ case 'Preferences.getAll':
111
+ return ModuleId.Preferences
112
+ case 'RecentlyOpened.addPath':
113
+ return ModuleId.RecentlyOpened
114
+ case 'Search.search':
115
+ return ModuleId.Search
116
+ case 'SearchFile.searchFile':
117
+ return ModuleId.SearchFile
118
+ case 'Terminal.create':
119
+ case 'Terminal.dispose':
120
+ case 'Terminal.resize':
121
+ case 'Terminal.write':
122
+ return ModuleId.Terminal
123
+ case 4820:
124
+ return ModuleId.TextDocument
125
+ case 5621:
126
+ return ModuleId.WebSocketServer
127
+ case 'Workspace.getHomeDir':
128
+ case 'Workspace.resolveRoot':
129
+ return ModuleId.Workspace
130
+ default:
131
+ throw new Error(`command ${commandId} not found`)
132
+ }
133
+ }
@@ -43,6 +43,6 @@ const close = (socket, id) => {
43
43
  }
44
44
 
45
45
  export const Commands = {
46
- 'OutputChannel.open': open,
47
46
  'OutputChannel.close': close,
47
+ 'OutputChannel.open': open,
48
48
  }
@@ -4,8 +4,8 @@ import * as Platform from '../Platform/Platform.js'
4
4
  export const Commands = {
5
5
  'Platform.getAppDir': Platform.getAppDir,
6
6
  'Platform.getBuiltinExtensionsPath': Platform.getBuiltinExtensionsPath,
7
- 'Platform.getCachedExtensionsPath': Platform.getCachedExtensionsPath,
8
7
  'Platform.getCacheDir': Platform.getCacheDir,
8
+ 'Platform.getCachedExtensionsPath': Platform.getCachedExtensionsPath,
9
9
  'Platform.getConfigDir': Platform.getConfigDir,
10
10
  'Platform.getDataDir': Platform.getDataDir,
11
11
  'Platform.getDisabledExtensionsPath': Platform.getDisabledExtensionsPath,
@@ -1,47 +1,29 @@
1
+ import { extensionHostPath } from '@lvce-editor/extension-host'
1
2
  import { homedir, tmpdir } from 'node:os'
2
3
  import { sep } from 'node:path'
3
- import { extensionHostPath } from '@lvce-editor/extension-host'
4
+ import { pathToFileURL } from 'node:url'
4
5
  import { xdgCache, xdgConfig, xdgData, xdgState } from 'xdg-basedir'
5
6
  import * as Path from '../Path/Path.js'
6
7
  import * as Root from '../Root/Root.js'
7
- import { pathToFileURL } from 'node:url'
8
8
 
9
- export const getApplicationName = () => {
10
- return 'lvce-oss'
11
- }
9
+ export const applicationName = 'lvce-oss'
12
10
 
13
- export const isWindows = () => {
14
- return process.platform === 'win32'
15
- }
11
+ export const isWindows = process.platform === 'win32'
16
12
 
17
- export const isMacOs = () => {
18
- return process.platform === 'darwin'
19
- }
13
+ export const isMacOs = process.platform === 'darwin'
20
14
 
21
- // TODO pass which version when building: insiders|oss|normal
15
+ export const dataDir = Path.join(xdgData || tmpdir(), applicationName)
22
16
 
23
- export const getDataDir = () => {
24
- return Path.join(xdgData || tmpdir(), getApplicationName())
25
- }
17
+ export const configDir = Path.join(xdgConfig || tmpdir(), applicationName)
26
18
 
27
- export const getConfigDir = () => {
28
- return Path.join(xdgConfig || tmpdir(), getApplicationName())
29
- }
19
+ export const cacheDir = Path.join(xdgCache || tmpdir(), applicationName)
30
20
 
31
- export const getCacheDir = () => {
32
- return Path.join(xdgCache || tmpdir(), getApplicationName())
33
- }
21
+ export const homeDir = isWindows ? '' : homedir()
34
22
 
35
- export const getHomeDir = () => {
36
- return isWindows() ? '' : homedir()
37
- }
38
-
39
- export const getAppDir = () => {
40
- return Root.root
41
- }
23
+ export const appDir = Root.root
42
24
 
43
25
  export const getExtensionsPath = () => {
44
- return Path.join(getDataDir(), 'extensions')
26
+ return Path.join(dataDir, 'extensions')
45
27
  }
46
28
 
47
29
  export const getBuiltinExtensionsPath = () => {
@@ -49,11 +31,11 @@ export const getBuiltinExtensionsPath = () => {
49
31
  }
50
32
 
51
33
  export const getDisabledExtensionsPath = () => {
52
- return Path.join(getDataDir(), 'disabled-extensions')
34
+ return Path.join(dataDir, 'disabled-extensions')
53
35
  }
54
36
 
55
37
  export const getCachedExtensionsPath = () => {
56
- return Path.join(getCacheDir(), 'cached-extensions')
38
+ return Path.join(cacheDir, 'cached-extensions')
57
39
  }
58
40
 
59
41
  export const getMarketplaceUrl = () => {
@@ -94,11 +76,11 @@ export const getStateDir = () => {
94
76
  }
95
77
 
96
78
  export const getLogsDir = () => {
97
- return Path.join(xdgState || tmpdir(), getApplicationName(), 'logs')
79
+ return Path.join(xdgState || tmpdir(), applicationName, 'logs')
98
80
  }
99
81
 
100
82
  export const getUserSettingsPath = () => {
101
- return Path.join(getConfigDir(), 'settings.json')
83
+ return Path.join(configDir, 'settings.json')
102
84
  }
103
85
 
104
86
  export const getExtensionHostPath = () => {
@@ -106,11 +88,11 @@ export const getExtensionHostPath = () => {
106
88
  }
107
89
 
108
90
  export const getRecentlyOpenedPath = () => {
109
- return Path.join(getCacheDir(), 'recently-opened.json')
91
+ return Path.join(cacheDir, 'recently-opened.json')
110
92
  }
111
93
 
112
94
  export const getDefaultSettingsPath = () => {
113
- return Path.join(Root.root, 'config', 'defaultSettings.json')
95
+ return Path.join(appDir, 'static', 'config', 'defaultSettings.json')
114
96
  }
115
97
 
116
98
  export const setEnvironmentVariables = (variables) => {
@@ -142,3 +124,23 @@ export const getTmpDir = () => {
142
124
  export const getOnlyExtensionPath = () => {
143
125
  return process.env.ONLY_EXTENSION
144
126
  }
127
+
128
+ export const getAppDir = () => {
129
+ return appDir
130
+ }
131
+
132
+ export const getCacheDir = () => {
133
+ return cacheDir
134
+ }
135
+
136
+ export const getConfigDir = () => {
137
+ return configDir
138
+ }
139
+
140
+ export const getDataDir = () => {
141
+ return dataDir
142
+ }
143
+
144
+ export const getHomeDir = () => {
145
+ return homeDir
146
+ }
@@ -17,7 +17,7 @@ const toSearchResult = (parsedLine) => ({
17
17
  // remove workaround when ripgrep is fixed
18
18
 
19
19
  // TODO no function call at toplevel!
20
- const useNice = !Platform.isWindows()
20
+ const useNice = !Platform.isWindows
21
21
  // TODO stats flag might not be necessary
22
22
  // TODO update client
23
23
  // TODO not always run nice, maybe configure nice via flag/options
@@ -40,6 +40,6 @@ const dispose = (socket, id) => {
40
40
  export const Commands = {
41
41
  'Terminal.create': create,
42
42
  'Terminal.dispose': dispose,
43
- 'Terminal.write': write,
44
43
  'Terminal.resize': resize,
44
+ 'Terminal.write': write,
45
45
  }
@@ -1,6 +1,6 @@
1
1
  import * as Workspace from './Workspace.js'
2
2
 
3
3
  export const Commands = {
4
- 'Workspace.resolveRoot': Workspace.resolveRoot,
5
4
  'Workspace.getHomeDir': Workspace.getHomeDir,
5
+ 'Workspace.resolveRoot': Workspace.resolveRoot,
6
6
  }