Package

scala.meta.internal

pc

Permalink

package pc

Visibility
  1. Public
  2. All

Type Members

  1. trait AutoImports extends AnyRef

    Permalink
  2. final class AutoImportsProvider extends AnyRef

    Permalink
  3. case class AutoImportsResultImpl(packageName: String, edits: java.util.List[TextEdit]) extends AutoImportsResult with Product with Serializable

    Permalink
  4. trait Compat extends AnyRef

    Permalink
  5. class CompilerAccess extends AnyRef

    Permalink

    Manages the lifecycle and multi-threaded access to the presentation compiler.

    Manages the lifecycle and multi-threaded access to the presentation compiler.

    - automatically restarts the compiler on miscellaneous crashes. - handles cancellation via Thread.interrupt() to stop the compiler during typechecking, for functions that support cancellation.

  6. class CompilerJobQueue extends AnyRef

    Permalink

    A thread pool executor to execute jobs on a single thread in a last-in-first-out order.

    A thread pool executor to execute jobs on a single thread in a last-in-first-out order.

    The last-in-first-out order is important because it's common for Metals users to send multiple completion/hover/signatureHelp requests in rapid succession. In these situations, we care most about responding to the latest request even if it comes at the expense of ignoring older requests.

    To restrict unsafe multi-threaded access to the presentation compiler we schedule jobs to run on a single thread. We use this executor instead of the presentation compiler thread (see MetalsGlobalThread) for the following reasons: - we limit the usage of sleep/notify/wait/synchronized primitives. - some blocking compiler APIs like ask[T](op: () => T) don't seem to work as advertised. - it's preferable to work on top of CompletableFuture[T] instead of the custom Response[T] from the compiler, which is required to execute tasks on the presentation compiler thread:

    • CompletableFuture[T] can be passed via Java-only reflection APIs in mtags-interfaces.
    • CompletableFuture[T] can be returned to lsp4j, for non-blocking JSON-RPC request handling.
    • CompletableFuture[T] can be converted to Scala Futures for easier composition.
  7. case class CompletionItemData(symbol: String, target: String, kind: Integer = null) extends Product with Serializable

    Permalink
  8. class CompletionItemResolver extends AnyRef

    Permalink
  9. sealed abstract class CompletionListKind extends AnyRef

    Permalink
  10. class CompletionProvider extends AnyRef

    Permalink
  11. case class DefinitionResultImpl(symbol: String, locations: java.util.List[Location]) extends DefinitionResult with Product with Serializable

    Permalink
  12. class HoverProvider extends AnyRef

    Permalink
  13. case class Keyword(name: String, isExpression: Boolean = false, isBlock: Boolean = false, isTemplate: Boolean = false, isPackage: Boolean = false, isMethodBody: Boolean = false, isDefinition: Boolean = false, commitCharacter: Option[String] = None) extends Product with Serializable

    Permalink
  14. trait Keywords extends AnyRef

    Permalink
  15. class MetalsGlobal extends Global with Completions with ArgCompletions with FilenameCompletions with InterpolatorCompletions with MatchCaseCompletions with NewCompletions with NoneCompletions with ScaladocCompletions with TypeCompletions with OverrideCompletions with Signatures with Compat with GlobalProxy with AutoImports with Keywords with WorkspaceSymbolSearch

    Permalink
  16. case class Params(labels: Seq[String], kind: Kind) extends Product with Serializable

    Permalink
  17. class PcDefinitionProvider extends AnyRef

    Permalink
  18. case class PresentationCompilerConfigImpl(debug: Boolean = false, _parameterHintsCommand: Option[String] = None, _completionCommand: Option[String] = None, _symbolPrefixes: Map[String, String] = ..., overrideDefFormat: OverrideDefFormat = OverrideDefFormat.Ascii, isCompletionItemDetailEnabled: Boolean = true, isCompletionItemDocumentationEnabled: Boolean = true, isHoverDocumentationEnabled: Boolean = true, snippetAutoIndent: Boolean = true, isSignatureHelpDocumentationEnabled: Boolean = true, isCompletionSnippetsEnabled: Boolean = true, isCompletionItemResolve: Boolean = true, timeoutDelay: Long = 20, timeoutUnit: TimeUnit = TimeUnit.SECONDS) extends PresentationCompilerConfig with Product with Serializable

    Permalink
  19. case class ScalaPresentationCompiler(buildTargetIdentifier: String = "", classpath: collection.Seq[Path] = Nil, options: List[String] = Nil, search: SymbolSearch = EmptySymbolSearch, ec: ExecutionContextExecutor = ExecutionContext.global, sh: Option[ScheduledExecutorService] = None, config: PresentationCompilerConfig = PresentationCompilerConfigImpl()) extends PresentationCompiler with Product with Serializable

    Permalink
  20. class SemanticdbTextDocumentProvider extends AnyRef

    Permalink
  21. class SignatureHelpProvider extends AnyRef

    Permalink
  22. trait Signatures extends AnyRef

    Permalink
  23. sealed abstract class SymbolSearchCandidate extends AnyRef

    Permalink
  24. trait WorkspaceSymbolSearch extends AnyRef

    Permalink

Value Members

  1. object CompilerJobQueue

    Permalink
  2. object CompilerThrowable

    Permalink
  3. object CompletionFuzzy extends Fuzzy

    Permalink

    A custom version of fuzzy search designed for code completions.

  4. object CompletionItemData extends Serializable

    Permalink
  5. object CompletionListKind

    Permalink
  6. object ConsoleLogger

    Permalink
  7. object DefinitionResultImpl extends Serializable

    Permalink
  8. object EmptySymbolSearch extends SymbolSearch

    Permalink
  9. object HoverMarkup

    Permalink
  10. object Identifier

    Permalink
  11. object IdentifierComparator extends Comparator[CharSequence]

    Permalink

    A comparator for identifier like "Predef" or "Function10".

    A comparator for identifier like "Predef" or "Function10".

    Differences from the default string comparator: - works with CharSequences like compiler Name - orders numbers by their numerical value instead of lexicographical

    • Good: Function1, Function2, Function10
    • Bad: Function1, Function10, Function2
  12. object InterruptException

    Permalink

    Extractor for exceptions that are caused by Thread.interrupt().

  13. object Keyword extends Serializable

    Permalink
  14. object LogMessages

    Permalink
  15. object MemberOrdering

    Permalink
  16. object Params extends Serializable

    Permalink
  17. object SymbolSearchCandidate

    Permalink
  18. package completions

    Permalink

Ungrouped