Skip to content

Commit b5f7cbc

Browse files
authored
Merge pull request #2 from CodinGame/add-configuration-prop
Add configuration prop
2 parents 25e47e3 + 1bf4603 commit b5f7cbc

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@codingame/monaco-languageclient-react",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "Monaco Editor React component",
55
"scripts": {
66
"build": "tsc"

src/LanguageClient.tsx

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,35 @@
11
import { ReactElement, useEffect, useRef } from 'react'
22
import { createLanguageClientManager, LanguageServerConfig, StatusChangeEvent } from '@codingame/monaco-languageclient-wrapper'
3+
import { LanguageClientManager } from '@codingame/monaco-languageclient-wrapper/dist/languageClient'
34

45
export interface LanguageClientProps {
56
languageServerConfig: LanguageServerConfig
67
languageServerUrl: string
78
getSecurityToken: () => Promise<string>
89
libraryUrls?: string[]
910
onError?: (error: Error) => void
10-
onDidChangeStatus?: (status: StatusChangeEvent) => void
11+
onDidChangeStatus?: (status: StatusChangeEvent) => void,
12+
configuration?: any
1113
}
1214

15+
const defaultLibraryUrls: string[] = []
16+
1317
function LanguageClient ({
1418
languageServerConfig,
1519
languageServerUrl,
1620
getSecurityToken,
17-
libraryUrls,
21+
libraryUrls = defaultLibraryUrls,
1822
onError,
19-
onDidChangeStatus
23+
onDidChangeStatus,
24+
configuration
2025
}: LanguageClientProps): ReactElement | null {
2126
const onErrorRef = useRef<(error: Error) => void>()
2227
const onDidChangeStatusRef = useRef<(status: StatusChangeEvent) => void>()
28+
const languageClientRef = useRef<LanguageClientManager>()
2329
useEffect(() => {
2430
console.info(`Starting language server for language ${languageServerConfig.language}`)
25-
const languageClient = createLanguageClientManager(languageServerUrl, getSecurityToken, languageServerConfig, libraryUrls ?? [])
31+
const languageClient = createLanguageClientManager(languageServerUrl, getSecurityToken, languageServerConfig, libraryUrls)
32+
languageClientRef.current = languageClient
2633
const errorDisposable = languageClient.onError((error) => {
2734
if (onErrorRef.current != null) {
2835
onErrorRef.current(error)
@@ -48,6 +55,12 @@ function LanguageClient ({
4855
}
4956
}, [getSecurityToken, languageServerConfig, languageServerUrl, libraryUrls])
5057

58+
useEffect(() => {
59+
if (configuration != null) {
60+
languageClientRef.current!.updateConfiguration(configuration)
61+
}
62+
}, [configuration])
63+
5164
useEffect(() => {
5265
onErrorRef.current = onError
5366
}, [onError])
@@ -59,8 +72,4 @@ function LanguageClient ({
5972
return null
6073
}
6174

62-
LanguageClient.defaultProps = {
63-
libraryUrls: []
64-
}
65-
6675
export default LanguageClient

0 commit comments

Comments
 (0)