From 34de565afa993e04e6113ae42b1313c2fe890989 Mon Sep 17 00:00:00 2001 From: Randy Lai Date: Sat, 12 Aug 2017 16:55:50 -0400 Subject: [PATCH] Enhancement: show diff stat in diff_view --- GitSavvy.sublime-settings | 2 +- core/commands/diff.py | 5 +++++ syntax/diff.sublime-syntax | 1 + syntax/show_commit.sublime-syntax | 1 - syntax/show_commit_diffstat.sublime-syntax | 2 +- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/GitSavvy.sublime-settings b/GitSavvy.sublime-settings index 3e6af042f..3d4e09927 100755 --- a/GitSavvy.sublime-settings +++ b/GitSavvy.sublime-settings @@ -182,7 +182,7 @@ core/git_mixins/history.py | 8 ++------ 3 files changed, 10 insertions(+), 20 deletions(-) - Set to `false` if don't want to show this when view a commit. + Set to `false` if don't want to show this when view a commit or diff. */ "show_diffstat": true, diff --git a/core/commands/diff.py b/core/commands/diff.py index 5287eac3b..e56877493 100644 --- a/core/commands/diff.py +++ b/core/commands/diff.py @@ -47,6 +47,7 @@ def run_async(self, in_cached_mode=False, file_path=None, current_file=False, ba "-" if base_commit is None else "--" + base_commit, file_path or repo_path ) + savvy_settings = sublime.load_settings("GitSavvy.sublime-settings") if view_key in diff_views and diff_views[view_key] in sublime.active_window().views(): diff_view = diff_views[view_key] @@ -63,6 +64,7 @@ def run_async(self, in_cached_mode=False, file_path=None, current_file=False, ba diff_view.settings().set("git_savvy.diff_view.show_word_diff", False) diff_view.settings().set("git_savvy.diff_view.base_commit", base_commit) diff_view.settings().set("git_savvy.diff_view.target_commit", target_commit) + diff_view.settings().set("git_savvy.diff_view.show_diffstat", savvy_settings.get("show_diffstat", True)) diff_view.settings().set("git_savvy.diff_view.disable_stage", disable_stage) diff_views[view_key] = diff_view @@ -87,12 +89,15 @@ def run(self, edit, cursors=None): show_word_diff = self.view.settings().get("git_savvy.diff_view.show_word_diff") base_commit = self.view.settings().get("git_savvy.diff_view.base_commit") target_commit = self.view.settings().get("git_savvy.diff_view.target_commit") + show_diffstat = self.view.settings().get("git_savvy.diff_view.show_diffstat") try: stdout = self.git( "diff", "--ignore-all-space" if ignore_whitespace else None, "--word-diff" if show_word_diff else None, + "--stat" if show_diffstat else None, + "--patch", "--no-color", "--cached" if in_cached_mode else None, base_commit, diff --git a/syntax/diff.sublime-syntax b/syntax/diff.sublime-syntax index 2ac3bb4a7..d2e003c92 100644 --- a/syntax/diff.sublime-syntax +++ b/syntax/diff.sublime-syntax @@ -95,3 +95,4 @@ contexts: 2: markup.deleted.git-savvy.delete-block.content 3: punctuation.definition.deleted.diff + - include: "scope:git-savvy.commit-diffstat" diff --git a/syntax/show_commit.sublime-syntax b/syntax/show_commit.sublime-syntax index 7c670bc25..cee01d774 100644 --- a/syntax/show_commit.sublime-syntax +++ b/syntax/show_commit.sublime-syntax @@ -25,5 +25,4 @@ contexts: scope: meta.commit-header-and-stat-splitter comment: Separator between commit message and diffstat - - include: "scope:git-savvy.commit-diffstat" - include: "scope:git-savvy.diff" diff --git a/syntax/show_commit_diffstat.sublime-syntax b/syntax/show_commit_diffstat.sublime-syntax index 984927aa9..90233805d 100644 --- a/syntax/show_commit_diffstat.sublime-syntax +++ b/syntax/show_commit_diffstat.sublime-syntax @@ -6,7 +6,7 @@ hidden: true scope: git-savvy.commit-diffstat contexts: main: - - match: ^ (.+) \| +(\d+) (\+*)(-*)$\n? + - match: ^ (\S.+) \| +(\d+) (\+*)(-*)$\n? comment: author and date info scope: meta.commit-info.diffstat.line captures: