def process
need_catalog = false
to_create = []
to_delete = []
params['changes'].each do |change|
if change['type'] == CREATED
to_create << change['uri']
need_catalog = true
elsif change['type'] == CHANGED
next if host.open?(change['uri'])
to_create << change['uri']
need_catalog = true
elsif change['type'] == DELETED
to_delete << change['uri']
need_catalog = true
else
set_error Solargraph::LanguageServer::ErrorCodes::INVALID_PARAMS, "Unknown change type ##{change['type']} for #{uri_to_file(change['uri'])}"
end
end
host.create *to_create
host.delete *to_delete
host.catalog if need_catalog
end