mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-24 10:26:18 +04:00
cleanup: remove dummy diff provider, it's the exact same as not having one
This commit is contained in:
parent
5ee7411450
commit
918dd3fa37
@ -2,7 +2,7 @@
|
||||
|
||||
use tempfile::TempDir;
|
||||
|
||||
use crate::Git;
|
||||
use crate::git::Git;
|
||||
|
||||
fn exec_git_cmd(args: &str, git_dir: &Path) {
|
||||
let res = Command::new("git")
|
||||
|
@ -1,15 +1,10 @@
|
||||
use anyhow::{anyhow, bail, Result};
|
||||
use anyhow::{anyhow, Result};
|
||||
use arc_swap::ArcSwap;
|
||||
use std::{
|
||||
path::{Path, PathBuf},
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
#[cfg(feature = "git")]
|
||||
pub use git::Git;
|
||||
#[cfg(not(feature = "git"))]
|
||||
pub use Dummy as Git;
|
||||
|
||||
#[cfg(feature = "git")]
|
||||
mod git;
|
||||
|
||||
@ -21,33 +16,6 @@
|
||||
|
||||
pub use status::FileChange;
|
||||
|
||||
#[doc(hidden)]
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct Dummy;
|
||||
impl Dummy {
|
||||
fn get_diff_base(&self, _file: &Path) -> Result<Vec<u8>> {
|
||||
bail!("helix was compiled without git support")
|
||||
}
|
||||
|
||||
fn get_current_head_name(&self, _file: &Path) -> Result<Arc<ArcSwap<Box<str>>>> {
|
||||
bail!("helix was compiled without git support")
|
||||
}
|
||||
|
||||
fn for_each_changed_file(
|
||||
&self,
|
||||
_cwd: &Path,
|
||||
_f: impl Fn(Result<FileChange>) -> bool,
|
||||
) -> Result<()> {
|
||||
bail!("helix was compiled without git support")
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Dummy> for DiffProvider {
|
||||
fn from(value: Dummy) -> Self {
|
||||
DiffProvider::Dummy(value)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct DiffProviderRegistry {
|
||||
providers: Vec<DiffProvider>,
|
||||
@ -104,7 +72,10 @@ impl Default for DiffProviderRegistry {
|
||||
fn default() -> Self {
|
||||
// currently only git is supported
|
||||
// TODO make this configurable when more providers are added
|
||||
let providers = vec![Git.into()];
|
||||
let providers = vec![
|
||||
#[cfg(feature = "git")]
|
||||
git::Git.into(),
|
||||
];
|
||||
DiffProviderRegistry { providers }
|
||||
}
|
||||
}
|
||||
@ -113,15 +84,13 @@ fn default() -> Self {
|
||||
/// cloning [DiffProviderRegistry] as `Clone` cannot be used in trait objects.
|
||||
#[derive(Clone)]
|
||||
pub enum DiffProvider {
|
||||
Dummy(Dummy),
|
||||
#[cfg(feature = "git")]
|
||||
Git(Git),
|
||||
Git(git::Git),
|
||||
}
|
||||
|
||||
impl DiffProvider {
|
||||
fn get_diff_base(&self, file: &Path) -> Result<Vec<u8>> {
|
||||
match self {
|
||||
Self::Dummy(inner) => inner.get_diff_base(file),
|
||||
#[cfg(feature = "git")]
|
||||
Self::Git(inner) => inner.get_diff_base(file),
|
||||
}
|
||||
@ -129,7 +98,6 @@ fn get_diff_base(&self, file: &Path) -> Result<Vec<u8>> {
|
||||
|
||||
fn get_current_head_name(&self, file: &Path) -> Result<Arc<ArcSwap<Box<str>>>> {
|
||||
match self {
|
||||
Self::Dummy(inner) => inner.get_current_head_name(file),
|
||||
#[cfg(feature = "git")]
|
||||
Self::Git(inner) => inner.get_current_head_name(file),
|
||||
}
|
||||
@ -141,7 +109,6 @@ fn for_each_changed_file(
|
||||
f: impl Fn(Result<FileChange>) -> bool,
|
||||
) -> Result<()> {
|
||||
match self {
|
||||
Self::Dummy(inner) => inner.for_each_changed_file(cwd, f),
|
||||
#[cfg(feature = "git")]
|
||||
Self::Git(inner) => inner.for_each_changed_file(cwd, f),
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user