From 1661e4b5e1d8ebfef28f798fcb86ba2656373ba0 Mon Sep 17 00:00:00 2001 From: Dimitar Gyurov Date: Fri, 10 Mar 2023 23:42:42 +0100 Subject: Add a version-control statusline element (#5682) --- helix-view/src/document.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'helix-view/src/document.rs') diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index db12fb92..b2a9ddec 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -1,5 +1,6 @@ use anyhow::{anyhow, bail, Context, Error}; use arc_swap::access::DynAccess; +use arc_swap::ArcSwap; use futures_util::future::BoxFuture; use futures_util::FutureExt; use helix_core::auto_pairs::AutoPairs; @@ -158,6 +159,7 @@ pub struct Document { language_server: Option>, diff_handle: Option, + version_control_head: Option>>>, } use std::{fmt, mem}; @@ -404,6 +406,7 @@ impl Document { language_server: None, diff_handle: None, config, + version_control_head: None, } } pub fn default(config: Arc>) -> Self { @@ -707,6 +710,8 @@ impl Document { None => self.diff_handle = None, } + self.version_control_head = provider_registry.get_current_head_name(&path); + Ok(()) } @@ -1158,6 +1163,17 @@ impl Document { } } + pub fn version_control_head(&self) -> Option>> { + self.version_control_head.as_ref().map(|a| a.load_full()) + } + + pub fn set_version_control_head( + &mut self, + version_control_head: Option>>>, + ) { + self.version_control_head = version_control_head; + } + #[inline] /// Tree-sitter AST tree pub fn syntax(&self) -> Option<&Syntax> { -- cgit v1.2.3-70-g09d2