-
-
Notifications
You must be signed in to change notification settings - Fork 9
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-extto connect to that server:- Interactively:
- For
lsp-bridge: M-xverilog-ext-lsp-bridge-set-serverRETve-svlangserver - For
lsp-mode: M-xverilog-ext-lsp-set-serverRETve-svlangserver - For
eglot: M-xverilog-ext-eglot-set-serverRETve-svlangserver - For
lspce: M-xverilog-ext-lspce-set-serverRETve-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-modeprovides the variableslsp-clients-svlangserver-*M-x customize-group RET lsp-verilog RET
-
verilog-ext-eglotprovides the variablesverilog-ext-eglot-svlangserver-*M-x customize-group RET verilog-ext-eglot RET
-
verilog-ext-lspceprovides 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-indexlsp-clients-svlangserver-report-hierarchy
- Provided by
eglotandverilog-ext:verilog-ext-eglot-svlangserver-build-indexverilog-ext-eglot-svlangserver-report-hierarchy
- Provided by
lspceandverilog-ext:verilog-ext-lspce-svlangserver-build-indexverilog-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"
}