@@ -168,149 +168,91 @@ To develop with upstream Volar.js modules, you can setup workspace with https://
168
168
169
169
## High Level System Overview
170
170
171
+ <!-- Editor link: https://www.mermaidchart.com/app/projects/c62d8944-0e06-47f0-a8de-f89a7378490f/diagrams/91fd02c0-5c91-4f72-a8b4-7af21b7c4d86/version/v0.1/edit -->
172
+
171
173
``` mermaid
172
174
flowchart LR
173
- %% IDEs
174
- VSC[VSCode]
175
- COC[coc.nvim]
176
- NEO[Neovim]
177
- VIM[vim-lsp]
178
- SUBLIME[Sublime]
179
- ATOM[Atom]
180
- EMACS[Emacs]
181
- NOVA[Nova]
182
- LAPCE[Lapce]
183
-
184
- %% Language Clients
185
- COC_VUE[yaegassy/coc-volar]
186
- NEO_VUE[neovim/nvim-lspconfig]
187
- VIM_VUE[mattn/vim-lsp-settings]
188
- SUBLIME_VUE[sublimelsp/LSP-volar]
189
- ATOM_VUE[kabiaa/atom-ide-volar]
190
- EMACS_VUE[jadestrong/lsp-volar]
191
- NOVA_VUE[tommasongr/nova-vue]
192
- LAPCE_VUE[xiaoxin-sky/lapce-vue]
193
-
194
- click COC_VUE "https://github.com/yaegassy/coc-volar"
195
- click NEO_VUE "https://github.com/neovim/nvim-lspconfig"
196
- click VIM_VUE "https://github.com/mattn/vim-lsp-settings"
197
- click SUBLIME_VUE "https://github.com/sublimelsp/LSP-volar"
198
- click ATOM_VUE "https://github.com/kabiaa/atom-ide-volar"
199
- click EMACS_VUE "https://github.com/jadestrong/lsp-volar"
200
- click NOVA_VUE "https://github.com/tommasongr/nova-vue"
201
- click LAPCE_VUE "https://github.com/xiaoxin-sky/lapce-vue"
202
-
203
- %% Volar - Extensions
204
- VSC_VUE[vscode-vue]
205
- VSC_TSVP[vscode-typescript-vue-plugin]
206
-
207
- click VSC_VUE "https://github.com/vuejs/language-tools/tree/master/extensions/vscode"
208
- click VSC_TSVP "https://github.com/vuejs/language-tools/tree/master/extensions/vscode-typescript-plugin"
209
-
210
- %% Volar - Packages
211
- VOLAR_VUE_SERVER["@vue/language-server"]
212
- VOLAR_VUE_TS["@vue/typescript"]
213
- VOLAR_VUE_CORE["@vue/language-core"]
214
- VOLAR_VUE_SERVICE["@vue/language-service"]
215
- VOLAR_PUG_SERVICE["@volar/pug-language-service"]
216
- VOLAR_TS_SERVICE["@volar/typescript-language-service"]
217
- VUE_TSC[vue-tsc]
218
- VUE_COMPONENT_META[vue-component-meta]
219
- TS_VUE_PLUGIN[typescript-vue-plugin]
220
-
221
- click VOLAR_VUE_SERVER "https://github.com/vuejs/language-tools/tree/master/packages/language-server"
222
- click VOLAR_VUE_TS "https://github.com/vuejs/language-tools/tree/master/packages/typescript"
223
- click VOLAR_VUE_CORE "https://github.com/vuejs/language-tools/tree/master/packages/language-core"
224
- click VOLAR_VUE_SERVICE "https://github.com/vuejs/language-tools/tree/master/packages/language-service"
225
- click VUE_TSC "https://github.com/vuejs/language-tools/tree/master/packages/tsc"
226
- click VUE_COMPONENT_META "https://github.com/vuejs/language-tools/tree/master/packages/component-meta"
227
- click TS_VUE_PLUGIN "https://github.com/vuejs/language-tools/tree/master/packages/typescript-plugin"
228
- click VOLAR_PUG_SERVICE "https://github.com/vuejs/language-tools/tree/master/packages/pug-language-service"
229
- click VOLAR_TS_SERVICE "https://github.com/vuejs/language-tools/tree/master/packages/typescript-language-service"
230
-
231
- %% External Packages
232
- HTML_SERVICE[vscode-html-languageservice]
233
- CSS_SERVICE[vscode-css-languageservice]
234
- JSON_SERVICE[vscode-json-languageservice]
235
- %% TS[typescript]
236
- VSC_TS[vscode.typescript-language-features]
237
- VUE_REPL["@vue/repl"]
238
- MONACO_VOLAR[Kingwl/monaco-volar]
239
- %% VITE_PLUGIN_CHECKER[fi3ework/vite-plugin-checker]
240
- %% COMPILE_VUE_SFC[leonzalion/compile-vue-sfc]
241
-
242
- click HTML_SERVICE "https://github.com/microsoft/vscode-html-languageservice"
243
- click CSS_SERVICE "https://github.com/microsoft/vscode-css-languageservice"
244
- click JSON_SERVICE "https://github.com/microsoft/vscode-json-languageservice"
245
- click TS "https://github.com/microsoft/TypeScript"
246
- click VSC_TS "https://github.com/microsoft/vscode/tree/main/packages/typescript-language-features"
247
- click VUE_REPL "https://github.com/vuejs/repl"
248
- click MONACO_VOLAR "https://github.com/Kingwl/monaco-volar"
249
- %% click VITE_PLUGIN_CHECKER "https://github.com/fi3ework/vite-plugin-checker"
250
- %% click COMPILE_VUE_SFC "https://github.com/leonzalion/compile-vue-sfc"
251
-
252
- subgraph VUE_CLIENTS[Language Clients]
253
- direction LR
254
- VUE_CLIENT_SEMANTIC[Semantic Features]
255
- VUE_CLIENT_SYNTACTIC[Syntactic Features]
256
- end
257
-
258
- click VUE_CLIENT_SEMANTIC "https://github.com/vuejs/language-tools/discussions/393#discussioncomment-1213736"
259
- click VUE_CLIENT_SYNTACTIC "https://github.com/vuejs/language-tools/discussions/393#discussioncomment-1213736"
260
-
261
- subgraph Embedded Language Services
262
- direction LR
263
- VOLAR_TS_SERVICE
264
- VOLAR_PUG_SERVICE
265
- HTML_SERVICE
266
- CSS_SERVICE
267
- JSON_SERVICE
268
- end
269
-
270
- VSC --> VSC_VUE
271
- COC --> COC_VUE
272
- NEO --> NEO_VUE
273
- SUBLIME --> SUBLIME_VUE
274
- ATOM --> ATOM_VUE
275
- EMACS --> EMACS_VUE
276
- NOVA --> NOVA_VUE
277
- VIM --> VIM_VUE
278
- LAPCE --> LAPCE_VUE
279
-
280
- VSC_VUE --> VUE_CLIENTS
281
- COC_VUE --> VUE_CLIENTS
282
- NEO_VUE --> VUE_CLIENTS
283
- SUBLIME_VUE --> VUE_CLIENTS
284
- ATOM_VUE --> VUE_CLIENTS
285
- EMACS_VUE --> VUE_CLIENTS
286
- NOVA_VUE --> VUE_CLIENTS
287
- VIM_VUE --> VUE_CLIENTS
288
- LAPCE_VUE --> VUE_CLIENTS
289
-
290
- VUE_CLIENTS -- Language Server Protocol --> VOLAR_VUE_SERVER
291
-
292
- VSC --> VSC_TS
293
- VSC_TS --> VSC_TSVP
294
- VSC_TSVP --> TS_VUE_PLUGIN
295
- VOLAR_VUE_SERVER --> VOLAR_VUE_SERVICE
296
- VUE_TSC --> VOLAR_VUE_TS
297
- %% VITE_PLUGIN_CHECKER --> VUE_TSC
298
- %% COMPILE_VUE_SFC --> VUE_TSC
299
- TS_VUE_PLUGIN --> VOLAR_VUE_TS
300
-
301
- VUE_REPL --> MONACO_VOLAR
302
- MONACO_VOLAR --> VOLAR_VUE_SERVICE
303
-
304
- %% VOLAR_VUE_TS --> TS
305
- VUE_COMPONENT_META --> VOLAR_VUE_CORE
306
- VOLAR_VUE_TS --> VOLAR_VUE_CORE
307
-
308
- VOLAR_VUE_SERVICE --> VOLAR_VUE_CORE
309
- VOLAR_VUE_SERVICE --> VOLAR_TS_SERVICE
310
- VOLAR_VUE_SERVICE --> VOLAR_PUG_SERVICE
311
- VOLAR_VUE_SERVICE --> HTML_SERVICE
312
- VOLAR_VUE_SERVICE --> CSS_SERVICE
313
- VOLAR_VUE_SERVICE --> JSON_SERVICE
175
+ subgraph subGraph1["Language Service Plugins"]
176
+ direction LR
177
+ VOLAR_TS_SERVICE["TypeScript"]
178
+ VOLAR_PUG_SERVICE["Pug"]
179
+ HTML_SERVICE["HTML"]
180
+ CSS_SERVICE["CSS"]
181
+ JSON_SERVICE["JSON"]
182
+ EMMET_SERVICE["Emmet"]
183
+ end
184
+ subgraph subGraph2["VSCode Extensions"]
185
+ direction TB
186
+ VSC_VUE["Vue Extension"]
187
+ VSC_TS["TypeScript Extension"]
188
+ end
189
+ subgraph subgraph_iuodo42oc["Third Party Tools"]
190
+ NUXT_META["nuxt-component-meta"]
191
+ STORYBOOK["storybook"]
192
+ CHECKER["vite-plugin-checker"]
193
+ DTS["vite-plugin-dts"]
194
+ SFC_PLAYGROUND["@vue/sfc-playground"]
195
+ n6["@vue/repl"]
196
+ nv["@vue/sfc-playground"]
197
+ end
198
+ subgraph subGraph4["IDEs"]
199
+ direction TB
200
+ VSC["VSCode"]
201
+ COC["coc.nvim"]
202
+ NEO["Neovim"]
203
+ SUBLIME["Sublime"]
204
+ ATOM["Atom"]
205
+ EMACS["Emacs"]
206
+ NOVA["Nova"]
207
+ VIM["vim-lsp"]
208
+ LAPCE["Lapce"]
209
+ n4["WebStorm"]
210
+ end
211
+ VSC -- Plug-in --> VSC_VUE
212
+ VSC -- Built-in --> VSC_TS
213
+ COC -- Plug-in --> COC_VUE["coc-volar"]
214
+ NEO -- Plug-in --> NEO_VUE["nvim-lspconfig"]
215
+ SUBLIME -- Plug-in --> SUBLIME_VUE["LSP-volar"]
216
+ ATOM -- Plug-in --> ATOM_VUE["atom-ide-volar"]
217
+ EMACS -- Plug-in --> EMACS_VUE["lsp-volar"]
218
+ NOVA -- Plug-in --> NOVA_VUE["nova-vue"]
219
+ VIM -- Plug-in --> VIM_VUE["vim-lsp-settings"]
220
+ LAPCE -- Plug-in --> LAPCE_VUE["lapce-vue"]
221
+ VOLAR_VUE_SERVER["@vue/language-server"] -. Depends on ..-> VOLAR_VUE_SERVICE["@vue/language-service"]
222
+ VUE_TSC["vue-tsc"] -..-> VOLAR_VUE_CORE["@vue/language-core"]
223
+ VUE_COMPONENT_META["vue-component-meta"] -. Depends on ..-> VOLAR_VUE_CORE
224
+ VOLAR_VUE_SERVICE -. Depends on ..-> VOLAR_VUE_CORE & subGraph1
225
+ TS_VUE_PLUGIN["@vue/typescript-plugin"] -. Depends on ..-> VOLAR_VUE_CORE
226
+ VSC_VUE <-- LSP --> VOLAR_VUE_SERVER
227
+ COC_VUE <-- LSP --> VOLAR_VUE_SERVER
228
+ NEO_VUE <-- LSP --> VOLAR_VUE_SERVER
229
+ SUBLIME_VUE <-- LSP --> VOLAR_VUE_SERVER
230
+ ATOM_VUE <-- LSP --> VOLAR_VUE_SERVER
231
+ EMACS_VUE <-- LSP --> VOLAR_VUE_SERVER
232
+ NOVA_VUE <-- LSP --> VOLAR_VUE_SERVER
233
+ VIM_VUE <-- LSP --> VOLAR_VUE_SERVER
234
+ LAPCE_VUE <-- LSP --> VOLAR_VUE_SERVER
235
+ VSC_VUE -. Depends on .-> TS_VUE_PLUGIN
236
+ VSC_VUE -. Provides @vue/typescript-plugin .-> VSC_TS
237
+ NUXT_META -. Depends on ..-> VUE_COMPONENT_META
238
+ STORYBOOK -. Depends on ..-> VUE_COMPONENT_META
239
+ CHECKER -. Depends on ..-> VUE_TSC
240
+ DTS -. Depends on ..-> VUE_TSC
241
+ SFC_PLAYGROUND -. Depends on ..-> VOLAR_VUE_SERVICE
242
+ n4 <-- LSP --> VOLAR_VUE_SERVER
243
+ n6 -. Depends on .-> VOLAR_VUE_SERVICE
244
+ nv -. Depends on .-> n6
245
+ style VSC_VUE fill:#FFD600
246
+ style VOLAR_VUE_SERVER fill:#FFD600
247
+ style VOLAR_VUE_SERVICE fill:#FFD600
248
+ style VUE_TSC fill:#FFD600
249
+ style VOLAR_VUE_CORE fill:#FFD600
250
+ style VUE_COMPONENT_META fill:#FFD600
251
+ style subGraph1 fill:none
252
+ style TS_VUE_PLUGIN fill:#FFD600
253
+ style subgraph_iuodo42oc fill:none
254
+ style subGraph2 fill:none
255
+ style subGraph4 fill:none
314
256
```
315
257
316
258
---
0 commit comments