Sha256: 947678862d55ac9ff9e503bfdd04081b3fa08f8fd9ca980d7148ecfc864c5af7

Contents?: true

Size: 924 Bytes

Versions: 7

Compression:

Stored size: 924 Bytes

Contents

# typed: strict
# frozen_string_literal: true

require "ruby_lsp/requests/support/rubocop_runner"
return unless defined?(::RubyLsp::Requests::Support::RuboCopRunner)

require "cgi"
require "singleton"

module RubyLsp
  module Requests
    module Support
      # :nodoc:
      class RuboCopDiagnosticsRunner
        extend T::Sig
        include Singleton

        sig { void }
        def initialize
          @runner = T.let(RuboCopRunner.new, RuboCopRunner)
        end

        sig { params(uri: String, document: Document).returns(T::Array[Support::RuboCopDiagnostic]) }
        def run(uri, document)
          filename = CGI.unescape(URI.parse(uri).path)
          # Invoke RuboCop with just this file in `paths`
          @runner.run(filename, document.source)

          @runner.offenses.map do |offense|
            Support::RuboCopDiagnostic.new(offense, uri)
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ruby-lsp-0.3.7 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb
ruby-lsp-0.3.6 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb
ruby-lsp-0.3.5 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb
ruby-lsp-0.3.4 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb
ruby-lsp-0.3.3 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb
ruby-lsp-0.3.2 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb
ruby-lsp-0.3.1 lib/ruby_lsp/requests/support/rubocop_diagnostics_runner.rb