-
-
Notifications
You must be signed in to change notification settings - Fork 7
Language Server Protocol
Gonzalo Larumbe edited this page Apr 7, 2024
·
7 revisions
- 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-bridge
: M-xverilog-ext-lsp-bridge-set-server
RETve-svlangserver
- For
lsp-mode
: M-xverilog-ext-lsp-set-server
RETve-svlangserver
- For
eglot
: M-xverilog-ext-eglot-set-server
RETve-svlangserver
- For
lspce
: M-xverilog-ext-lspce-set-server
RETve-svlangserver
- For
- Programatically:
;; For `lsp-bridge: (verilog-ext-lsp-bridge-set-server 've-svlangserver) ;; For `lsp-mode': (verilog-ext-lsp-set-server 've-svlangserver) ;; For `eglot': (verilog-ext-eglot-set-server 've-svlangserver) ;; For `lspce': (verilog-ext-lspce-set-server 've-svlangserver)
- Interactively:
Depending on the Language Server you are using different configuration methods exist, such as YAML, JSON or TOML files placed at the project root. To know how to configure each Language Server refer to their respective documentation.
Configuration of svlangserver
can be done exclusively through Emacs customization.
-
lsp-mode
provides the variableslsp-clients-svlangserver-*
M-x customize-group RET lsp-verilog RET
-
verilog-ext-eglot
provides the variablesverilog-ext-eglot-svlangserver-*
M-x customize-group RET verilog-ext-eglot RET
-
verilog-ext-lspce
provides the variablesverilog-ext-lspce-svlangserver-*
M-x customize-group RET verilog-ext-lspce 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
andverilog-ext
:verilog-ext-eglot-svlangserver-build-index
verilog-ext-eglot-svlangserver-report-hierarchy
- Provided by
lspce
andverilog-ext
:verilog-ext-lspce-svlangserver-build-index
verilog-ext-lspce-svlangserver-report-hierarchy
lsp-bridge
provides the configuration file langserver/svlangserver.json
. Set the value that better suits
your needs in the settings
field:
"settings": {
"systemverilog.includeIndexing": ["**/*.{sv,svh}"],
"systemverilog.excludeIndexing": ["test/**/*.sv*"],
"systemverilog.defines" : [],
"systemverilog.launchConfiguration": "verilator -sv -Wall --lint-only",
"systemverilog.formatCommand": "verible-verilog-format"
}