{"action":"created","issue":{"url":"https://api.github.com/repos/glynnforrest/salt-mode/issues/20","repository_url":"https://api.github.com/repos/glynnforrest/salt-mode","labels_url":"https://api.github.com/repos/glynnforrest/salt-mode/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/glynnforrest/salt-mode/issues/20/comments","events_url":"https://api.github.com/repos/glynnforrest/salt-mode/issues/20/events","html_url":"https://github.com/glynnforrest/salt-mode/pull/20","id":369882194,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIyNzAyMjE3","number":20,"title":"Fix compatibility issue with evil bindings","user":{"login":"cipharius","id":1903120,"node_id":"MDQ6VXNlcjE5MDMxMjA=","avatar_url":"https://avatars1.githubusercontent.com/u/1903120?v=4","gravatar_id":"","url":"https://api.github.com/users/cipharius","html_url":"https://github.com/cipharius","followers_url":"https://api.github.com/users/cipharius/followers","following_url":"https://api.github.com/users/cipharius/following{/other_user}","gists_url":"https://api.github.com/users/cipharius/gists{/gist_id}","starred_url":"https://api.github.com/users/cipharius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cipharius/subscriptions","organizations_url":"https://api.github.com/users/cipharius/orgs","repos_url":"https://api.github.com/users/cipharius/repos","events_url":"https://api.github.com/users/cipharius/events{/privacy}","received_events_url":"https://api.github.com/users/cipharius/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-10-14T08:59:18Z","updated_at":"2018-12-01T21:57:16Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/glynnforrest/salt-mode/pulls/20","html_url":"https://github.com/glynnforrest/salt-mode/pull/20","diff_url":"https://github.com/glynnforrest/salt-mode/pull/20.diff","patch_url":"https://github.com/glynnforrest/salt-mode/pull/20.patch"},"body":"The use of `buffer-list-update-hook` interferes with \r\nevil key bindings, by indirectly resetting temporary key\r\nmap used for evil operator pending state.\r\n\r\nI suggest switching to `post-command-hook`. It should\r\nprovide similar behavior but will be safer alternative.\r\n\r\nAlthough please test, whether previous functionality is\r\nstill there, as it wasn't too clear for me what that function\r\nshould be doing.\r\n\r\nRelated issue: https://github.com/syl20bnr/spacemacs/issues/9707"},"comment":{"url":"https://api.github.com/repos/glynnforrest/salt-mode/issues/comments/443461657","html_url":"https://github.com/glynnforrest/salt-mode/pull/20#issuecomment-443461657","issue_url":"https://api.github.com/repos/glynnforrest/salt-mode/issues/20","id":443461657,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MzQ2MTY1Nw==","user":{"login":"Miciah","id":2042465,"node_id":"MDQ6VXNlcjIwNDI0NjU=","avatar_url":"https://avatars1.githubusercontent.com/u/2042465?v=4","gravatar_id":"","url":"https://api.github.com/users/Miciah","html_url":"https://github.com/Miciah","followers_url":"https://api.github.com/users/Miciah/followers","following_url":"https://api.github.com/users/Miciah/following{/other_user}","gists_url":"https://api.github.com/users/Miciah/gists{/gist_id}","starred_url":"https://api.github.com/users/Miciah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Miciah/subscriptions","organizations_url":"https://api.github.com/users/Miciah/orgs","repos_url":"https://api.github.com/users/Miciah/repos","events_url":"https://api.github.com/users/Miciah/events{/privacy}","received_events_url":"https://api.github.com/users/Miciah/received_events","type":"User","site_admin":false},"created_at":"2018-12-01T21:57:16Z","updated_at":"2018-12-01T21:57:16Z","author_association":"NONE","body":"> I'm nervous about switching to `post-command-hook`, as it runs far more frequently.\r\n\r\nI don't think that is true.  For fun, I did the following:\r\n\r\n1. Evaluate the following:\r\n```emacs-lisp\r\n(progn\r\n  (defun b-l-u-h () (sleep-for 0.01))\r\n  (push #'b-l-u-h buffer-list-update-hook)\r\n  (profiler-start 'cpu))\r\n```\r\n2. Move the cursor, switch windows a couple times, or do some other random activity.\r\n3. Evaluate the following:\r\n```emacs-lisp\r\n(progn\r\n  (profiler-report)\r\n  (profiler-stop)\r\n  (pop buffer-list-update-hook))\r\n```\r\n4. Look through the profiler output for \"b-l-u-h\" to see where it's getting called.\r\n\r\nThe resulting profiler output shows that all manner of standard functions trigger `buffer-list-update-hook`: `decode-coding-string`, `expand-file-name`, `file-exists-p`, `file-name-case-insensitive-p`, `format-time-string`, and more.  These functions are often used in updating the frame title (for example, Projectile uses a lot of the file-related functions), updating the mode line (e.g., `format-time-string` for a clock), or buffer (e.g., Flyspell uses `decode-coding-string`).  A few key presses can cause the hook to be triggered hundreds of times (add `(message \"buffer-list-update-hook\")` to the added hook to see)."}}
{"actor":{"display_login":"Miciah"}}