Replace gix with configurable libgit2 diffs
This commit is contained in:
40
src/app.rs
40
src/app.rs
@@ -14,7 +14,9 @@ use preferences::PreferenceDraft;
|
||||
#[cfg(test)]
|
||||
use preferences::{parse_optional_gib, parse_streaming_cache};
|
||||
|
||||
use crate::config::{Config, DevBrainConfig, EndpointConfig};
|
||||
use crate::config::{
|
||||
Config, DevBrainConfig, EndpointConfig, GitConfig, GitDiffAlgorithm, GitDiffWhitespace,
|
||||
};
|
||||
use crate::database::{Database, ProjectWithSessions, SessionState, StoredMessage};
|
||||
#[cfg(target_os = "macos")]
|
||||
use crate::engine::ChatTurn;
|
||||
@@ -248,6 +250,7 @@ pub(super) enum PreferenceSection {
|
||||
Model,
|
||||
Endpoint,
|
||||
DevBrain,
|
||||
Git,
|
||||
Generation,
|
||||
Execution,
|
||||
Acceleration,
|
||||
@@ -256,10 +259,11 @@ pub(super) enum PreferenceSection {
|
||||
}
|
||||
|
||||
impl PreferenceSection {
|
||||
const ALL: [Self; 8] = [
|
||||
const ALL: [Self; 9] = [
|
||||
Self::Model,
|
||||
Self::Endpoint,
|
||||
Self::DevBrain,
|
||||
Self::Git,
|
||||
Self::Generation,
|
||||
Self::Execution,
|
||||
Self::Acceleration,
|
||||
@@ -272,6 +276,7 @@ impl PreferenceSection {
|
||||
Self::Model => "preferences-model",
|
||||
Self::Endpoint => "preferences-endpoint",
|
||||
Self::DevBrain => "preferences-dev-brain",
|
||||
Self::Git => "preferences-git",
|
||||
Self::Generation => "preferences-generation",
|
||||
Self::Execution => "preferences-execution",
|
||||
Self::Acceleration => "preferences-acceleration",
|
||||
@@ -285,6 +290,7 @@ impl PreferenceSection {
|
||||
Self::Model => "Model & lifecycle",
|
||||
Self::Endpoint => "Local endpoint",
|
||||
Self::DevBrain => "Dev Brain",
|
||||
Self::Git => "Git diffs",
|
||||
Self::Generation => "Generation",
|
||||
Self::Execution => "Execution",
|
||||
Self::Acceleration => "Acceleration & memory",
|
||||
@@ -344,6 +350,12 @@ pub(crate) enum Message {
|
||||
PreferenceEndpointCorsChanged(bool),
|
||||
PreferenceDevBrainEnabledChanged(bool),
|
||||
PreferenceDevBrainVaultChanged(String),
|
||||
PreferenceGitDiffAlgorithmChanged(GitDiffAlgorithm),
|
||||
PreferenceGitContextLinesChanged(String),
|
||||
PreferenceGitInterhunkLinesChanged(String),
|
||||
PreferenceGitIndentHeuristicChanged(bool),
|
||||
PreferenceGitWhitespaceChanged(GitDiffWhitespace),
|
||||
PreferenceGitIgnoreBlankLinesChanged(bool),
|
||||
ChooseDevBrainVault,
|
||||
DevBrainVaultPicked(Option<PathBuf>),
|
||||
PreferenceContextChanged(String),
|
||||
@@ -1174,6 +1186,30 @@ impl App {
|
||||
self.preference_draft.dev_brain_vault_path = value;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceGitDiffAlgorithmChanged(algorithm) => {
|
||||
self.preference_draft.git_diff_algorithm = algorithm;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceGitContextLinesChanged(value) => {
|
||||
self.preference_draft.git_context_lines = value;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceGitInterhunkLinesChanged(value) => {
|
||||
self.preference_draft.git_interhunk_lines = value;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceGitIndentHeuristicChanged(enabled) => {
|
||||
self.preference_draft.git_indent_heuristic = enabled;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceGitWhitespaceChanged(whitespace) => {
|
||||
self.preference_draft.git_whitespace = whitespace;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::PreferenceGitIgnoreBlankLinesChanged(enabled) => {
|
||||
self.preference_draft.git_ignore_blank_lines = enabled;
|
||||
self.preference_error = None;
|
||||
}
|
||||
Message::ChooseDevBrainVault => {
|
||||
return Task::perform(
|
||||
async {
|
||||
|
||||
Reference in New Issue
Block a user