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. class JavaMtags extends MtagsIndexer

    Permalink
  6. trait Md5Fingerprints extends AnyRef

    Permalink

    Maps MD5 fingerprints to full text contents.

  7. final class Mtags extends AnyRef

    Permalink
  8. trait MtagsIndexer extends AnyRef

    Permalink
  9. 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.

  10. final class OpenClassLoader extends URLClassLoader

    Permalink
  11. 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

  12. class ScalaMtags extends SimpleTraverser with MtagsIndexer

    Permalink
  13. 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.

  14. 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
  15. trait Semanticdbs extends AnyRef

    Permalink
  16. 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()."
  17. case class SymbolDefinition(querySymbol: Symbol, definitionSymbol: Symbol, path: io.AbsolutePath) extends Product with Serializable

    Permalink
  18. sealed abstract class TextDocumentLookup extends AnyRef

    Permalink

Value Members

  1. object DefinitionAlternatives

    Permalink
  2. object InverseLegacyToken

    Permalink

    Utility to print helpful messages for parse errors.

  3. object JavaMtags

    Permalink
  4. object ListFiles

    Permalink
  5. object MD5

    Permalink
  6. object Md5Fingerprints

    Permalink
  7. object Mtags

    Permalink
  8. object MtagsEnrichments

    Permalink
  9. object ScalaMtags

    Permalink
  10. object SemanticdbClasspath extends Serializable

    Permalink
  11. object Semanticdbs

    Permalink
  12. object Symbol

    Permalink
  13. object SymbolOccurrenceOrdering

    Permalink
  14. object TextDocumentLookup

    Permalink

Ungrouped