<feed xmlns='http://www.w3.org/2005/Atom'>
<title>evil.git/evil-core.el, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/'/>
<entry>
<title>Replace uses of `defadvice` with `advice-add`</title>
<updated>2024-09-15T08:32:14+00:00</updated>
<author>
<name>Stefan Monnier</name>
<email>monnier@iro.umontreal.ca</email>
</author>
<published>2023-07-01T20:30:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=c17f03cf876f754f6249e616947f2485036ca7f8'/>
<id>c17f03cf876f754f6249e616947f2485036ca7f8</id>
<content type='text'>
This either requires a dependency on the `nadvice` package,
or bumping the minimum Emacs version to 24.4.  I went with
the `nadvice` package, but maybe bumping up to 24.4 would be better.

* evil.el: Require `nadvice`.

* evil-core.el (evil--advices): New var.
(evil-mode): Use it instead of `ad-dis/enable`.
(evil--advice-add): New function.
(set-window-buffer, select-window, toggle-input-method, use-global-map):
* evil-search.el (isearch-message-prefix, isearch-delete-char)
(isearch-lazy-highlight-search):
* evil-integration.el (keyboard-quit, wdired-change-to-dired-mode)
(show-paren-function, quail-show-key, describe-char, ace-jump-done):
Use `(evil--)advice-add` instead of `defadvice`.
(preceding-sexp, pp-last-sexp): Remove old code for when `advice-add`
is not available.

* evil-repeat.el (evil--read-key-sequence-advice): Adapt to use in
`advice-add`.
(read-key-sequence, read-key-sequence-vector): Use `advice-add`.

* evil-keybindings.el (elp-results): Use `advice-add` and move outside
of `eval-after-load`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This either requires a dependency on the `nadvice` package,
or bumping the minimum Emacs version to 24.4.  I went with
the `nadvice` package, but maybe bumping up to 24.4 would be better.

* evil.el: Require `nadvice`.

* evil-core.el (evil--advices): New var.
(evil-mode): Use it instead of `ad-dis/enable`.
(evil--advice-add): New function.
(set-window-buffer, select-window, toggle-input-method, use-global-map):
* evil-search.el (isearch-message-prefix, isearch-delete-char)
(isearch-lazy-highlight-search):
* evil-integration.el (keyboard-quit, wdired-change-to-dired-mode)
(show-paren-function, quail-show-key, describe-char, ace-jump-done):
Use `(evil--)advice-add` instead of `defadvice`.
(preceding-sexp, pp-last-sexp): Remove old code for when `advice-add`
is not available.

* evil-repeat.el (evil--read-key-sequence-advice): Adapt to use in
`advice-add`.
(read-key-sequence, read-key-sequence-vector): Use `advice-add`.

* evil-keybindings.el (elp-results): Use `advice-add` and move outside
of `eval-after-load`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix cursor colour</title>
<updated>2024-06-18T21:35:50+00:00</updated>
<author>
<name>fnussbaum</name>
<email>ferdinand.nussbaum@inf.ethz.ch</email>
</author>
<published>2024-06-15T19:46:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=d7c0f8f7f7f1a9469f35acd55d1dcb48b8989eb1'/>
<id>d7c0f8f7f7f1a9469f35acd55d1dcb48b8989eb1</id>
<content type='text'>
Fixes #502, fixes #1835. Refreshing the cursor when changing the evil state is
only needed (or almost only, see below) when the current buffer is displayed in the
selected window. If this is not the case, and the buffer is only displayed or
its window selected at some later point in time, then `evil-refresh-cursor` will
be called as part of the `window-configuration-change-hook` or as advice to
`select-window`.

However, this introduces the following tiny (and maybe acceptable?) regression:
When doing something like
```elisp
(with-current-buffer (some-buffer-displayed-in-another-window)
  (some-evil-state-with-a-different-cursor-type))
```
the cursor will not be refreshed in the other window before selecting it. The
cursor colour should indeed not be refreshed, because it is defined for the
whole frame; however, the cursor type should in principle be changed, as it is
defined per buffer and also defines the shape of the cursor in non-selected
windows.

