c

scala.meta.internal.metals

MetalsHttpClient

final class MetalsHttpClient extends MetalsLanguageClient

Editor client that implement dialogue UIs like window/showMessageRequest.

Goals:

- enable editor plugin authors access all functionality within Metals even if the editor plugin only supports a limited set of LSP endpoints.

Non-goals:

- Pretty UI, the interface only needs to be functional, not look nice. - Become permanent/primary interface for ordinary users. The end goal is to enable users to interact with Metals from their editor, not via a browser.

The most popular LSP clients in editors like Vim and Sublime currently have limited support so that endpoints like window/showMessageRequest are ignored, with no workaround for users to interact with the Metals language server. This http client allows users in those editors to trigger server commands and respond to UI dialogues through their browser instead.

Linear Supertypes
MetalsLanguageClient, LanguageClient, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MetalsHttpClient
  2. MetalsLanguageClient
  3. LanguageClient
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MetalsHttpClient(workspace: io.AbsolutePath, url: () ⇒ String, underlying: MetalsLanguageClient, triggerReload: () ⇒ Unit, charset: Charset, icons: Icons, time: Time, sh: ScheduledExecutorService)(implicit ec: ExecutionContext)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def applyEdit(arg0: ApplyWorkspaceEditParams): CompletableFuture[ApplyWorkspaceEditResponse]
    Definition Classes
    LanguageClient
    Annotations
    @JsonRequest()
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  7. def complete(exchange: HttpServerExchange): Unit
  8. def configuration(arg0: ConfigurationParams): CompletableFuture[java.util.List[AnyRef]]
    Definition Classes
    LanguageClient
    Annotations
    @JsonRequest()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. def logMessage(message: MessageParams): Unit
    Definition Classes
    MetalsHttpClient → LanguageClient
  16. def metalsExecuteClientCommand(params: ExecuteCommandParams): Unit
    Definition Classes
    MetalsHttpClientMetalsLanguageClient
  17. def metalsSlowTask(params: MetalsSlowTaskParams): CompletableFuture[MetalsSlowTaskResult]

    Starts a long running task with no estimate for how long it will take to complete.

    Starts a long running task with no estimate for how long it will take to complete.

    - request cancellation from the server indicates that the task has completed - response with cancel=true indicates the client wishes to cancel the slow task

    Definition Classes
    MetalsHttpClientMetalsLanguageClient
  18. def metalsStatus(params: MetalsStatusParams): Unit

    Display message in the editor "status bar", which should be displayed somewhere alongside the buffer.

    Display message in the editor "status bar", which should be displayed somewhere alongside the buffer.

    The status bar should always be visible to the user.

    - VS Code: https://code.visualstudio.com/docs/extensionAPI/vscode-api#StatusBarItem

    Definition Classes
    MetalsHttpClientMetalsLanguageClient
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. def publishDiagnostics(diagnostics: PublishDiagnosticsParams): Unit
    Definition Classes
    MetalsHttpClient → LanguageClient
  23. def registerCapability(arg0: RegistrationParams): CompletableFuture[Void]
    Definition Classes
    LanguageClient
    Annotations
    @JsonRequest()
  24. def renderHtml: String
  25. def semanticHighlighting(arg0: SemanticHighlightingParams): Unit
    Definition Classes
    LanguageClient
    Annotations
    @JsonNotification()
  26. def showMessage(params: MessageParams): Unit
    Definition Classes
    MetalsHttpClient → LanguageClient
  27. def showMessageRequest(params: ShowMessageRequestParams): CompletableFuture[MessageActionItem]
    Definition Classes
    MetalsHttpClient → LanguageClient
  28. def showMessagesFormatted(html: HtmlBuilder): Unit
  29. def shutdown(): Unit
    Definition Classes
    MetalsLanguageClient
  30. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  31. def telemetryEvent(value: Any): Unit
    Definition Classes
    MetalsHttpClient → LanguageClient
  32. def toString(): String
    Definition Classes
    AnyRef → Any
  33. def unregisterCapability(arg0: UnregistrationParams): CompletableFuture[Void]
    Definition Classes
    LanguageClient
    Annotations
    @JsonRequest()
  34. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  37. def workspaceFolders(): CompletableFuture[java.util.List[WorkspaceFolder]]
    Definition Classes
    LanguageClient
    Annotations
    @JsonRequest()

Inherited from MetalsLanguageClient

Inherited from LanguageClient

Inherited from AnyRef

Inherited from Any

Ungrouped