Skip to content

Language Server Protocol

Gonzalo Larumbe edited this page Sep 14, 2023 · 7 revisions

Supported servers

Requirements

  • Make sure that Language Server binary you are using is in the $PATH:
    $ which svlangserver
    /usr/local/bin/svlangserver
  • Configure verilog-ext to connect to that server:
    • Interactively:
      • For lsp-mode: M-x verilog-ext-lsp-set-serverRET ve-svlangserver
      • For eglot: M-x verilog-ext-eglot-set-serverRET ve-svlangserver
    • Programatically:
      ;; For `lsp-mode':
      (verilog-ext-lsp-set-server 've-svlangserver)
      ;; For `eglot':
      (verilog-ext-eglot-set-server 've-svlangserver)

Configuration

Depending on the Language Server you are using different configuration methods exist, such as YAML, JSON or TOML files placed at the workspace root. To know how to configure each Language Server refer to their respective documentation.

svlangserver

Configuration of svlangserver can be done exclusively through Emacs customization.

  • lsp-mode provides the variables lsp-clients-svlangserver-*
    • M-x customize-group RET lsp-verilog RET
  • verilog-ext-eglot provides the variables verilog-ext-eglot-svlangserver-*
    • M-x customize-group RET verilog-ext-eglot RET

In addition, some functions are defined to execute server commands to build the index and extract the hierarchy:

  • Provided by lsp-mode:
    • lsp-clients-svlangserver-build-index
    • lsp-clients-svlangserver-report-hierarchy
  • Provided by eglot and verilog-ext:
    • verilog-ext-eglot-svlangserver-build-index
    • verilog-ext-eglot-svlangserver-report-hierarchy
Clone this wiki locally