There exist different ways to also handle this case, but they mostly seem ugly
or needlessly complicated to me. I think the most elegant way to fix this would
involve implementing per-buffer cursor colors in Emacs (as suggested in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24153d). What do you think?
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #502, fixes #1835. Refreshing the cursor when changing the evil state is
only needed (or almost only, see below) when the current buffer is displayed in the
selected window. If this is not the case, and the buffer is only displayed or
its window selected at some later point in time, then `evil-refresh-cursor` will
be called as part of the `window-configuration-change-hook` or as advice to
`select-window`.

However, this introduces the following tiny (and maybe acceptable?) regression:
When doing something like
```elisp
(with-current-buffer (some-buffer-displayed-in-another-window)
  (some-evil-state-with-a-different-cursor-type))
```
the cursor will not be refreshed in the other window before selecting it. The
cursor colour should indeed not be refreshed, because it is defined for the
whole frame; however, the cursor type should in principle be changed, as it is
defined per buffer and also defines the shape of the cursor in non-selected
windows.

There exist different ways to also handle this case, but they mostly seem ugly
or needlessly complicated to me. I think the most elegant way to fix this would
involve implementing per-buffer cursor colors in Emacs (as suggested in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24153d). What do you think?
</pre>
</div>
</content>
</entry>
<entry>
<title>Added clarification to evil-define-key for escaping modifier keys (#1856)</title>
<updated>2024-01-11T13:50:40+00:00</updated>
<author>
<name>Naokotani</name>
<email>naokotani@protonmail.com</email>
</author>
<published>2024-01-11T13:50:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=59774e369aefba721ff8b72bfb88bdf12f8ecd74'/>
<id>59774e369aefba721ff8b72bfb88bdf12f8ecd74</id>
<content type='text'>
* Added clarification to evil-define-key for escaping modifier keys

It is useful to have clarification in the doc string for
evil-define-key that it is necessary to escape modifiers keys for
users that are accustomed to using functions like global-set-key or
keymap-global-set where this is not necessary. This is also not made
particularly clear in the define-key function itself, which is a
legacy function.

* Fixed poor wording and used kdb in place of escape sequence</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Added clarification to evil-define-key for escaping modifier keys

It is useful to have clarification in the doc string for
evil-define-key that it is necessary to escape modifiers keys for
users that are accustomed to using functions like global-set-key or
keymap-global-set where this is not necessary. This is also not made
particularly clear in the define-key function itself, which is a
legacy function.

* Fixed poor wording and used kdb in place of escape sequence</pre>
</div>
</content>
</entry>
<entry>
<title>Fix define-globalized-minor-mode BODY in Emacs &lt;27</title>
<updated>2023-12-13T22:56:10+00:00</updated>
<author>
<name>Axel Forsman</name>
<email>axel@axelf.se</email>
</author>
<published>2023-11-14T11:50:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=16506d934342fd905ce4c88684f04ddb123c02a4'/>
<id>16506d934342fd905ce4c88684f04ddb123c02a4</id>
<content type='text'>
This commit reintroduces the evil-mode advice that commit
f003ca28a9691d24a17866e5dce3e7866c9bb257 replaced with a BODY argument
to define-globalized-minor-mode, as that broke support for older
versions of Emacs since the BODY parameter was only recently
introduced in Emacs 27.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit reintroduces the evil-mode advice that commit
f003ca28a9691d24a17866e5dce3e7866c9bb257 replaced with a BODY argument
to define-globalized-minor-mode, as that broke support for older
versions of Emacs since the BODY parameter was only recently
introduced in Emacs 27.
</pre>
</div>
</content>
</entry>
<entry>
<title>Some cleanups</title>
<updated>2023-08-20T22:46:23+00:00</updated>
<author>
<name>Axel Forsman</name>
<email>axel@axelf.se</email>
</author>
<published>2023-08-08T19:56:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=1c4c3bfff8987aa498d6bb8bd88e2e4ba9615ab9'/>
<id>1c4c3bfff8987aa498d6bb8bd88e2e4ba9615ab9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Misc minor changes</title>
<updated>2023-08-20T22:46:23+00:00</updated>
<author>
<name>Stefan Monnier</name>
<email>monnier@iro.umontreal.ca</email>
</author>
<published>2022-09-30T21:49:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=a9a9c65b5d0777048c4e8a66fcc06032e3dafc18'/>
<id>a9a9c65b5d0777048c4e8a66fcc06032e3dafc18</id>
<content type='text'>
* README.md: Mention that `undo-fu` is also in NonGNU ELPA and update
its repository URL.
* evil.el: Update the undo-fu repository URL.
* evil-macros.el (evil-define-interactive-code): Move the insertion of
quote around `func` to the `cond` so the `quote` is not incorrectly
added around lambda forms.
* evil-tests.el: Add a FIXME.
* evil-commands.el (evil-save-side-windows): Silence spurious warning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* README.md: Mention that `undo-fu` is also in NonGNU ELPA and update
its repository URL.
* evil.el: Update the undo-fu repository URL.
* evil-macros.el (evil-define-interactive-code): Move the insertion of
quote around `func` to the `cond` so the `quote` is not incorrectly
added around lambda forms.
* evil-tests.el: Add a FIXME.
* evil-commands.el (evil-save-side-windows): Silence spurious warning.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge evil-with-delay condition and body lambdas</title>
<updated>2023-08-20T22:46:23+00:00</updated>
<author>
<name>Axel Forsman</name>
<email>axel@axelf.se</email>
</author>
<published>2023-08-07T16:35:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=3398b13b7455000d5647a13e0dfaf06ba8e31ba2'/>
<id>3398b13b7455000d5647a13e0dfaf06ba8e31ba2</id>
<content type='text'>
This commit makes evil-with-delay generated code work using a single
lambda that returns the result of condition, running body if non-nil.
This way the byte compiler sees that body is guarded by condition,
which fixes the FIXME.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit makes evil-with-delay generated code work using a single
lambda that returns the result of condition, running body if non-nil.
This way the byte compiler sees that body is guarded by condition,
which fixes the FIXME.
</pre>
</div>
</content>
</entry>
<entry>
<title>(evil-with-delay): New macro, extracted from `evil-delay`</title>
<updated>2023-08-20T22:46:23+00:00</updated>
<author>
<name>Stefan Monnier</name>
<email>monnier@iro.umontreal.ca</email>
</author>
<published>2023-07-01T20:05:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=44add36e972ed22ded6cb89654986e80d1d8989e'/>
<id>44add36e972ed22ded6cb89654986e80d1d8989e</id>
<content type='text'>
Save some kittens by using a macro instead of using `eval`.
This also exposes more code to the compiler, so should result in
more efficient code and potentially better compiler warnings.

* evil-common.el (evil-unquote): Delete unused function.
(evil--with-delay): New function, extracted from `evil-delay`.
(evil-with-delay): New macro, extracted from `evil-delay`.
(evil-delay): Redefine using `evil-with-delay` and declare obsolete.

* evil-states.el (evil-visual-activate-hook):
* evil-core.el (evil-define-key):
* evil-commands.el (evil-execute-in-normal-state): Use `evil-with-delay`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Save some kittens by using a macro instead of using `eval`.
This also exposes more code to the compiler, so should result in
more efficient code and potentially better compiler warnings.

* evil-common.el (evil-unquote): Delete unused function.
(evil--with-delay): New function, extracted from `evil-delay`.
(evil-with-delay): New macro, extracted from `evil-delay`.
(evil-delay): Redefine using `evil-with-delay` and declare obsolete.

* evil-states.el (evil-visual-activate-hook):
* evil-core.el (evil-define-key):
* evil-commands.el (evil-execute-in-normal-state): Use `evil-with-delay`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Urgent revert of recent commits while evil is broken</title>
<updated>2023-08-13T17:04:39+00:00</updated>
<author>
<name>Tom Dalziel</name>
<email>tom_dl@hotmail.com</email>
</author>
<published>2023-08-13T17:03:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=b7b4961a14cd1a51e9a10564fd6c741567d39891'/>
<id>b7b4961a14cd1a51e9a10564fd6c741567d39891</id>
<content type='text'>
Some of these commits can be almost immediately restored,
once the time is found to do so.

Revert "Fix evil-with-delay with dynamic binding"

This reverts commit 1e9b2434264529fe0dd964b68fe89236a4abeac3.

Revert "Some cleanups"

This reverts commit 0cbd61f2de104fab16602d0418605cd0513b16f3.

Revert "Misc minor changes"

This reverts commit b291039b0c6ffc3b2f3c9f02b8ad2f0041127b12.

Revert "Merge evil-with-delay condition and body lambdas"

This reverts commit 1b56ffcc102b4c5f8b015e760b5f9cf5932622af.

Revert "(evil-with-delay): New macro, extracted from `evil-delay`"

This reverts commit 3d7faadf30016a8c20699a5fb1b5731b8a49dcd2.

Revert "Make evil-search-wrap-ring-bell work with evil-search"

This reverts commit 5e72cf5b6d57b785ea229236bb5c4638db2c9a05.

Revert "Stop the '&lt;/'&gt; and '[/'] marks from intertwining"

This reverts commit 26db9441a13ebedb2481d7ada4c3b5e60ec22795.

Revert "Remove redundant `:group` args"

This reverts commit 6e30037fdc6a275d78d6b82d89bd8e47bcf4d4e3.

Revert "Avoid eval in evil-test-buffer"

This reverts commit 27d81ad406d2d3e07591b927357d2354ef5b5c65.

Revert "Use lexical-binding everywhere"

This reverts commit 44c7f301468c264a781be4ee8ae879fe1b457e60.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some of these commits can be almost immediately restored,
once the time is found to do so.

Revert "Fix evil-with-delay with dynamic binding"

This reverts commit 1e9b2434264529fe0dd964b68fe89236a4abeac3.

Revert "Some cleanups"

This reverts commit 0cbd61f2de104fab16602d0418605cd0513b16f3.

Revert "Misc minor changes"

This reverts commit b291039b0c6ffc3b2f3c9f02b8ad2f0041127b12.

Revert "Merge evil-with-delay condition and body lambdas"

This reverts commit 1b56ffcc102b4c5f8b015e760b5f9cf5932622af.

Revert "(evil-with-delay): New macro, extracted from `evil-delay`"

This reverts commit 3d7faadf30016a8c20699a5fb1b5731b8a49dcd2.

Revert "Make evil-search-wrap-ring-bell work with evil-search"

This reverts commit 5e72cf5b6d57b785ea229236bb5c4638db2c9a05.

Revert "Stop the '&lt;/'&gt; and '[/'] marks from intertwining"

This reverts commit 26db9441a13ebedb2481d7ada4c3b5e60ec22795.

Revert "Remove redundant `:group` args"

This reverts commit 6e30037fdc6a275d78d6b82d89bd8e47bcf4d4e3.

Revert "Avoid eval in evil-test-buffer"

This reverts commit 27d81ad406d2d3e07591b927357d2354ef5b5c65.

Revert "Use lexical-binding everywhere"

This reverts commit 44c7f301468c264a781be4ee8ae879fe1b457e60.
</pre>
</div>
</content>
</entry>
<entry>
<title>Some cleanups</title>
<updated>2023-08-12T13:29:37+00:00</updated>
<author>
<name>Axel Forsman</name>
<email>axel@axelf.se</email>
</author>
<published>2023-08-08T19:56:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/evil.git/commit/?id=0cbd61f2de104fab16602d0418605cd0513b16f3'/>
<id>0cbd61f2de104fab16602d0418605cd0513b16f3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
