New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In dired mode the diff-hl fringe markings keep flickering #92
Comments
What do you mean flickering? Like, changing over time even when you don't refresh the view? You might want to post a video, but it sounds like a bug which you should report to Emacs. What's your version? |
Flickering means the diff-hl highlights and markings (i) keeps disappearing then coming back. Doesn't seem to be an emacs issue since other directories with no (ignored) files are fine. emacs version 25.2, diff-hl version (latest) |
Does that happen only once, when you enter a new directory? |
no. it keeps flickering, on and off and scrolling up and down is troubling too. Not until I enter a new directory with no ignored files then things go back to normal. |
Ok. I noticed that this behaviour happens when I have auto revert on for the dired mode:
|
Oh, I see. Not sure what to do about it, though. The obvious approach doesn't seem to change much: diff --git a/diff-hl-dired.el b/diff-hl-dired.el
index 947c2b6..6f5e9b5 100644
--- a/diff-hl-dired.el
+++ b/diff-hl-dired.el
@@ -93,7 +93,6 @@ status indicators."
(buffer (current-buffer))
dirs-alist files-alist)
(when (and backend (not (memq backend diff-hl-dired-ignored-backends)))
- (diff-hl-dired-clear)
(if (buffer-live-p diff-hl-dired-process-buffer)
(let ((proc (get-buffer-process diff-hl-dired-process-buffer)))
(when proc (kill-process proc)))
@@ -131,6 +130,7 @@ status indicators."
(setcdr (assoc dir dirs-alist) 'change)))))
(push (cons file type) files-alist)))))
(unless more-to-come
+ (diff-hl-dired-clear)
(diff-hl-dired-highlight-items
(append dirs-alist files-alist))))
(unless more-to-come Probably because the entire buffer is being redrawn, and the existing marks are gone with it. Here's something for you to investigate, though: normally, Dired does not revert unless Is it the case, though, that somewhere within the directory in question a log file is being written to? |
Looking at my Messages buffer I see these messages, you think they are related?
|
Maybe. You should try and see if the "error in process sentinel" ones happen without |
For diff-hl-dired-mode together with diff-hl-margin-mode Reported in #92.
This should be fixed now (but will probably change nothing for the discussed problem). |
Well, now the ignores (i) don't show at all in dired mode. Even when enabled in diff-hl. |
They do show up here. You might have to customize the face |
No my friend. I checked out an older init.el file. Tried removing custom from my .emacs file. Switched themes. nothing worked. The (i) don't show up for me anymore. |
As you can see, it just added two faces. Could you post your current definitions (using |
|
Ok. after a while browsing other files, coming back to that directory I see the (i)s, but as you mentioned the push is not related to the flickering, so the issue still present. |
You were looking in other directories, then?
Please go back to these questions:
|
I did not see the (i) mark since yesterday. No markings whatsoever actually. And only in project main directory. Inside the directories headers and source everything is normal. |
Why?
Could you try reproducing the problem in an example project and posting it somewhere, archived? |
You mentioned the possibility of some logfile getting continuously updated, so ls -ltra will tell you if files has been altered in the directory. I now found something else. If I start emacs from inside the directory then I wont see any diff-hl markings. If I start emacs in some other directory and then browse to the troubling directory then I see the markings and they flicker and also I see:
In the Messages buffer. I am using Mercurial so I have .hg directory with repos info in the main directory. I will see if I can provide a smaller sample project for you to test. |
Ok, go to my github and down load the new.tar file: https://github.com/hisnawi/dotfiles untar it. It is a mercurial simple project. Open emacs outside the directory then browse to it. Try having same as my set up for dired and diff-hl:
I also want to mention that I removed everything inside my init.el file except these two packages and I still see the issue inside this simple project.
|
Thanks. I can see the refreshes, but no other problems that you reported, so far.
That's not what Emacs is looking at, though. It looks at the modification time of the directory itself. And if you I'm not sure why this happens. Maybe it's a bug in VC, or auto-revert-mode, or something else. Please go ahead and report it. |
Or maybe it's something we can't do anything about: just calling |
Also note that you are enabling
That's highly unlikely to cause any problems, just unnecessary. |
Thanks for noting that. I removed the extra (diff-hl-margin-mode). |
This is my setup:
In the main directory of the project there are multiple ignored files and directories (listed in .hgignore) and I noticed that they keep flickering. moving down the dired list is also tricky as the list keeps moving when the diff-hl symbols flicker. Other directories which don't have ignored files but have modified files are fine and don't show the same behaviour.
The text was updated successfully, but these errors were encountered: