pub fn is_rust_keyword(word: &str) -> bool {
matches!(
word,
"as" | "async"
| "await"
| "break"
| "const"
| "continue"
| "crate"
| "dyn"
| "else"
| "enum"
| "extern"
| "false"
| "fn"
| "for"
| "if"
| "impl"
| "in"
| "let"
| "loop"
| "match"
| "mod"
| "move"
| "mut"
| "pub"
| "ref"
| "return"
| "self"
| "Self"
| "static"
| "struct"
| "super"
| "trait"
| "true"
| "type"
| "unsafe"
| "use"
| "where"
| "while"
)
}
pub fn is_python_keyword(word: &str) -> bool {
matches!(
word,
"and"
| "as"
| "assert"
| "async"
| "await"
| "break"
| "class"
| "continue"
| "def"
| "del"
| "elif"
| "else"
| "except"
| "finally"
| "for"
| "from"
| "global"
| "if"
| "import"
| "in"
| "is"
| "lambda"
| "nonlocal"
| "not"
| "or"
| "pass"
| "raise"
| "return"
| "try"
| "while"
| "with"
| "yield"
)
}
pub fn is_javascript_keyword(word: &str) -> bool {
matches!(
word,
"async"
| "await"
| "break"
| "case"
| "catch"
| "class"
| "const"
| "continue"
| "debugger"
| "default"
| "delete"
| "do"
| "else"
| "export"
| "extends"
| "finally"
| "for"
| "function"
| "if"
| "import"
| "in"
| "instanceof"
| "let"
| "new"
| "of"
| "return"
| "static"
| "super"
| "switch"
| "this"
| "throw"
| "try"
| "typeof"
| "var"
| "void"
| "while"
| "with"
| "yield"
)
}
pub fn is_shell_keyword(word: &str) -> bool {
matches!(
word,
"if" | "then"
| "else"
| "elif"
| "fi"
| "for"
| "while"
| "do"
| "done"
| "case"
| "esac"
| "in"
| "function"
| "select"
| "until"
| "return"
| "exit"
| "export"
| "local"
| "readonly"
| "declare"
| "typeset"
| "unset"
| "shift"
| "cd"
| "echo"
| "read"
| "source"
| "alias"
| "eval"
| "exec"
| "set"
)
}
pub fn is_sql_keyword(word: &str) -> bool {
let upper = word.to_uppercase();
matches!(
upper.as_str(),
"SELECT"
| "FROM"
| "WHERE"
| "AND"
| "OR"
| "NOT"
| "IN"
| "LIKE"
| "BETWEEN"
| "JOIN"
| "LEFT"
| "RIGHT"
| "INNER"
| "OUTER"
| "ON"
| "AS"
| "ORDER"
| "BY"
| "GROUP"
| "HAVING"
| "LIMIT"
| "OFFSET"
| "INSERT"
| "INTO"
| "VALUES"
| "UPDATE"
| "SET"
| "DELETE"
| "CREATE"
| "TABLE"
| "DROP"
| "ALTER"
| "INDEX"
| "PRIMARY"
| "KEY"
| "FOREIGN"
| "REFERENCES"
| "CONSTRAINT"
| "UNIQUE"
| "DEFAULT"
| "NULL"
| "IS"
| "ASC"
| "DESC"
| "DISTINCT"
| "COUNT"
| "SUM"
| "AVG"
| "MIN"
| "MAX"
| "CASE"
| "WHEN"
| "THEN"
| "ELSE"
| "END"
| "UNION"
| "ALL"
| "EXISTS"
)
}
pub fn is_go_keyword(word: &str) -> bool {
matches!(
word,
"break"
| "case"
| "chan"
| "const"
| "continue"
| "default"
| "defer"
| "else"
| "fallthrough"
| "for"
| "func"
| "go"
| "goto"
| "if"
| "import"
| "interface"
| "map"
| "package"
| "range"
| "return"
| "select"
| "struct"
| "switch"
| "type"
| "var"
)
}