Sha256: 684739876b2f4cdb916232a33c7788e0d93b060db3f53f3d0678f42da0d5c785
Contents?: true
Size: 1.59 KB
Versions: 7
Compression:
Stored size: 1.59 KB
Contents
# typed: strict # frozen_string_literal: true return unless defined?(RubyLsp::Requests::Support::RuboCopRunner) module RubyLsp module Requests module Support class RuboCopFormatter extend T::Sig include Formatter sig { void } def initialize @diagnostic_runner = T.let(RuboCopRunner.new, RuboCopRunner) # -a is for "--auto-correct" (or "--autocorrect" on newer versions of RuboCop) @format_runner = T.let(RuboCopRunner.new("-a"), RuboCopRunner) end sig { override.params(uri: URI::Generic, document: RubyDocument).returns(T.nilable(String)) } def run_formatting(uri, document) filename = T.must(uri.to_standardized_path || uri.opaque) # Invoke RuboCop with just this file in `paths` @format_runner.run(filename, document.source) @format_runner.formatted_source end sig do override.params( uri: URI::Generic, document: RubyDocument, ).returns(T.nilable(T::Array[Interface::Diagnostic])) end def run_diagnostic(uri, document) filename = T.must(uri.to_standardized_path || uri.opaque) # Invoke RuboCop with just this file in `paths` @diagnostic_runner.run(filename, document.source) @diagnostic_runner.offenses.map do |offense| Support::RuboCopDiagnostic.new( document, offense, uri, ).to_lsp_diagnostic(@diagnostic_runner.config_for_working_directory) end end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems