final class MetalsHttpClient extends DelegatingLanguageClient
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 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
- DelegatingLanguageClient
- MetalsLanguageClient
- DecorationClient
- TreeViewClient
- LanguageClient
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MetalsHttpClient(workspace: io.AbsolutePath, url: () ⇒ String, initial: MetalsLanguageClient, triggerReload: () ⇒ Unit, charset: Charset, icons: Icons, time: Time, sh: ScheduledExecutorService, clientConfig: ClientConfiguration)(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(params: ApplyWorkspaceEditParams): CompletableFuture[ApplyWorkspaceEditResponse]
- Definition Classes
- DelegatingLanguageClient → LanguageClient
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def completeCommand(exchange: HttpServerExchange): Unit
-
def
configuration(arg0: ConfigurationParams): CompletableFuture[java.util.List[AnyRef]]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()
-
def
createProgress(arg0: WorkDoneProgressCreateParams): CompletableFuture[Void]
- 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[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 → DelegatingLanguageClient → LanguageClient
-
def
metalsExecuteClientCommand(params: ExecuteCommandParams): Unit
- Definition Classes
- MetalsHttpClient → DelegatingLanguageClient → MetalsLanguageClient
-
def
metalsInputBox(params: MetalsInputBoxParams): CompletableFuture[MetalsInputBoxResult]
Opens an input box to ask the user for input.
Opens an input box to ask the user for input.
- returns
the user provided input. The future can be cancelled, meaning the input box should be dismissed in the editor.
- Definition Classes
- DelegatingLanguageClient → MetalsLanguageClient
-
def
metalsPublishDecorations(params: PublishDecorationsParams): Unit
- Definition Classes
- MetalsHttpClient → DelegatingLanguageClient → DecorationClient
-
def
metalsQuickPick(params: MetalsQuickPickParams): CompletableFuture[MetalsQuickPickResult]
Opens an menu to ask the user to pick one of the suggested options.
Opens an menu to ask the user to pick one of the suggested options.
- returns
the user provided pick. The future can be cancelled, meaning the input box should be dismissed in the editor.
- Definition Classes
- DelegatingLanguageClient → 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 → DelegatingLanguageClient → 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 → DelegatingLanguageClient → MetalsLanguageClient
-
def
metalsTreeViewDidChange(params: TreeViewDidChangeParams): Unit
- Definition Classes
- DelegatingLanguageClient → TreeViewClient
-
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
notifyProgress(arg0: ProgressParams): Unit
- Definition Classes
- LanguageClient
- Annotations
- @JsonNotification()
-
def
publishDiagnostics(diagnostics: PublishDiagnosticsParams): Unit
- Definition Classes
- DelegatingLanguageClient → LanguageClient
-
final
def
refreshModel(): Unit
- Definition Classes
- MetalsLanguageClient
-
def
registerCapability(params: RegistrationParams): CompletableFuture[Void]
- Definition Classes
- DelegatingLanguageClient → LanguageClient
- def renderHtml: String
-
def
showMessage(params: MessageParams): Unit
- Definition Classes
- MetalsHttpClient → DelegatingLanguageClient → LanguageClient
-
final
def
showMessage(messageType: MessageType, message: String): Unit
- Definition Classes
- MetalsLanguageClient
-
def
showMessageRequest(params: ShowMessageRequestParams): CompletableFuture[MessageActionItem]
- Definition Classes
- MetalsHttpClient → DelegatingLanguageClient → LanguageClient
- def showMessagesFormatted(html: HtmlBuilder): Unit
-
def
shutdown(): Unit
- Definition Classes
- DelegatingLanguageClient → MetalsLanguageClient
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
telemetryEvent(value: Any): Unit
- Definition Classes
- DelegatingLanguageClient → LanguageClient
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
var
underlying: MetalsLanguageClient
- Definition Classes
- DelegatingLanguageClient
-
def
unregisterCapability(params: UnregistrationParams): CompletableFuture[Void]
- Definition Classes
- DelegatingLanguageClient → LanguageClient
-
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
- @throws( ... ) @native()
-
def
workspaceFolders(): CompletableFuture[java.util.List[WorkspaceFolder]]
- Definition Classes
- LanguageClient
- Annotations
- @JsonRequest()
Deprecated Value Members
-
def
semanticHighlighting(arg0: SemanticHighlightingParams): Unit
- Definition Classes
- LanguageClient
- Annotations
- @Deprecated @JsonNotification()
- Deprecated