ecode: add multi-file Git status operations

Enable multiple selection in the Git status tree and apply stage, unstage, discard, open, and diff actions to all applicable files.
Open selected diffs in a single multi-file diff view, including portable handling for untracked files, and group mutating operations by repository.
Make the commit dialog resizable, allow its text editor to grow with the window, and wrap commit messages by word.
This commit is contained in:
Martín Lucas Golini
2026-08-12 00:03:25 -03:00
parent 953b0ecb03
commit 74d9fa660c
4 changed files with 185 additions and 46 deletions
+7 -1
View File
@@ -176,6 +176,10 @@ class GitPlugin : public PluginBase {
void unstage( const std::vector<std::string>& files );
enum class FileOperation { Stage, Unstage, Discard };
void runFileOperation( std::vector<std::string> files, FileOperation operation );
void discard( const std::vector<std::string>& files );
void discard( const std::string& file );
@@ -184,6 +188,8 @@ class GitPlugin : public PluginBase {
void diff( const std::string& file, Git::GitStatusType status );
void diff( std::vector<Git::DiffFile> files );
void openFile( const std::string& file );
void updateStatus( bool force = false );
@@ -202,7 +208,7 @@ class GitPlugin : public PluginBase {
void openBranchMenu( const Git::Branch& branch );
void openFileStatusMenu( const Git::DiffFile& file );
void openFileStatusMenu( std::vector<Git::DiffFile> files );
void stashPush( const std::vector<std::string>& files, const std::string& repoPath );