redhat-developer / vscode-rsp-ui

A unified UI for all RSP servers and RSP server-providers to integrate with
Eclipse Public License 2.0
38 stars 21 forks source link

Runtime Server Protocol UI

Visual Studio Marketplace Downloads Gitter Build Status License

A Visual Studio Code extension that provides a unified UI for any RSP (Runtime Server Protocol) provider to contribute their RSP implementation to.

Warning: Not a standalone extension

This extension on its own provides no support for any specific runtimes. If you install only this extension, the views and actions may appear not to function.

To be used properly, this extension requires other contributing extensions that provide implementations that start or stop specific RSP instances and are capable of managing specific server or runtime types.

Commands and features

 screencast

This extension supports a number of commands for interacting with supported server adapters; these are accessible via the command menu (Cmd+Shift+P on macOS or Ctrl+Shift+P on Windows and Linux) and may be bound to keys in the normal way.

Available Commands

Extension Settings

This extension contributes the following settings:

Server Parameters

To change Server Parameters, right-click on the server you want to edit and select Edit Server

Global Server Parameters

These settings are valid for all servers

Provisional Global Server Parameters

These settings may eventually be supported by all servers, but these settings are Provisional and may be changed before becoming official API.

Provisional Project Structure Details

The following project structure options may not be supported by all server types and deployment types. These details are Provisional and may be changed before becoming official API.

A workspace project may choose to have a .rsp/rsp.assembly.json file which may dictate very simple packaging instructions. Many server types will attempt to use this packaging file for both incremental and full publish events, so that the user experience can be improved without requiring full builds with a user's chosen build system for each change.

Attempts will also be made to interpret a project's .settings/org.eclipse.wst.common.component file, though current integration issues with jdt.ls make this not very useful at the moment.

.rsp/rsp.assembly.json file structure

An example packaging file may look like this:

{
    "mappings": [
        {
            "source-path": "target/classes/",
            "deploy-path": "/WEB-INF/classes/"
        },
        {
            "source-path": "target/rob-hello/",
            "deploy-path": "/"
        },
        {
            "source-path": "src/main/resources/",
            "deploy-path": "/"
        },
        {
            "source-path": "src/main/webapp/",
            "deploy-path": "/"
        },
    ]
}

A single top-level element name mappings has a value of an array of individual mappings. Each mapping has a source-path and a deploy-path. It is assuemd that the same file may be in multiple folders. A xml file, for example, may be available as a source file, but also exist in a build output directory. A .class file, on the other hand, may exist in a java incremental builder output folder, as well as in a build system output folder.

Mappings should be arranged such that the most up-to-date folder is near the bottom of the list, so that if the server iterates through them in order, the most recent change will be the last one copied in.

Supported Servers

Q&A

1. Is there a video that explain how the VSCode Server Connector extension and the Runtime Server Protocol work?

Yes. This is the video you can watch to learn more about this extension https://www.youtube.com/watch?v=sP2Hlw-C_7I

Install extension locally

This is an open source project open to anyone. This project welcomes contributions and suggestions!!

Download the most recent rsp-ui-<version>.vsix file and install it by following the instructions here.

Stable releases are archived under http://download.jboss.org/jbosstools/adapters/snapshots/vscode-middleware-tools/rsp-ui/

Community, discussion, contribution, and support

Issues: If you have an issue/feature-request with the rsp-ui extension, please file it here.

Contributing: Want to become a contributor and submit your own code? Have a look at our development guide.

Chat: Chat with us on Gitter.

License

EPL 2.0, See LICENSE for more information.

Data and telemetry

The RSP UI extension by Red Hat for Visual Studio Code collects anonymous usage data and sends it to Red Hat servers to help improve our products and services. Read our privacy statement to learn more. This extension respects the redhat.telemetry.enabled setting which you can learn more about at https://github.com/redhat-developer/vscode-redhat-telemetry#how-to-disable-telemetry-reporting