Skip to content

Commit 56a1ba1

Browse files
authored
Merge pull request #1028 from dpinol/filter-format-text-opts
Remove file format options to avoid JuliaFormatter crash
2 parents 2d6fa4e + 032b9ef commit 56a1ba1

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/requests/features.jl

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,7 @@ function textDocument_formatting_request(params::DocumentFormattingParams, serve
156156
config = get_juliaformatter_config(doc, server)
157157

158158
newcontent = try
159-
if config === nothing
160-
JuliaFormatter.format_text(get_text(doc); default_juliaformatter_config(params)...)
161-
else
162-
JuliaFormatter.format_text(get_text(doc); JuliaFormatter.kwargs(config)...)
163-
end
159+
format_text(get_text(doc), params, config)
164160
catch err
165161
return JSONRPC.JSONRPCError(
166162
-32000,
@@ -175,6 +171,17 @@ function textDocument_formatting_request(params::DocumentFormattingParams, serve
175171
return lsedits
176172
end
177173

174+
function format_text(text::AbstractString, params, config)
175+
if config === nothing
176+
return JuliaFormatter.format_text(text; default_juliaformatter_config(params)...)
177+
else
178+
# Some valid options in config file are not valid for format_text
179+
VALID_OPTIONS = fieldnames(JuliaFormatter.Options)
180+
config = filter(p -> in(first(p), VALID_OPTIONS), JuliaFormatter.kwargs(config))
181+
return JuliaFormatter.format_text(text; config...)
182+
end
183+
end
184+
178185
function textDocument_range_formatting_request(params::DocumentRangeFormattingParams, server::LanguageServerInstance, conn)
179186
doc = getdocument(server, URI2(params.textDocument.uri))
180187
cst = getcst(doc)
@@ -220,11 +227,7 @@ function textDocument_range_formatting_request(params::DocumentRangeFormattingPa
220227
config = get_juliaformatter_config(doc, server)
221228

222229
newcontent = try
223-
if config === nothing
224-
JuliaFormatter.format_text(text; default_juliaformatter_config(params)...)
225-
else
226-
JuliaFormatter.format_text(text; JuliaFormatter.kwargs(config)...)
227-
end
230+
format_text(text, params, config)
228231
catch err
229232
return JSONRPC.JSONRPCError(
230233
-33000,

0 commit comments

Comments
 (0)