Git Product home page Git Product logo

git-gutter-plus's People

Contributors

ajschumacher avatar christopheryoung avatar darwinawardwinner avatar dewdrops avatar doitian avatar domq avatar f-frhs avatar nonsequitur avatar paradoxxxzero avatar sabof avatar syohex avatar thomasf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

git-gutter-plus's Issues

wrong-number-of-arguments error on package update

Everytime i run package-list, mark all upgrades and press X to run those upgrades i get an error, so the updates don't run.
I've found that this is not happening when disabling the git gutter global mode.

Debugger entered--Lisp error: (wrong-number-of-arguments nil 0)
  signal(wrong-number-of-arguments (nil 0))
  git-gutter+-process-diff("/home/buster/.emacs.d/elpa/web-mode-20150304.1240/web-mode-autoloads.el")
  git-gutter+-refresh()
  git-gutter+-mode(t)
  git-gutter+-turn-on()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer web-mode-autoloads.el> "~/.emacs.d/elpa/web-mode-20150304.1240/web-mode-autoloads.el" nil nil "~/projects/dotfiles/.emacs.d/elpa/web-mode-20150304.1240/web-mode-autoloads.el" (15593875 17))
  find-file-noselect("/home/buster/.emacs.d/elpa/web-mode-20150304.1240/web-mode-autoloads.el")
  autoload-find-generated-file()
  update-directory-autoloads("/home/buster/.emacs.d/elpa/web-mode-20150304.1240")
  package-generate-autoloads(web-mode "/home/buster/.emacs.d/elpa/web-mode-20150304.1240")
  package--make-autoloads-and-stuff([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil] "/home/buster/.emacs.d/elpa/web-mode-20150304.1240")
  package-unpack([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil])
  package-install-from-archive([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil])
  mapc(package-install-from-archive ([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil]))
  package-download-transaction(([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil]))
  package-install([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil])
  mapc(package-install ([cl-struct-package-desc web-mode (20150304 1240) "major mode for editing web templates" nil single "melpa" nil ((:url . "http://web-mode.org") (:keywords "languages")) nil] [cl-struct-package-desc json-reformat (20150305 1231) "Reformatting tool for JSON" nil single "melpa" nil ((:url . "https://github.com/gongo/json-reformat") (:keywords "json")) nil] [cl-struct-package-desc js2-mode (20150304 1821) "Improved JavaScript editing mode" ((emacs (24 1)) (cl-lib (0 5))) tar "melpa" nil ((:url . "https://github.com/mooz/js2-mode/") (:keywords "languages" "javascript")) nil] [cl-struct-package-desc ido-ubiquitous (20150305 2254) "Use ido (nearly) everywhere." ((emacs (24 1))) single "melpa" nil ((:url . "https://github.com/DarwinAwardWinner/ido-ubiquitous") (:keywords "convenience" "completion" "ido")) nil] [cl-struct-package-desc helm-ag (20150304 2007) "the silver searcher with helm interface" ((helm (1 5 6)) (cl-lib (0 5))) single "melpa" nil ((:url . "https://github.com/syohex/emacs-helm-ag")) nil] [cl-struct-package-desc helm (20150305 1205) "Helm is an Emacs incremental and narrowing framework" ((emacs (24)) (cl-lib (0 5)) (async (1 2))) tar "melpa" nil nil nil] [cl-struct-package-desc company (20150304 904) "Modular text completion framework" ((emacs (24 1)) (cl-lib (0 5))) tar "melpa" nil ((:url . "http://company-mode.github.io/") (:keywords "abbrev" "convenience" "matching")) nil] [cl-struct-package-desc anzu (20150305 553) "Show number of matches in mode-line while searching" ((cl-lib (0 5)) (emacs (24))) single "melpa" nil ((:url . "https://github.com/syohex/emacs-anzu")) nil]))
  package-menu-execute()
  #<subr call-interactively>(package-menu-execute nil nil)
  ad-Advice-call-interactively(#<subr call-interactively> package-menu-execute nil nil)
  apply(ad-Advice-call-interactively #<subr call-interactively> (package-menu-execute nil nil))
  call-interactively(package-menu-execute nil nil)
  command-execute(package-menu-execute)

I think i sometimes (but only sometimes) get an error in find-files, but i can reproduce this behaviour 100% with list-packages.

[FR] stash hunk at point

It'd be awesome if git-gutter+ had a way to stash the hunk at point, as an alternative to staging it.

possible feature: jump to hunk with completing-read

Inspired by this blogpost, a while ago I wrote a command which used git-gutter-plus to displaye a list of hunks in completing-read, and jump point to the one selected. I wrote it in ivy, and it had ivy actions for staging and reverting hunks.

I've since moved away from ivy and I now use a vertico/counsel/embark stack. I'm going to rewrite my command in more generic elisp, and hopefully add embark and vertico support for it. Would you like me to make a PR and include it in the git-gutter-plus core? I could include ivy support as before for those who use that, and maybe look at helm as well.

git-gutter+ has error in sh-mode sometimes

(wrong-number-of-arguments nil 0)
  signal(wrong-number-of-arguments (nil 0))
  git-gutter+-process-diff("/home/stardiviner/scripts/autostart/play_video.sh")
  git-gutter+-refresh()
  run-hooks(after-save-hook)
  basic-save-buffer()
  save-buffer(1)
  funcall-interactively(save-buffer 1)
  call-interactively(save-buffer nil nil)
  command-execute(save-buffer)

I open the file with Emacs server mode enabled, and open it with emacsclient.
I got this error backtrack sometimes when I open a bash script file, and do some modifcations, and try to save this file. Then I got this error.

And I have not meet this error in other formats. and not in a opened new file.

My Emacs version: "GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.4)\n of 2014-11-03 on dark"

Activating git-gutter-plus produces a tramp error during initilisation

I have only a simple git-gutter-plus configuration:

(use-package git-gutter+
    :if (executable-find "git")
    :init
    (global-git-gutter+-mode))

It worked fine. Since a week or so I will get on each start the following error message:

Debugger entered--Lisp error: (error "Wrong ‘tramp-syntax’ defined")
  signal(error ("Wrong ‘tramp-syntax’ defined"))
  error("Wrong `tramp-syntax' defined")

If you look at the backtrace.txt (debug output), you will see the error message is produced in context of git-gutter+. If I disable git-gutter+ than I won't get any startup error.

Regarding tramp I don't use or configure it anywhere in my config file. I use git-gutter+ 20151204.923 on Emacs GNU Emacs 25.3.1 (x86_64-w64-mingw32).

git-commit-mode dependency is unavailable

Howdy,

After doing a rm -rf ~/.emacs.d I am now getting:

Package `git-commit-mode-0.14' is unavailable

when I try to package-install git-gutter+.

It seems like git-commit-mode is now (part of?) magit?

Any plan to add flydiff mode?

I'd love if it could update as I type, without needing to save the buffer like diff-hl can do using its flydiff mode. Currently, neither package have all the features I'd want, flydiff is the only one missing from git-gutter+ for me, that's why I ask.

Thanks.

Update to git-commit.el

Unfortunately, magit no longer tolerates the presence of git-commit-mode.el. Apparently because it has been superseded by git-commit.el. See the magit 2.1 changelog for the announcement of this change.

A cursory inspection suggest that all that is required to make this update is to switch to depending on thegit-commit package rather than git-commit-mode. The two are mostly source identical.

`git-gutter+-commit` broken by latest magit

The latest version of magit on MELPA has changed the way committing works and git-gutter+-commit is now broken. Magit now uses git-commit-mode, and magit-log-edit is no longer defined.

Thanks for the great mode! I've gotten used to doing hunk-level commits with this mode, so this magit breakage is pretty rough! ;)

Error opening tramp files

When opening a version controlled file via tramp, the following error is occurs and the buffer fails to focus, however the file is still opened:

git-gutter+-refresh: Wrong type argument: arrayp, (tramp-file-name "ssh" "USERNAME" nil "hostname.whatever.lol" nil #("/u/USERNAME/path/to/file.c" 66 74 (ws-butler-chg chg)) nil)

Very slow on large files

I have a large org-file (300k) that git-gutter-+ runs slowly on, as in it takes 5 seconds for git-gutter+-refresh to run.

Using regulargit-gutter-mode runs instantaneously.

Here's the profiler report.

   - save-buffer                                                 5035  84%
    - basic-save-buffer                                          5035  84%
     - run-hooks                                                 5031  84%
      - git-gutter+-refresh                                      5023  84%
       - git-gutter+-process-diff                                5022  84%
        - git-gutter-fr+-view-diff-infos                         5022  84%
         - mapc                                                  5019  83%
          - git-gutter-fr+-view-diff-info                        5019  83%
           - git-gutter-fr+-view-region                          5019  83%
              fringe-helper-insert-region                           6   0%

git-gutter+-show-hunk not updating when switching between hunks

I have switched to git-gutter+ from git-gutter, and I am very happy with it for the most part, but the git-gutter+-show-hunk diff is not updating when I call git-gutter+-previous-hunk and git-gutter+-next-hunk. The point does move to different hunks, but the diff displays for the hunk when git-gutter+-show-hunk was first called. According to the documentation this should update the diff, so I am wondering if this is a bug, or something I need to configure differently. This feature does work for me in git-gutter, and I was hoping for similar functionality with this mode. Thank you!

(void-variable git-commit-mode-map)

After install git-gutter+ and write add (global-git-gutter+-mode) to .emacs

it shows:

Debugger entered--Lisp error: (void-variable git-commit-mode-map)
  byte-code("\302\303\304\305#\210\306�!\307�\310\311#\210\307�\312\313#\210\307�\314\315#\210\307�\316\317#\210\307�\320\321#\210\307�\322\323#\210\307�\324\325#\210\307�\326\327#\210\307�\330\331#\210\211\262��\332\333\334\335\336\337%\207" [git-commit-mode-map git-gutter+-commit-mode-map put git-gutter+-commit-mode derived-mode-parent git-commit-mode copy-keymap define-key "��" git-gutter+-publish-commit "��" git-gutter+-close-commit-edit-buffer "��" git-gutter+-commit-toggle-amending "��" git-gutter+-commit-toggle-allow-empty "��" git-gutter+-commit-toggle-author "��" git-gutter+-commit-toggle-date "��" git-commit-ack [134217840] log-edit-previous-comment [134217838] log-edit-next-comment custom-declare-face git-gutter+-commit-header-face ((t :inherit font-lock-comment-face)) "Highlights the commit message header" :group git-gutter+-faces] 6)
  (global-git-gutter+-mode)
  eval-buffer(#<buffer  *load*-114986> nil "/home/chxp/syncthing/emacs/_emacs" nil t)  ; Reading at buffer position 9208
  load-with-code-conversion("/home/chxp/syncthing/emacs/_emacs" "/home/chxp/syncthing/emacs/_emacs" nil nil)
  load("/home/chxp/syncthing/emacs/_emacs" nil nil t)
  load-file("~/syncthing/emacs/_emacs")
  eval-buffer(#<buffer  *load*> nil "/home/chxp/.emacs" nil t)  ; Reading at buffer position 39
  load-with-code-conversion("/home/chxp/.emacs" "/home/chxp/.emacs" t t)
  load("~/.emacs" t t)
  #[0 "�\205\262

So what I need to install addtionally? I tried git-commit-mode or git-auto-commit and so on, no one works

clarify reason for fork, and maintenance strategy

Hi there,

Thanks a lot for sharing this! Please could you clarify why git-gutter-plus was created, and what are the plans for its future? It seems to be a fork of git-gutter, and the README says "It contains patches that haven't yet been added to Git-Gutter", but is the intention to act as a friendly fork and submit these patches back to git-gutter, or will it remain diverged? It would be really helpful to clarify the differences between the two projects, and what are the long-term intentions around how they are maintained, so that users are not confused and can make a well-educated choice which one to use.

Thanks again!

injects git warnings into commit messages

When git prints non-criticial warnings or error messages, these are injected into commit messages.

E.g.

# prepare git repository
mkdir /tmp/XXX
cd /tmp/XXX
git init

# cause a warning
echo /non-existing > .git/objects/info/alternates

# do some work
echo foo > test
git add test
git commit -m 'initial checkin' test

Now, open the /tmp/XXX/test file in emacs, change it, do git-gutter+-stage-hunks and git-gutter+-commit.

The resulting commit message will contain the

error: object directory /non-existing does not exist; check .git/objects/info/alternates.

warning which is sometimes added to the code too.

Wierd interaction with line numbering

Only the frist number is shown:
gitgutterlinenums

My line numbers conf:

;; line numbers
(setq linum-format "%4d")

My git gutter+ conf (inside my after init hook)

;; Do stuff after package initialization
(defun my-after-init-hook ()
  (require 'multiple-cursors)
  ;; Smex on M-x
  (smex-initialize)
  ;; Helm
  (require 'helm-config)
  (helm-mode 1)
  (helm-autoresize-mode 1)
  (require 'helm-ls-git)
  (setq helm-M-x-fuzzy-match t)
  (setq helm-buffers-fuzzy-matching t
    helm-recentf-fuzzy-match    t)
  (projectile-global-mode)
  (setq projectile-completion-system 'helm)
  (helm-projectile-on)
  (global-git-gutter+-mode)
  ;; SubWordMode
  (subword-mode)
  )

Why should I use this instead of the original git-gutter.el?

The readme sais:

It contains patches that haven't yet been added to Git-Gutter.

That's a bit vague.

Does it have additional features? (If so, which and does it also lack features?) Or does it just implement some things more cleanly? (If so, why was it still necessary to fork?)

Also the yet implies that this will be merged eventually; it doesn't really look like that is ever going to happen.

git-gutter seems to be more actively maintained than git-gutter+. Do you intend to incorporate changes into your fork and just didn't get to it yet? Or do you think git-gutter is headed into the wrong direction?

These questions should be answered in the readme. If you don't do that then every users has to either randomly pick one over the other, or manually compare the source code.

I had a quick look at emacsorphanage/git-gutter#30. So at least initially the changes were:

  • some cleanup
  • Never EVER calculate diffs on window-configuration-change.
  • Minimize calls to git-gutter from various hooks

To me it looks like this this fork exists mainly because @nonsequitur created a pull request that did to much and @syohex, instead of requesting that it be split up, just didn't do anything about it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.