All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalafix.internal.v1.ValidatedArgs.scala Maven / Gradle / Ivy

The newest version!
package scalafix.internal.v1

import scala.meta.AbsolutePath
import scala.meta.Input
import scala.meta.Source
import scala.meta.internal.inputs.XtensionInput
import scala.meta.internal.io.FileIO
import scala.meta.internal.symtab.SymbolTable
import scala.meta.io.RelativePath
import scala.meta.parsers.Parsed

import scalafix.internal.config.FilterMatcher
import scalafix.internal.config.ScalafixConfig
import scalafix.internal.diff.DiffDisable

case class ValidatedArgs(
    args: Args,
    symtab: SymbolTable,
    rules: Rules,
    config: ScalafixConfig,
    classLoader: ClassLoader,
    sourceroot: AbsolutePath,
    pathReplace: AbsolutePath => AbsolutePath,
    diffDisable: DiffDisable,
    callback: DelegatingMainCallback,
    semanticdbFileFilter: FilterMatcher
) {

  def input(file: AbsolutePath): Input =
    Input.VirtualFile(file.toString(), FileIO.slurp(file, args.charset))

  def parse(input: Input): Parsed[Source] = {
    import scala.meta._
    val dialect = config.dialectForFile(input.syntax)
    dialect(input).parse[Source]
  }

  def matches(path: RelativePath): Boolean =
    Args.baseMatcher.matches(path.toNIO) && {
      args.exclude.forall(!_.matches(path.toNIO))
    } && {
      // Respect -P:semanticdb:exclude and -P:semanticdb:include
      semanticdbFileFilter.eq(FilterMatcher.matchEverything) || {
        semanticdbFileFilter.matches(path.toString())
      }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy