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.
- Alphabetic
- By Inheritance
- MetalsHttpClient
- MetalsLanguageClient
- LanguageClient
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MetalsHttpClient(workspace: io.AbsolutePath, url: () ⇒ String, underlying: MetalsLanguageClient, triggerReload: () ⇒ Unit, charset: Charset, icons: Icons, time: Time, sh: ScheduledExecutorService)(implicit ec: ExecutionContext)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
applyEdit(arg0: ApplyWorkspaceEditParams): CompletableFuture[ApplyWorkspaceEditResponse]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def complete(exchange: HttpServerExchange): Unit
-
def
configuration(arg0: ConfigurationParams): CompletableFuture[java.util.List[AnyRef]]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
logMessage(message: MessageParams): Unit
- Definition Classes
- MetalsHttpClient → LanguageClient
-
def
metalsExecuteClientCommand(params: ExecuteCommandParams): Unit
- Definition Classes
- MetalsHttpClient → MetalsLanguageClient
-
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
- MetalsHttpClient → MetalsLanguageClient
-
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
- MetalsHttpClient → MetalsLanguageClient
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
publishDiagnostics(diagnostics: PublishDiagnosticsParams): Unit
- Definition Classes
- MetalsHttpClient → LanguageClient
-
def
registerCapability(arg0: RegistrationParams): CompletableFuture[Void]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()
- def renderHtml: String
-
def
semanticHighlighting(arg0: SemanticHighlightingParams): Unit
- Definition Classes
- LanguageClient
- Annotations
- @JsonNotification()
-
def
showMessage(params: MessageParams): Unit
- Definition Classes
- MetalsHttpClient → LanguageClient
-
def
showMessageRequest(params: ShowMessageRequestParams): CompletableFuture[MessageActionItem]
- Definition Classes
- MetalsHttpClient → LanguageClient
- def showMessagesFormatted(html: HtmlBuilder): Unit
-
def
shutdown(): Unit
- Definition Classes
- MetalsLanguageClient
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
telemetryEvent(value: Any): Unit
- Definition Classes
- MetalsHttpClient → LanguageClient
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
unregisterCapability(arg0: UnregistrationParams): CompletableFuture[Void]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
workspaceFolders(): CompletableFuture[java.util.List[WorkspaceFolder]]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()