Skip to content

Commit c587b03

Browse files
authored
Merge pull request #498 from renkun-ken/fix-diagnostics
Unpublish diagnostics when disabled
2 parents 1fa3008 + 3d18494 commit c587b03

6 files changed

+20
-5
lines changed

R/handlers-general.R

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
on_initialize <- function(self, id, params) {
77
trace <- params$trace
88
if (!is.null(trace) && trace %in% c("messages", "verbose")) {
9-
lsp_settings$set("debug", TRUE)
9+
lsp_settings$set("trace", TRUE)
1010
}
1111

1212
logger$info("session: ", list(

R/handlers-protocol.R

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
protocol_set_trace <- function(self, id, params) {
1+
protocol_set_trace <- function(self, params) {
22
value <- params$value
33
if (value == "off") {
4-
lsp_settings$set("debug", FALSE)
4+
lsp_settings$set("trace", FALSE)
55
} else {
6-
lsp_settings$set("debug", TRUE)
6+
lsp_settings$set("trace", TRUE)
77
}
88
}

R/handlers-workspace.R

+6
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ workspace_did_change_configuration <- function(self, params) {
2626
logger$info("settings ", settings)
2727

2828
lsp_settings$update_from_workspace(settings)
29+
30+
if (!lsp_settings$get("diagnostics")) {
31+
for (uri in self$workspace$documents$keys()) {
32+
diagnostics_callback(self, uri, NULL, list())
33+
}
34+
}
2935
}
3036

3137
#' `workspace/didChangeWatchedFiles` notification handler

R/languagebase.R

+1
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ LanguageBase <- R6::R6Class("LanguageBase",
158158
},
159159

160160
handle_notification = function(notification) {
161+
logger$info("receive notification: ", notification)
161162
method <- notification$method
162163
params <- notification$params
163164
if (method %in% names(self$notification_handlers)) {

R/log.R

+8-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,14 @@ Logger <- R6::R6Class("Logger",
5454
log_write(..., log_file = lsp_settings$get("log_file"))
5555
},
5656
info = function(...) {
57-
if (lsp_settings$get("debug")) log_write(..., log_file = lsp_settings$get("log_file"))
57+
if (lsp_settings$get("debug") || lsp_settings$get("trace")) {
58+
log_write(..., log_file = lsp_settings$get("log_file"))
59+
}
60+
},
61+
trace = function(...) {
62+
if (lsp_settings$get("trace")) {
63+
log_write(..., log_file = lsp_settings$get("log_file"))
64+
}
5865
}
5966
)
6067
)

R/settings.R

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ Settings <- R6::R6Class("Settings",
22
private = list(
33
settings = list(
44
debug = FALSE,
5+
trace = FALSE,
56
log_file = NULL,
67
diagnostics = TRUE,
78
rich_documentation = TRUE,

0 commit comments

Comments
 (0)