use crate::languages::spec::{
DEFAULT_TOOL_TIMEOUT_SECS, DiagnosticsStream, LanguageSupport, OutputFormat, ToolSpec,
};
pub static CREDO: ToolSpec = ToolSpec {
name: "credo",
command: &["mix", "credo", "--format", "json"],
local_paths: &[],
config_files: &[".credo.exs"],
config_flag: None,
output_format: OutputFormat::Credo,
diagnostics_stream: DiagnosticsStream::Stdout,
timeout_secs: DEFAULT_TOOL_TIMEOUT_SECS,
timeout_context: None,
establishes_compilation: false,
serial_in_repository: false,
accepts_files: true,
};
pub static ELIXIR: LanguageSupport = LanguageSupport {
name: "elixir",
display_name: "Elixir",
extensions: &[".ex", ".exs"],
filenames: &[],
filename_prefixes: &[],
tools: &[&CREDO],
conventions: &[
"Pattern matches with no fallback clause, crashing on unexpected shapes",
"Non-tail recursion over unbounded lists",
"Atoms built from untrusted input",
"GenServer calls that deadlock against themselves",
"Unhandled messages accumulating in a mailbox",
],
vendored_dirs: &["_build"],
};
pub(crate) static FAMILY: &[&LanguageSupport] = &[&ELIXIR];