mirror of
https://github.com/kbwo/testing-language-server.git
synced 2025-08-03 23:28:14 +00:00
refactor(adapter): set diagnostic severity explicitly
This commit is contained in:
parent
5ac623bb69
commit
4782784122
5 changed files with 16 additions and 8 deletions
|
@ -52,6 +52,7 @@ fn handle(commands: AdapterCommands) -> Result<(), LSError> {
|
|||
fn main() {
|
||||
let _guard = Log::init().expect("Failed to initialize logger");
|
||||
let args = AdapterCommands::parse();
|
||||
tracing::info!("adapter args={:#?}", args);
|
||||
if let Err(error) = handle(args) {
|
||||
io::stderr()
|
||||
.write_all(format!("{:#?}", error).as_bytes())
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use crate::runner::cargo_test::CargoTestRunner;
|
||||
use crate::runner::go::GoTestRunner;
|
||||
use crate::runner::vitest::VitestRunner;
|
||||
use std::str::FromStr;
|
||||
use testing_language_server::error::LSError;
|
||||
use testing_language_server::spec::DetectWorkspaceArgs;
|
||||
|
@ -12,6 +13,7 @@ use crate::runner::jest::JestRunner;
|
|||
pub enum AvailableTestKind {
|
||||
CargoTest(CargoTestRunner),
|
||||
Jest(JestRunner),
|
||||
Vitest(VitestRunner),
|
||||
GoTest(GoTestRunner),
|
||||
}
|
||||
impl Runner for AvailableTestKind {
|
||||
|
@ -20,6 +22,7 @@ impl Runner for AvailableTestKind {
|
|||
AvailableTestKind::CargoTest(runner) => runner.disover(args),
|
||||
AvailableTestKind::Jest(runner) => runner.disover(args),
|
||||
AvailableTestKind::GoTest(runner) => runner.disover(args),
|
||||
AvailableTestKind::Vitest(runner) => runner.disover(args),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,6 +31,7 @@ impl Runner for AvailableTestKind {
|
|||
AvailableTestKind::CargoTest(runner) => runner.run_file_test(args),
|
||||
AvailableTestKind::Jest(runner) => runner.run_file_test(args),
|
||||
AvailableTestKind::GoTest(runner) => runner.run_file_test(args),
|
||||
AvailableTestKind::Vitest(runner) => runner.run_file_test(args),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,6 +40,7 @@ impl Runner for AvailableTestKind {
|
|||
AvailableTestKind::CargoTest(runner) => runner.detect_workspaces(args),
|
||||
AvailableTestKind::Jest(runner) => runner.detect_workspaces(args),
|
||||
AvailableTestKind::GoTest(runner) => runner.detect_workspaces(args),
|
||||
AvailableTestKind::Vitest(runner) => runner.detect_workspaces(args),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +53,7 @@ impl FromStr for AvailableTestKind {
|
|||
"cargo-test" => Ok(AvailableTestKind::CargoTest(CargoTestRunner)),
|
||||
"jest" => Ok(AvailableTestKind::Jest(JestRunner)),
|
||||
"go-test" => Ok(AvailableTestKind::GoTest(GoTestRunner)),
|
||||
"vitest" => Ok(AvailableTestKind::Vitest(VitestRunner)),
|
||||
_ => Err(anyhow::anyhow!("Unknown test kind: {}", s)),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use crate::runner::util::send_stdout;
|
||||
use lsp_types::DiagnosticSeverity;
|
||||
use std::collections::HashMap;
|
||||
use std::path::PathBuf;
|
||||
use std::process::Output;
|
||||
|
@ -62,6 +63,7 @@ fn parse_diagnostics(
|
|||
},
|
||||
},
|
||||
message,
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
};
|
||||
result_map
|
||||
|
@ -339,7 +341,7 @@ note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
|||
|
||||
let workspaces = detect_workspaces(&file_paths);
|
||||
assert_eq!(workspaces.len(), 2);
|
||||
assert!(workspaces.contains_key(&absolute_path_of_test_proj.to_str().unwrap().to_string()));
|
||||
assert!(workspaces.contains_key(¤t_dir.to_str().unwrap().to_string()));
|
||||
assert!(workspaces.contains_key(absolute_path_of_test_proj.to_str().unwrap()));
|
||||
assert!(workspaces.contains_key(current_dir.to_str().unwrap()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ use crate::model::Runner;
|
|||
use crate::runner::util::send_stdout;
|
||||
use anyhow::anyhow;
|
||||
use lsp_types::Diagnostic;
|
||||
use lsp_types::DiagnosticSeverity;
|
||||
use lsp_types::Position;
|
||||
use lsp_types::Range;
|
||||
use regex::Regex;
|
||||
|
@ -116,6 +117,7 @@ fn parse_diagnostics(
|
|||
},
|
||||
},
|
||||
message: message.clone(),
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
};
|
||||
let file_path = workspace_root
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
use crate::runner::util::send_stdout;
|
||||
use lsp_types::Diagnostic;
|
||||
use lsp_types::DiagnosticSeverity;
|
||||
use lsp_types::Position;
|
||||
use lsp_types::Range;
|
||||
use regex::Regex;
|
||||
use serde_json::Value;
|
||||
use std::collections::HashMap;
|
||||
use std::fs;
|
||||
|
@ -21,16 +21,12 @@ use tree_sitter::QueryCursor;
|
|||
|
||||
use crate::model::Runner;
|
||||
|
||||
use super::util::clean_ansi;
|
||||
use super::util::detect_workspaces_from_file_paths;
|
||||
|
||||
// If the character value is greater than the line length it defaults back to the line length.
|
||||
const MAX_CHAR_LENGTH: u32 = 10000;
|
||||
|
||||
fn clean_ansi(input: &str) -> String {
|
||||
let re = Regex::new(r"\x1B\[([0-9]{1,2}(;[0-9]{1,2})*)?[m|K]").unwrap();
|
||||
re.replace_all(input, "").to_string()
|
||||
}
|
||||
|
||||
fn parse_diagnostics(
|
||||
test_result: &str,
|
||||
file_paths: Vec<String>,
|
||||
|
@ -67,6 +63,7 @@ fn parse_diagnostics(
|
|||
},
|
||||
},
|
||||
message,
|
||||
severity: Some(DiagnosticSeverity::ERROR),
|
||||
..Diagnostic::default()
|
||||
};
|
||||
result_map
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue