Sha256: 3d7cb46eb4ec426a046c7c02f0ccf713077a64e9c19317dac1e9cd8c274b5cdb
Contents?: true
Size: 1.97 KB
Versions: 8
Compression:
Stored size: 1.97 KB
Contents
#!/usr/bin/env ruby # frozen_string_literal: true # This executable checks if all automatic LSP requests run successfully on every Ruby file under the current directory require "ruby_lsp/load_sorbet" $LOAD_PATH.unshift(File.expand_path("../lib", __dir__)) require "ruby_lsp/internal" T::Utils.run_all_sig_blocks files = Dir.glob("#{Dir.pwd}/**/*.rb") puts "Verifying that all automatic LSP requests execute successfully. This may take a while..." errors = {} server = RubyLsp::Server.new(test_mode: true) files.each_with_index do |file, index| uri = URI("file://#{file}") server.process_message({ method: "textDocument/didOpen", params: { textDocument: { uri: uri, text: File.read(file), version: 1 } }, }) # Executing any of the automatic requests will execute all of them, so here we just pick one server.process_message({ id: 1, method: "textDocument/documentSymbol", params: { textDocument: { uri: uri } }, }) result = server.pop_response errors[file] = result.message if result.is_a?(RubyLsp::Error) ensure server.process_message({ method: "textDocument/didClose", params: { textDocument: { uri: uri } } }) server.pop_response print("\033[M\033[0KCompleted #{index + 1}/#{files.length}") unless ENV["CI"] end puts "\n" # Indexing puts "Verifying that indexing executes successfully. This may take a while..." index = RubyIndexer::Index.new indexables = RubyIndexer.configuration.indexables indexables.each_with_index do |indexable, i| result = Prism.parse(File.read(indexable.full_path)) collector = RubyIndexer::Collector.new(index, result, indexable.full_path) collector.collect(result.value) rescue => e errors[indexable.full_path] = e ensure print("\033[M\033[0KIndexed #{i + 1}/#{indexables.length}") unless ENV["CI"] end puts "\n" if errors.empty? puts "All operations completed successfully!" exit end puts <<~ERRORS Errors while executing: #{errors.map { |file, error| "#{file}: #{error.message}" }.join("\n")} ERRORS exit!
Version data entries
8 entries across 8 versions & 1 rubygems