Skip to content

Commit 273e8c4

Browse files
authored
Merge pull request #165 from CodinGame/service-doc
Service description
2 parents aeb8995 + 6f8d23d commit 273e8c4

File tree

1 file changed

+56
-24
lines changed

1 file changed

+56
-24
lines changed

README.md

Lines changed: 56 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -122,33 +122,65 @@ await initialize({
122122

123123
Additionally, this library exposes 23 modules that include the vscode version of some services (with some glue to make it work with monaco):
124124

125-
- Extensions (included by default): `vscode/service-override/extensions`
126-
- Files (included by default): `vscode/service-override/files`
127-
- Notifications: `vscode/service-override/notifications`
128-
- Dialogs: `vscode/service-override/dialogs`
129-
- Model: `vscode/service-override/model`
130-
- Editor: `vscode/service-override/editor`
131-
- Configuration: `vscode/service-override/configuration`
132-
- Keybindings: `vscode/service-override/keybindings`
133-
- Languages: `vscode/service-override/languages`
134-
- Textmate: `vscode/service-override/textmate`
135-
- Snippets: `vscode/service-override/snippets`
136-
- VSCode themes: `vscode/service-override/theme`
137-
- Audio cue: `vscode/service-override/audioCue`
138-
- Debug: `vscode/service-override/debug`
139-
- Preferences: `vscode/service-override/preferences`
140-
- Views: `vscode/service-override/views` (Is exclusive with `editor`, do not use both at the same time)
141-
- QuickAccess: `vscode/service-override/quickaccess`
142-
- Output: `vscode/service-override/output`
143-
- Terminal: `vscode/service-override/terminal`
144-
- Search: `vscode/service-override/search`
145-
- Markers: `vscode/service-override/markers`
146-
- Language detection worker: `vscode/service-override/languageDetectionWorker`
147-
- Storage: `vscode/service-override/storage`
125+
- **Extensions** (included by default): `vscode/service-override/extensions`
126+
- Support for VSCode extensions. A worker configuration can be past to it:
127+
- Then, everything runs in one worker, where extensions run in an iframe, with all the implications (can be created by the bundler directly). The worker script is expected to be hosted on a separate domain.
128+
- **Files** (included by default): `vscode/service-override/files`
129+
- It adds the memory filesystem for `file://` files, but also adds the support for lazy loaded extension files. It adds separate memory user files (e.g. config, keybindings), cache files and log files.
130+
- **QuickAccess** (included by default): `vscode/service-override/quickaccess`
131+
- Enables the quickaccess menu in the editor (press F1 or ctrl+shift+p)
132+
- **Notifications**: `vscode/service-override/notifications`
133+
- This services enables vscode notifications you usually find in the bottom right corner.
134+
- **Dialogs**: `vscode/service-override/dialogs`
135+
- Enable vscode modal dialogs. It allows users to select an action to do. Those actions are exposed to the vscode API. Additionally, this service can be used by the language client to delegate questions to the user.
136+
- **Model**: `vscode/service-override/model`
137+
- This service creates and takes care of model references. For example:
138+
- Create model if content is unknown
139+
- Count references
140+
- Destroy models when they are no longer used
141+
- **Editor**: `vscode/service-override/editor`
142+
- Enable editor support. This is usually needed when working with the language server protocol. Without enabling the editor service, it will only be able to resolve the currently open model (only internal file links will work).
143+
- **Views**: `vscode/service-override/views`
144+
- Enable full views support. Is exclusive with the `editor` service. Do not use both services at the same time.
145+
- **Configuration**: `vscode/service-override/configuration`
146+
- Allows to change the configuration of not only the editors, but every part of vscode. The language client for instance uses it to send the requested configuration to the server. The default configuration service already allows to change the configuration. This service overrides makes it rely on a user configuration file (with json schema, overridable by language including all vscode features).
147+
- **Keybindings**: `vscode/service-override/keybindings`
148+
- Enables platform specific keybindings and make it rely on a user definded keybindings configuration (if available).
149+
- **Languages**: `vscode/service-override/languages`
150+
- Enable language support. It's like the standalone service with 2 differences:
151+
- It handle the language extension point (getting languages from vscode extensions)
152+
- It triggers the `onLanguage:${language}` event (to load vscode extension listening to those events)
153+
- **Textmate**: `vscode/service-override/textmate`
154+
- Allows to use textmate grammars. Depends on *themes* service. vscode extensions use textmate grammars exclusively for highlighting. Once this is enabled monarch grammars can no longer be loaded by monaco-editor.
155+
- **Themes**: `vscode/service-override/theme`
156+
- Allows to use VSCode themes.
157+
- **Snippets**: `vscode/service-override/snippets`
158+
- Add snippet extension point (register vscode extension snippets)
159+
- **Audio cue**: `vscode/service-override/audioCue`
160+
- If enabled the editor may provides audible hints
161+
- **Debug**: `vscode/service-override/debug`
162+
- Activate debugging support
163+
- **Preferences**: `vscode/service-override/preferences`
164+
- Allow to read and write preferences
165+
- **Output**: `vscode/service-override/output`
166+
- Output panel support. *Hint*: It only makes sense to enable it when *Views* service is used.
167+
- **Terminal**: `vscode/service-override/terminal`
168+
- Terminal panel support. *Hint*: It only makes sense to enable it when *Views* service is used.
169+
- **Search**: `vscode/service-override/search`
170+
- search panel support. *Hint*: It only makes sense to enable it when *Views* service is used.
171+
- **Markers**: `vscode/service-override/markers`
172+
- It adds the problems panel tab. *Hint*: It only makes sense to enable it when *Views* service is used.
173+
- **Language detection worker**: `vscode/service-override/languageDetectionWorker`
174+
- When opening an untitled model or a file without extension or if vscode is unable to guess the language simply by the file extension or by reading the first line. Then it will use tensorflow in a worker to try to guess the most probable language (here we are only able to rely on the open source model).
175+
- **Storage**: `vscode/service-override/storage`
176+
- Define your own storage or use the default BrowserStorageService. The storage service is used in many places either as a cache or as a user preference store. For instance:
177+
- Current loaded theme is stored in there to be loaded faster on start.
178+
- Every panel/view positions are stored in there.
148179

149180
Usage:
150181

151182
```typescript
183+
import * as vscode from 'vscode'
152184
import { initialize } from 'vscode/services'
153185
import getEditorServiceOverride from 'vscode/service-override/editor'
154186
import getConfigurationServiceOverride, { updateUserConfiguration, configurationRegistry } from 'vscode/service-override/configuration'
@@ -158,7 +190,7 @@ await initialize({
158190
// Open a new editor here and return it
159191
// It will be called when for instance the user ctrl+click on an import
160192
}),
161-
...getConfigurationServiceOverride(monaco.Uri.file('/tmp/'))
193+
...getConfigurationServiceOverride(vscode.Uri.file('/tmp/'))
162194
})
163195

164196
updateUserConfiguration(`{

0 commit comments

Comments
 (0)