Skip to content

Commit dca92a7

Browse files
committed
Add vhdl_ls --silent argument
1 parent b4ff5de commit dca92a7

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

vhdl_ls/src/main.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ struct Args {
1313
/// Disable diagnostic messages, only use navigation and hover features
1414
#[arg(long, default_value_t = false)]
1515
no_lint: bool,
16+
17+
/// Silence all but error messages
18+
#[arg(long, default_value_t = false)]
19+
silent: bool,
1620
}
1721

1822
fn main() {
@@ -22,5 +26,6 @@ fn main() {
2226
log::info!("Starting language server");
2327
vhdl_ls::start(VHDLServerSettings {
2428
no_lint: args.no_lint,
29+
silent: args.silent,
2530
});
2631
}

vhdl_ls/src/vhdl_server.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use vhdl_lang::{Config, Diagnostic, Message, MessageHandler, Project, Severity,
1717
#[derive(Default, Clone)]
1818
pub struct VHDLServerSettings {
1919
pub no_lint: bool,
20+
pub silent: bool,
2021
}
2122

2223
pub struct VHDLServer {
@@ -384,6 +385,7 @@ impl VHDLServer {
384385

385386
fn message_filter(&self) -> MessageFilter {
386387
MessageFilter {
388+
silent: self.settings.silent,
387389
rpc: self.rpc.clone(),
388390
}
389391
}
@@ -394,11 +396,16 @@ impl VHDLServer {
394396
}
395397

396398
struct MessageFilter {
399+
silent: bool,
397400
rpc: SharedRpcChannel,
398401
}
399402

400403
impl MessageHandler for MessageFilter {
401404
fn push(&mut self, msg: Message) {
405+
if self.silent && msg.message_type != vhdl_lang::MessageType::Error {
406+
return;
407+
}
408+
402409
if matches!(
403410
msg.message_type,
404411
vhdl_lang::MessageType::Warning | vhdl_lang::MessageType::Error

0 commit comments

Comments
 (0)