Sha256: 2e72aa04ff4a4fd714e08452f2d92e3732829c3da27dd26fd063c46ff4a146dc
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
# typed: strict # frozen_string_literal: true module RubyLsp module DependencyDetector class << self extend T::Sig sig { returns(String) } def detected_formatter # NOTE: Intentionally no $ at end, since we want to match rubocop-shopify, etc. if direct_dependency?(/^rubocop/) "rubocop" elsif direct_dependency?(/^syntax_tree$/) "syntax_tree" else "none" end end sig { returns(String) } def detected_test_library # A Rails app may have a dependency on minitest, but we would instead want to use the Rails test runner provided # by ruby-lsp-rails. if direct_dependency?(/^rails$/) "rails" # NOTE: Intentionally ends with $ to avoid mis-matching minitest-reporters, etc. in a Rails app. elsif direct_dependency?(/^minitest$/) "minitest" elsif direct_dependency?(/^test-unit/) "test-unit" elsif direct_dependency?(/^rspec/) "rspec" else "unknown" end end sig { returns(T::Boolean) } def typechecker? direct_dependency?(/^sorbet/) || direct_dependency?(/^sorbet-static-and-runtime/) end sig { params(gem_pattern: Regexp).returns(T::Boolean) } def direct_dependency?(gem_pattern) Bundler.with_original_env { Bundler.default_gemfile } && Bundler.locked_gems.dependencies.keys.grep(gem_pattern).any? rescue Bundler::GemfileNotFound false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby-lsp-0.8.1 | lib/ruby_lsp/requests/support/dependency_detector.rb |