use std::fmt::{Display, Formatter};
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum LangId {
BASH,
C,
CPP,
CSS,
CSV,
HASKELL,
GO,
JAVA,
JAVASCRIPT,
MARKDOWN,
PYTHON3,
RON,
RUST,
TOML,
TYPESCRIPT,
HTML,
XML,
YAML,
}
impl LangId {
pub fn to_lsp_lang_id_string(&self) -> &'static str {
match self {
LangId::BASH => "bash",
LangId::C => "c",
LangId::CPP => "c++",
LangId::CSS => "css",
LangId::CSV => "csv",
LangId::HASKELL => "haskell",
LangId::JAVA => "java",
LangId::JAVASCRIPT => "javascript",
LangId::GO => "go",
LangId::MARKDOWN => "markdown",
LangId::PYTHON3 => "python3",
LangId::RON => "ron",
LangId::RUST => "rust",
LangId::TOML => "toml",
LangId::TYPESCRIPT => "typescript",
LangId::HTML => "html",
LangId::XML => "xml",
LangId::YAML => "yaml",
}
}
}
impl Display for LangId {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}