Package

scala.meta.internal

mtags

Permalink

package mtags

Visibility
  1. Public
  2. All

Type Members

  1. final class ClasspathLoader extends AnyRef

    Permalink

    Utility to load relative paths from a classpath.

    Utility to load relative paths from a classpath.

    Provides similar functionality as URLClassLoader but uses idiomatic Scala data structures like AbsolutePath and Option[T] instead of java.net.URL and nulls.

  2. trait GlobalSymbolIndex extends AnyRef

    Permalink

    An index to lookup the definition of global symbols.

    An index to lookup the definition of global symbols.

    Only indexes plain Scala and Java source files, no compilation needed.

  3. final class Identifier extends AnyRef

    Permalink
  4. case class IndexError(file: io.AbsolutePath, cause: Throwable) extends Exception with NoStackTrace with Product with Serializable

    Permalink
  5. case class InvalidJarException(path: io.AbsolutePath, underlying: Throwable) extends Exception with Product with Serializable

    Permalink
  6. class JavaMtags extends MtagsIndexer

    Permalink
  7. trait Md5Fingerprints extends AnyRef

    Permalink

    Maps MD5 fingerprints to full text contents.

  8. final class Mtags extends AnyRef

    Permalink
  9. trait MtagsEnrichments extends AnyRef

    Permalink
  10. trait MtagsIndexer extends AnyRef

    Permalink
  11. final case class OnDemandSymbolIndex(toplevels: TrieMap[String, io.AbsolutePath] = TrieMap.empty, definitions: TrieMap[String, io.AbsolutePath] = TrieMap.empty, onError: PartialFunction[Throwable, Unit] = PartialFunction.empty) extends GlobalSymbolIndex with Product with Serializable

    Permalink

    An implementation of GlobalSymbolIndex with fast indexing and low memory usage.

    An implementation of GlobalSymbolIndex with fast indexing and low memory usage.

    Fast indexing is enabled by ScalaToplevelMtags, a custom parser that extracts only toplevel symbols from a Scala source file. Java source files don't need indexing because their file location can be inferred from the symbol with the limitation that it doesn't work for Java source files with multiple package-private top-level classes.

    Low memory usage is enabled by only storing "non-trivial toplevel" symbols. A symbol is "toplevel" when its owner is a package. A symbol is "non-trivial" when it doesn't match the path of the file it's defined in, for example Some# in Option.scala is non-trivial while Option# in Option.scala is trivial.

    toplevels

    keys are non-trivial toplevel symbols and values are the file the symbols are defined in.

    definitions

    keys are global symbols and the values are the files the symbols are defined in. Difference between toplevels and definitions is that toplevels contains only symbols generated by ScalaToplevelMtags while definitions contains only symbols generated by ScalaMtags.

  12. final class OpenClassLoader extends URLClassLoader

    Permalink
  13. final class OverloadDisambiguator extends AnyRef

    Permalink

    Utility to generate method symbol disambiguators according to SemanticDB spec.

    Utility to generate method symbol disambiguators according to SemanticDB spec.

    See https://scalameta.org/docs/semanticdb/specification.html#scala-symbol

  14. class ScalaMtags extends SimpleTraverser with MtagsIndexer

    Permalink
  15. class ScalaToplevelMtags extends MtagsIndexer

    Permalink

    Custom parser that extracts toplevel members from a Scala source file.

    Custom parser that extracts toplevel members from a Scala source file.

    Example input:

    package com.zoo
    class Animal { class Dog }
    object Park { trait Bench }

    emits the following symbols: com/zoo/Animal# and com/zoo/Park. The inner classes Animal.Dog and Park.Bench are ignored.

    This class exists for performance reasons. The ScalaMtags indexer provides the same functionality but it is much slower. Performance is important because toplevel symbol indexing is on a critical path when users import a new project.

  16. final case class SemanticdbClasspath(sourceroot: meta.AbsolutePath, classpath: meta.Classpath = Classpath(Nil), charset: Charset = StandardCharsets.UTF_8, fingerprints: Md5Fingerprints = Md5Fingerprints.empty) extends Semanticdbs with Product with Serializable

    Permalink
  17. trait Semanticdbs extends AnyRef

    Permalink
  18. final class Symbol extends AnyRef

    Permalink

    Represents a unique definitions such as a Scala val, object, class, or Java field/method.

    Represents a unique definitions such as a Scala val, object, class, or Java field/method.

    Examples:

    "scala/Predef.String#"
    "scala/collection/immutable/`::`#"
    "scala/Option#get()."
    "scala/Option.apply()."
  19. case class SymbolDefinition(querySymbol: Symbol, definitionSymbol: Symbol, path: io.AbsolutePath) extends Product with Serializable

    Permalink
  20. sealed abstract class TextDocumentLookup extends AnyRef

    Permalink

Value Members

  1. object BuildInfo extends Product with Serializable

    Permalink

    This object was generated by sbt-buildinfo.

  2. object ClasspathLoader

    Permalink
  3. object DefinitionAlternatives

    Permalink
  4. object InverseLegacyToken

    Permalink

    Utility to print helpful messages for parse errors.

  5. object JavaMtags

    Permalink
  6. object MD5

    Permalink
  7. object Md5Fingerprints

    Permalink
  8. object Mtags

    Permalink
  9. object MtagsEnrichments extends MtagsEnrichments

    Permalink
  10. object ScalaMtags

    Permalink
  11. object SemanticdbClasspath extends Serializable

    Permalink
  12. object Semanticdbs

    Permalink
  13. object Symbol

    Permalink
  14. object SymbolOccurrenceOrdering

    Permalink
  15. object TextDocumentLookup

    Permalink

Ungrouped