Sha256: 64a932760f9d1cc32af4a89694a271176d7c7c4922183caa5cebf76e70d9d7d1

Contents?: true

Size: 1.24 KB

Versions: 15

Compression:

Stored size: 1.24 KB

Contents

# typed: strict
# frozen_string_literal: true

begin
  require "syntax_tree"
  require "syntax_tree/cli"
rescue LoadError
  return
end

require "singleton"

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

        sig { void }
        def initialize
          @options =
            T.let(
              begin
                opts = SyntaxTree::CLI::Options.new
                opts.parse(SyntaxTree::CLI::ConfigFile.new.arguments)
                opts
              end,
              SyntaxTree::CLI::Options,
            )
        end

        sig { override.params(uri: URI::Generic, document: Document).returns(T.nilable(String)) }
        def run(uri, document)
          relative_path = Pathname.new(T.must(uri.to_standardized_path || uri.opaque))
            .relative_path_from(T.must(WORKSPACE_URI.to_standardized_path))
          return if @options.ignore_files.any? { |pattern| File.fnmatch(pattern, relative_path) }

          SyntaxTree.format(
            document.source,
            @options.print_width,
            options: @options.formatter_options,
          )
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/ruby-lsp-0.12.1/lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/ruby-lsp-0.12.1/lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/ruby-lsp-0.12.1/lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
study_line-0.1.3 vendor/bundle/ruby/3.2.0/gems/ruby-lsp-0.12.1/lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
study_line-0.1.2 vendor/bundle/ruby/3.2.0/gems/ruby-lsp-0.12.1/lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
study_line-0.1.1 vendor/bundle/ruby/3.2.0/gems/ruby-lsp-0.12.1/lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.12.5 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.12.4 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.12.3 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.12.2 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.12.1 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.12.0 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.11.2 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.11.1 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb
ruby-lsp-0.11.0 lib/ruby_lsp/requests/support/syntax_tree_formatting_runner.rb