dvt_ls.sh

This script is used to interact with the DVT Language Servers.

  • start a standalone Language Server

  • stop a reachable Language Server

  • list all the Language Servers started by your user

One particularly useful feature is that it can be used to start a standalone Language Server and connect to it later using the DVT IDE for VS Code. (see Flow Integration).

Syntax

Usage: dvt_ls.sh start | stop | list | version | help ...

  Start a language server:
    start | createProject <project path> -lang <lang> [-name <name>]
                          [-build <name>] [-f|-F <file>] [-<name>.build <....>]
                          [-map <name> <path>] [-local] [-port_range <start> <end>]
                          [-heap_size <size>] [-stack_size <size>] [-vmargs <args>]
                          [-noexit]

      Mandatory arguments:
        <project path>        Path to project (must exist).
        -lang   <lang>        Project language (vlog, vhdl).

      Optional arguments:
        -name         <name>       Friendly name for this language server.
        -build        <name>       Name of active build configuration.
        -f|-F         <file>       Specify a command file for the project. -f and -F are mutually exclusive.
        -<name>.build <....>       Create the build configuration file <project>/.dvt/<name>.build with <....> as content.
                                    All flags up to the end of the command line, or up to the next -<name>.build flag are considered build.
                                    configuration directives. This flag cannot be used in conjunction with -f, or -F.
        -map   <name> <path>       Specify additional folders to be opened in the Language Server's client at connection time.
        -local                     Language server will bind to the '127.0.0.1' address, only connections from the same machine will be accepted.
        -heap_size    <size>       Set the Java heap size (syntax is <N>[g|G|m|M|k|K]). Default is 3072m.
        -stack_size   <size>       Set the Java thread stack size (syntax is <N>[g|G|m|M|k|K]). Default is 4m.
        -port_range <start> <end>  Choose ports in range [<start>, <end>] for communication with language server.
        -vmargs       <args>       Additional Java arguments.
        -noexit                    Script will not terminate after the language server is started, terminating the script will also terminate the language server.

  Stop language servers:
    stop -id <id>* | -available
      -id <id>              Stop all servers with the specified ids.
      -available            Stop all unused servers.

  List language servers:
    list [-id <id>* | -available]
      -id <id>              Show info about the servers with the specified ids.
      -available            Show info about unused servers.

  Show language server version:
    version

If the server successfully starts it will print out the ID of the started server.

Note

  • When no build <name> is specified, the server will use the default build configuration (default.build file). If it doesn’t exists it will be created with the Auto-config directive inside of it.

  • When no lang <lang> is specified, the server will use the values available in the <name>.ls file and if missing it will automatically infer the languages used in your project from:
    • the nature directive in of an Eclipse .project file when migrating a project from DVT Eclipse

    • the top files specified in the <name>.build

    • the file extensions present under the project folder

Note

  • Arguments lang, heap_size, stack_size, vmargs will be saved in a <name>.ls file when starting the server, where <name> is the name of the build configuration used to start the server. If no values are provided for these arguments the default or inferred values will be saved.

  • The name argument can be used to give a friendly name to the newly started Language Server. This name will be visible in the DVT Language Servers View and can be used as an argument of the dvt_code.sh connect ... command.

  • To restrict access to the Language Server use local argument, this way the server is bound to localhost and only can be used only by UIs started on the same host.

  • By default servers are started as a daemon, the dvt_ls.sh command ends after the server is detached from the script. In some situation (e.g. when dispatching the job into a computer farm) it is preferable to run the server as a foreground job in which case noexit flag must be used.

Examples

Start a standalone Language Server

dvt_ls.sh start /path/to/project -lang vlog

Start a Language Server using bsub

bsub ... 'dvt_ls.sh start /path/to/project -lang vlog -build rtl -noexit'

Stop a Language Server

dvt_ls.sh stop -id <id>

The output will indicate that it’s trying to stop the server and confirm or show and error when the operation completes.

Stopping server '<id>'...
Server stopped

Stop all available (unused and reachable) Language Servers

dvt_ls.sh stop -available

The output will indicate that it’s trying to stop the server and confirm or show and error for each server when the operation completes.

Stopping server '<id>'...
Server stopped
...

Print information about all Language Servers started by your user

dvt_ls.sh list

Print information about all available (unused and reachable) Language Servers started by your user

dvt_ls.sh list -available