Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-view/src/expansion.rs')
-rw-r--r--helix-view/src/expansion.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/helix-view/src/expansion.rs b/helix-view/src/expansion.rs
index 96a71b8e..053152a4 100644
--- a/helix-view/src/expansion.rs
+++ b/helix-view/src/expansion.rs
@@ -33,6 +33,8 @@ pub enum Variable {
BufferName,
/// A string containing the line-ending of the currently focused document.
LineEnding,
+ // The name of current buffers language as set in `languages.toml`
+ Language,
}
impl Variable {
@@ -41,6 +43,7 @@ impl Variable {
Self::CursorColumn,
Self::BufferName,
Self::LineEnding,
+ Self::Language,
];
pub const fn as_str(&self) -> &'static str {
@@ -49,6 +52,7 @@ impl Variable {
Self::CursorColumn => "cursor_column",
Self::BufferName => "buffer_name",
Self::LineEnding => "line_ending",
+ Self::Language => "language",
}
}
@@ -58,6 +62,7 @@ impl Variable {
"cursor_column" => Some(Self::CursorColumn),
"buffer_name" => Some(Self::BufferName),
"line_ending" => Some(Self::LineEnding),
+ "language" => Some(Self::Language),
_ => None,
}
}
@@ -215,5 +220,9 @@ fn expand_variable(editor: &Editor, variable: Variable) -> Result<Cow<'static, s
}
}
Variable::LineEnding => Ok(Cow::Borrowed(doc.line_ending.as_str())),
+ Variable::Language => Ok(match doc.language_name() {
+ Some(lang) => Cow::Owned(lang.to_owned()),
+ None => Cow::Borrowed("text"),
+ }),
}
}