Sha256: 9b77bdd64ef9f3f945f118fb62b8dc6ee1adc331b1c522f3d1ad3158574ebb8a
Contents?: true
Size: 1.48 KB
Versions: 5
Compression:
Stored size: 1.48 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: Document).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: Document, ).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 end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems