| 1 | import { createConnection, createServer, createSimpleProject } from '@volar/language-server/node' |
| 2 | import { slidevLanguagePlugin } from './languagePlugin' |
| 3 | import { create as createPrettierService } from './prettierService' |
| 4 | import { create as createYamlService } from './volar-service-yaml' |
| 5 | |
| 6 | const connection = createConnection() |
| 7 | const server = createServer(connection) |
| 8 | |
| 9 | connection.onInitialize((params) => { |
| 10 | return server.initialize( |
| 11 | params, |
| 12 | createSimpleProject([slidevLanguagePlugin]), |
| 13 | [ |
| 14 | createYamlService({ |
| 15 | getLanguageSettings() { |
| 16 | return { |
| 17 | completion: true, |
| 18 | customTags: [], |
| 19 | format: false, |
| 20 | hover: true, |
| 21 | isKubernetes: false, |
| 22 | validate: true, |
| 23 | yamlVersion: '1.2', |
| 24 | parentSkeletonSelectedFirst: false, |
| 25 | disableDefaultProperties: true, |
| 26 | schemas: [ |
| 27 | { |
| 28 | priority: 3, |
| 29 | fileMatch: ['volar-embedded-content://frontmatter_0/**/*.md'], |
| 30 | uri: (new URL('../schema/headmatter.json', import.meta.url)).toString(), |
| 31 | }, |
| 32 | { |
| 33 | priority: 2, |
| 34 | fileMatch: ['volar-embedded-content://**/*.md'], |
| 35 | uri: (new URL('../schema/frontmatter.json', import.meta.url)).toString(), |
| 36 | }, |
| 37 | ], |
| 38 | } |
| 39 | }, |
| 40 | }), |
| 41 | createPrettierService(), |
| 42 | ], |
| 43 | ) |
| 44 | }) |
| 45 | |
| 46 | connection.onInitialized(server.initialized) |
| 47 | |
| 48 | connection.onShutdown(server.shutdown) |
| 49 | |
| 50 | connection.listen() |
| 51 |