diff --git a/src/languageserverinstance.jl b/src/languageserverinstance.jl index e0ee101c..df96e8f8 100644 --- a/src/languageserverinstance.jl +++ b/src/languageserverinstance.jl @@ -38,6 +38,7 @@ mutable struct LanguageServerInstance symbol_results_channel::Channel{Any} symbol_store::Dict{Symbol,SymbolServer.ModuleStore} symbol_extends::Dict{SymbolServer.VarRef,Vector{SymbolServer.VarRef}} + symbol_fieldtypemap::Dict{Symbol, Vector{SymbolServer.VarRef}} symbol_store_ready::Bool format_options::DocumentFormat.FormatOptions @@ -69,6 +70,7 @@ mutable struct LanguageServerInstance Channel(Inf), deepcopy(SymbolServer.stdlibs), SymbolServer.collect_extended_methods(SymbolServer.stdlibs), + StaticLint.fieldname_type_map(SymbolServer.stdlibs), false, DocumentFormat.FormatOptions(), true, @@ -163,7 +165,7 @@ function trigger_symbolstore_reload(server::LanguageServerInstance) server.err_handler ) server.symbol_extends = SymbolServer.collect_extended_methods(server.symbol_store) - + server.symbol_fieldtypemap = StaticLint.fieldname_type_map(server.symbol_store) server.number_of_outstanding_symserver_requests -= 1 if server.number_of_outstanding_symserver_requests==0 diff --git a/src/staticlint.jl b/src/staticlint.jl index f32707fc..7f4167ba 100644 --- a/src/staticlint.jl +++ b/src/staticlint.jl @@ -1,4 +1,4 @@ -import StaticLint: hasfile, canloadfile, loadfile, setfile, getfile, getsymbolserver, getsymbolextendeds +import StaticLint: hasfile, canloadfile, loadfile, setfile, getfile, getsymbolserver, getsymbolextendeds, getsymbolfieldtypemap import StaticLint: getpath, getroot, setroot, getcst, setcst, scopepass, getserver, setserver hasfile(server::LanguageServerInstance, path::String) = hasdocument(server, URI2(filepath2uri(path))) function canloadfile(server::LanguageServerInstance, path::String) @@ -33,6 +33,7 @@ end getfile(server::LanguageServerInstance, path::String) = getdocument(server, URI2(filepath2uri(path))) getsymbolserver(server::LanguageServerInstance) = server.symbol_store getsymbolextendeds(server::LanguageServerInstance) = server.symbol_extends +getsymbolfieldtypemap(server::LanguageServerInstance) = server.symbol_fieldtypemap getpath(d::Document) = d.path function setpath(d::Document, path::String)