From 782940942351fc0e5bf7ec77c8df5a6a50f0b242 Mon Sep 17 00:00:00 2001 From: Matthew Harlum Date: Mon, 26 Aug 2024 19:50:22 +1200 Subject: [PATCH] Pass arguments to LSP (#446) --- CHANGELOG.md | 5 +++++ README.md | 20 ++++++++++++++++++++ package.json | 30 ++++++++++++++++++++++++++++++ src/extension.ts | 6 ++++++ 4 files changed, 61 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25ec17a6..933a9f1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)\ +## [Unreleased] + +## Added +- Pass arguments to lsp [#446][https://github.com/mshr-h/vscode-verilog-hdl-support/issues/446] + ## [1.14.3] - 2024-07-30 ## Added diff --git a/README.md b/README.md index 88c49070..127d980f 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,10 @@ Use the following settings to configure the extension to your needs. \[Experimental\] A path to the svls Language Server binary. +- `verilog.languageServer.svls.arguments'`(Default: '') + + \[Experimental\] Add custom arguments for the Svls Language Server. + - `verilog.languageServer.veridian.enabled` (Default: `false`) \[Experimental\] Enable veridian Language Server for SystemVerilog. @@ -224,6 +228,10 @@ Use the following settings to configure the extension to your needs. \[Experimental\] A path to the veridian Language Server binary. +- `verilog.languageServer.veridian.arguments'`(Default: '') + + \[Experimental\] Add custom arguments for the Veridian Language Server. + - `verilog.languageServer.hdlChecker.enabled` (Default: `false`) \[Experimental\] Enable HDL Checker Language Server for Verilog-HDL, SystemVerilog, and VHDL. @@ -232,6 +240,10 @@ Use the following settings to configure the extension to your needs. \[Experimental\] A path to the HDL Checker Language Server binary. +- `verilog.languageServer.hdlChecker.arguments'`(Default: '') + + \[Experimental\] Add custom arguments for the HDL Checker Language Server. + - `verilog.languageServer.veribleVerilogLs.enabled` (Default: `false`) \[Experimental\] Enable verible-verilog-ls Language Server for SystemVerilog. @@ -240,6 +252,10 @@ Use the following settings to configure the extension to your needs. \[Experimental\] A path to the verible-verilog-ls Language Server binary. +- `verilog.languageServer.veribleVerilogLs.arguments'`(Default: '') + + \[Experimental\] Add custom arguments for the verible-verilog-ls Language Server. + - `verilog.languageServer.rustHdl.enabled` (Default: `false`) \[Experimental\] Enable rust_hdl Language Server for VHDL. @@ -248,6 +264,10 @@ Use the following settings to configure the extension to your needs. \[Experimental\] A path to the rust_hdl Language Server binary. +- `verilog.languageServer.rustHdl.arguments'`(Default: '') + + \[Experimental\] Add custom arguments for the rust_hdl Language Server. + - `verilog.formatting.verilogHDL.formatter` (Default: `verilog-format`) \[Experimental\] Choose the Verilog-HDL formatter. Possible values are: diff --git a/package.json b/package.json index 946ee443..4f914649 100644 --- a/package.json +++ b/package.json @@ -390,6 +390,12 @@ "default": "svls", "description": "[Experimental] A path to the Svls Language Server binary." }, + "verilog.languageServer.svls.arguments": { + "scope": "window", + "type": "string", + "default": "", + "description": "[Experimental] Add custom arguments for the Svls Language Server." + }, "verilog.languageServer.veridian.enabled": { "scope": "window", "type": "boolean", @@ -402,12 +408,24 @@ "default": "veridian", "description": "[Experimental] A path to the Veridian Language Server binary." }, + "verilog.languageServer.veridian.arguments": { + "scope": "window", + "type": "string", + "default": "", + "description": "[Experimental] Add custom arguments for the HDL Checker Veridian Language Server." + }, "verilog.languageServer.hdlChecker.enabled": { "scope": "window", "type": "boolean", "default": false, "description": "[Experimental] Enable HDL Checker Language Server for Verilog-HDL, SystemVerilog, and VHDL." }, + "verilog.languageServer.hdlChecker.arguments": { + "scope": "window", + "type": "string", + "default": "", + "description": "[Experimental] Add custom arguments for the HDL Checker Language Server." + }, "verilog.languageServer.veribleVerilogLs.enabled": { "scope": "window", "type": "boolean", @@ -420,6 +438,12 @@ "default": "verible-verilog-ls", "description": "[Experimental] A path to the verible-verilog-ls Language Server binary." }, + "verilog.languageServer.veribleVerilogLs.arguments": { + "scope": "window", + "type": "string", + "default": "", + "description": "[Experimental] Add custom arguments for the verible-verilog-ls Language Server." + }, "verilog.languageServer.hdlChecker.path": { "scope": "window", "type": "string", @@ -438,6 +462,12 @@ "default": "vhdl_ls", "description": "[Experimental] A path to the Rust hdl Language Server binary." }, + "verilog.languageServer.rustHdl.arguments": { + "scope": "window", + "type": "string", + "default": "", + "description": "[Experimental] Add custom arguments for the Rust hdl Language Server." + }, "verilog.formatting.verilogHDL.formatter": { "scope": "window", "type": "string", diff --git a/src/extension.ts b/src/extension.ts index 0a94938a..6756df5e 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -204,6 +204,12 @@ function setupLanguageClient( let enabled: boolean = settings.get('enabled', false); let binPath = settings.get('path', defaultPath); + let customArgs = settings.get('arguments'); + + if (customArgs) { + serverArgs.push(customArgs); + serverDebugArgs.push(customArgs); + } let serverOptions: ServerOptions = { run: { command: binPath, args: serverArgs },