@@ -20,6 +20,13 @@ import com.intellij.openapi.project.Project
20
20
import com.intellij.openapi.roots.ModuleRootManager
21
21
import com.intellij.openapi.vfs.VirtualFile
22
22
import com.intellij.platform.lsp.api.LspServerDescriptor
23
+ import com.intellij.platform.lsp.api.customization.LspCompletionCustomizer
24
+ import com.intellij.platform.lsp.api.customization.LspCompletionDisabled
25
+ import com.intellij.platform.lsp.api.customization.LspCustomization
26
+ import com.intellij.platform.lsp.api.customization.LspDiagnosticsCustomizer
27
+ import com.intellij.platform.lsp.api.customization.LspDiagnosticsDisabled
28
+ import com.intellij.platform.lsp.api.customization.LspHoverCustomizer
29
+ import com.intellij.platform.lsp.api.customization.LspHoverDisabled
23
30
import java.net.URI
24
31
import java.nio.file.Path
25
32
import org.eclipse.lsp4j.ClientCapabilities
@@ -49,9 +56,27 @@ internal class PyrightServerDescriptor(project: Project, module: Module?, privat
49
56
50
57
override val lspServerListener = Listener (project, module)
51
58
52
- override val lspHoverSupport = configurations.hover
53
- override val lspCompletionSupport = CompletionSupport (project).takeIf { configurations.completion }
54
- override val lspDiagnosticsSupport = DiagnosticsSupport (project).takeIf { configurations.diagnostics }
59
+ override val lspCustomization = object : LspCustomization () {
60
+
61
+ override val hoverCustomizer: LspHoverCustomizer
62
+ get() = when (configurations.hover) {
63
+ true -> super .hoverCustomizer
64
+ else -> LspHoverDisabled
65
+ }
66
+
67
+ override val completionCustomizer: LspCompletionCustomizer
68
+ get() = when (configurations.completion) {
69
+ true -> super .completionCustomizer
70
+ else -> LspCompletionDisabled
71
+ }
72
+
73
+ override val diagnosticsCustomizer: LspDiagnosticsCustomizer
74
+ get() = when (configurations.diagnostics) {
75
+ true -> DiagnosticsSupport (project)
76
+ else -> LspDiagnosticsDisabled
77
+ }
78
+
79
+ }
55
80
56
81
override val clientCapabilities: ClientCapabilities
57
82
get() = super .clientCapabilities.apply {
0 commit comments