1
1
import { ReactElement , useEffect , useRef } from 'react'
2
- import { createLanguageClientManager , LanguageServerConfig , StatusChangeEvent } from '@codingame/monaco-languageclient-wrapper'
2
+ import { createLanguageClientManager , StatusChangeEvent } from '@codingame/monaco-languageclient-wrapper'
3
3
import { LanguageClientManager } from '@codingame/monaco-languageclient-wrapper/dist/languageClient'
4
4
5
5
export interface LanguageClientProps {
6
- languageServerConfig : LanguageServerConfig
6
+ id : string
7
7
languageServerUrl : string
8
8
getSecurityToken : ( ) => Promise < string >
9
9
libraryUrls ?: string [ ]
10
10
onError ?: ( error : Error ) => void
11
- onDidChangeStatus ?: ( status : StatusChangeEvent ) => void ,
12
- configuration ?: any
11
+ onDidChangeStatus ?: ( status : StatusChangeEvent ) => void
13
12
}
14
13
15
14
const defaultLibraryUrls : string [ ] = [ ]
16
15
17
16
function LanguageClient ( {
18
- languageServerConfig ,
17
+ id ,
19
18
languageServerUrl,
20
19
getSecurityToken,
21
20
libraryUrls = defaultLibraryUrls ,
22
21
onError,
23
- onDidChangeStatus,
24
- configuration
22
+ onDidChangeStatus
25
23
} : LanguageClientProps ) : ReactElement | null {
26
24
const onErrorRef = useRef < ( error : Error ) => void > ( )
27
25
const onDidChangeStatusRef = useRef < ( status : StatusChangeEvent ) => void > ( )
28
26
const languageClientRef = useRef < LanguageClientManager > ( )
29
27
useEffect ( ( ) => {
30
- console . info ( `Starting language server for language ${ languageServerConfig . language } ` )
31
- const languageClient = createLanguageClientManager ( languageServerUrl , getSecurityToken , languageServerConfig , libraryUrls )
28
+ console . info ( `Starting language server for language ${ id } ` )
29
+ const languageClient = createLanguageClientManager ( id , languageServerUrl , getSecurityToken , libraryUrls )
32
30
languageClientRef . current = languageClient
33
- const errorDisposable = languageClient . onError ( ( error ) => {
31
+ const errorDisposable = languageClient . onError ( ( error : Error ) => {
34
32
if ( onErrorRef . current != null ) {
35
33
onErrorRef . current ( error )
36
34
}
37
35
} )
38
- const statusChangeDisposable = languageClient . onDidChangeStatus ( status => {
36
+ const statusChangeDisposable = languageClient . onDidChangeStatus ( ( status : StatusChangeEvent ) => {
39
37
if ( onDidChangeStatusRef . current != null ) {
40
38
onDidChangeStatusRef . current ( status )
41
39
}
@@ -53,13 +51,7 @@ function LanguageClient ({
53
51
console . error ( 'Unable to dispose language client' , err )
54
52
} )
55
53
}
56
- } , [ getSecurityToken , languageServerConfig , languageServerUrl , libraryUrls ] )
57
-
58
- useEffect ( ( ) => {
59
- if ( configuration != null ) {
60
- languageClientRef . current ! . updateConfiguration ( configuration )
61
- }
62
- } , [ configuration ] )
54
+ } , [ getSecurityToken , id , languageServerUrl , libraryUrls ] )
63
55
64
56
useEffect ( ( ) => {
65
57
onErrorRef . current = onError
0 commit comments