module Solargraph::LanguageServer::Host::Dispatch
def explicit_library_for uri
-
(Library, nil)-
Parameters:
-
uri(String) --
Raises:
-
(FileNotFoundError)- if the source could not be attached.
def explicit_library_for uri filename = UriHelpers.uri_to_file(uri) libraries.each do |lib| if lib.contain?(filename) lib.attach sources.find(uri) if sources.include?(uri) return lib end end nil end
def generic_library
-
(Library)-
def generic_library @generic_library ||= Solargraph::Library.new end
def generic_library_for uri
-
(Library)-
Parameters:
-
uri(String) --
Raises:
-
(FileNotFoundError)- if the source could not be attached.
def generic_library_for uri generic_library.attach sources.find(uri) generic_library.catalog generic_library end
def implicit_library_for uri
-
(Library, nil)-
Parameters:
-
uri(String) --
Raises:
-
(FileNotFoundError)- if the source could not be attached.
def implicit_library_for uri filename = UriHelpers.uri_to_file(uri) libraries.each do |lib| if filename.start_with?(lib.workspace.directory) lib.attach sources.find(uri) lib.catalog return lib end end nil end
def libraries
-
(Array-)
def libraries @libraries ||= [] end
def library_for uri
-
(Library)-
Parameters:
-
uri(String) --
def library_for uri result = explicit_library_for(uri) || implicit_library_for(uri) || generic_library_for(uri) result.attach sources.find(uri) if sources.include?(uri) result end
def sources
-
(Sources)-
def sources @sources ||= begin src = Sources.new src.add_observer self, :update_libraries src end end
def update_libraries uri
-
(void)-
Parameters:
-
uri(String) --
def update_libraries uri src = sources.find(uri) libraries.each do |lib| lib.merge src if lib.contain?(src.filename) end diagnoser.schedule uri end