#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SymbolKind {
Var,
Function,
Type,
Enum,
Import,
}
impl SymbolKind {
pub fn noun(self) -> &'static str {
match self {
SymbolKind::Var => "variable",
SymbolKind::Function => "function",
SymbolKind::Type => "type",
SymbolKind::Enum => "enum",
SymbolKind::Import => "import",
}
}
pub fn namespace(self) -> Namespace {
match self {
SymbolKind::Type | SymbolKind::Enum => Namespace::Type,
SymbolKind::Var | SymbolKind::Function | SymbolKind::Import => Namespace::Value,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Namespace {
Type,
Value,
}
const GLOBAL_ONLY_FUNCTIONS: &[&str] = &[
"plot",
"plotshape",
"plotchar",
"plotcandle",
"plotbar",
"plotarrow",
"fill",
];
pub fn is_global_only(name: &str) -> bool {
GLOBAL_ONLY_FUNCTIONS.contains(&name)
}