unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially.
       [not found] ` <20230112174816.7E88BC00A7F@vcs2.savannah.gnu.org>
@ 2023-01-13 12:49   ` Robert Pluim
  2023-01-13 13:37     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Pluim @ 2023-01-13 12:49 UTC (permalink / raw)
  To: emacs-devel; +Cc: Gregory Heytings, Juri Linkov

>>>>> On Thu, 12 Jan 2023 12:48:16 -0500 (EST), Juri Linkov <juri@jurta.org> said:

    Juri> branch: emacs-29
    Juri> commit 9ecebcdded157e1efc2f51b67967fd101797f225
    Juri> Author: Gregory Heytings <gregory@heytings.org>
    Juri> Commit: Juri Linkov <juri@linkov.net>

    Juri>     * lisp/simple.el (next-completion): Handle first completion specially.
    
    Juri>     When completions-header-format is nil and completion-show-help is nil,
    Juri>     the first completion is at the beginning the buffer, so 'M-<down>'
    Juri>     missed it and moved to the second completion.  Handle this case by
    Juri>     setting/checking the special text-property 'first-completion' that
    Juri>     is nil at the first call (bug#60411).

This causes the following test failure for me:

Making completion list...

Test completions-header-format-test backtrace:
  signal(ert-test-failed (((should (equal "ac" (get-text-property (poi
  ert-fail(((should (equal "ac" (get-text-property (point) 'completion
  #f(compiled-function () #<bytecode -0x141bfad86d70e309>)()
  minibuffer-setup()
  read-from-minibuffer("Prompt: " nil (keymap (menu-bar keymap (minibu
  completing-read-default("Prompt: " ("aa" "ab" "ac") nil nil nil nil 
  completing-read("Prompt: " ("aa" "ab" "ac"))
  #f(compiled-function () #<bytecode -0x1b72fd9b89f49f74>)()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name completions-header-format-test :docum
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) (
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/minibuffer-tests" "-
  command-line()
  normal-top-level()
Test completions-header-format-test condition:
    (ert-test-failed
     ((should
       (equal "ac"
	      (get-text-property ... ...)))
      :form
      (equal "ac"
	     #("ab" 0 1
	       (face ...)
	       1 2
	       (face ...)))
      :value nil :explanation
      (array-elt 1
		 (different-atoms
		  (99 "#x63" "?c")
		  (98 "#x62" "?b")))))
   FAILED  25/25  completions-header-format-test (0.000478 sec) at lisp/minibuffer-tests.el:414

Robert
-- 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially.
  2023-01-13 12:49   ` emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially Robert Pluim
@ 2023-01-13 13:37     ` Eli Zaretskii
  2023-01-13 13:57       ` Robert Pluim
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-01-13 13:37 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, gregory, juri

> From: Robert Pluim <rpluim@gmail.com>
> Cc: Gregory Heytings <gregory@heytings.org>, Juri Linkov <juri@linkov.net>
> Date: Fri, 13 Jan 2023 13:49:47 +0100
> 
> >>>>> On Thu, 12 Jan 2023 12:48:16 -0500 (EST), Juri Linkov <juri@jurta.org> said:
> 
>     Juri> branch: emacs-29
>     Juri> commit 9ecebcdded157e1efc2f51b67967fd101797f225
>     Juri> Author: Gregory Heytings <gregory@heytings.org>
>     Juri> Commit: Juri Linkov <juri@linkov.net>
> 
>     Juri>     * lisp/simple.el (next-completion): Handle first completion specially.
>     
>     Juri>     When completions-header-format is nil and completion-show-help is nil,
>     Juri>     the first completion is at the beginning the buffer, so 'M-<down>'
>     Juri>     missed it and moved to the second completion.  Handle this case by
>     Juri>     setting/checking the special text-property 'first-completion' that
>     Juri>     is nil at the first call (bug#60411).
> 
> This causes the following test failure for me:
> 
> Making completion list...
> 
> Test completions-header-format-test backtrace:
>   signal(ert-test-failed (((should (equal "ac" (get-text-property (poi
>   ert-fail(((should (equal "ac" (get-text-property (point) 'completion
>   #f(compiled-function () #<bytecode -0x141bfad86d70e309>)()
>   minibuffer-setup()
>   read-from-minibuffer("Prompt: " nil (keymap (menu-bar keymap (minibu
>   completing-read-default("Prompt: " ("aa" "ab" "ac") nil nil nil nil 
>   completing-read("Prompt: " ("aa" "ab" "ac"))
>   #f(compiled-function () #<bytecode -0x1b72fd9b89f49f74>)()
>   ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
>   ert-run-test(#s(ert-test :name completions-header-format-test :docum
>   ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
>   ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n
>   ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) (
>   ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
>   eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
>   command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/minibuffer-tests" "-
>   command-line()
>   normal-top-level()
> Test completions-header-format-test condition:
>     (ert-test-failed
>      ((should
>        (equal "ac"
> 	      (get-text-property ... ...)))
>       :form
>       (equal "ac"
> 	     #("ab" 0 1
> 	       (face ...)
> 	       1 2
> 	       (face ...)))
>       :value nil :explanation
>       (array-elt 1
> 		 (different-atoms
> 		  (99 "#x63" "?c")
> 		  (98 "#x62" "?b")))))
>    FAILED  25/25  completions-header-format-test (0.000478 sec) at lisp/minibuffer-tests.el:414

Fixed.  It's a clear case of a test that adapted the results to what
the code produced, not to the desired/expected value.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially.
  2023-01-13 13:37     ` Eli Zaretskii
@ 2023-01-13 13:57       ` Robert Pluim
  2023-01-13 14:57         ` Eli Zaretskii
  2023-01-14 17:17         ` Juri Linkov
  0 siblings, 2 replies; 6+ messages in thread
From: Robert Pluim @ 2023-01-13 13:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel, gregory, juri

>>>>> On Fri, 13 Jan 2023 15:37:36 +0200, Eli Zaretskii <eliz@gnu.org> said:

    Eli> Fixed.  It's a clear case of a test that adapted the results to what
    Eli> the code produced, not to the desired/expected value.

Itʼs fixed, but Iʼll admit that I donʼt understand why:

      (should (equal "aa" (get-text-property (point) 'completion--string)))
      (next-completion 3)
      (should (equal "ac" (get-text-property (point) 'completion--string)))
      (previous-completion 2)
      (should (equal "aa" (get-text-property (point) 'completion--string)))

So we go forward 3 from "aa" to get to "ac", but then to get back to
"aa" itʼs back 2?

Robert
-- 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially.
  2023-01-13 13:57       ` Robert Pluim
@ 2023-01-13 14:57         ` Eli Zaretskii
  2023-01-14 17:17         ` Juri Linkov
  1 sibling, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2023-01-13 14:57 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, gregory, juri

> From: Robert Pluim <rpluim@gmail.com>
> Cc: emacs-devel@gnu.org,  gregory@heytings.org,  juri@linkov.net
> Date: Fri, 13 Jan 2023 14:57:08 +0100
> 
> >>>>> On Fri, 13 Jan 2023 15:37:36 +0200, Eli Zaretskii <eliz@gnu.org> said:
> 
>     Eli> Fixed.  It's a clear case of a test that adapted the results to what
>     Eli> the code produced, not to the desired/expected value.
> 
> Itʼs fixed, but Iʼll admit that I donʼt understand why:
> 
>       (should (equal "aa" (get-text-property (point) 'completion--string)))
>       (next-completion 3)
>       (should (equal "ac" (get-text-property (point) 'completion--string)))
>       (previous-completion 2)
>       (should (equal "aa" (get-text-property (point) 'completion--string)))
> 
> So we go forward 3 from "aa" to get to "ac", but then to get back to
> "aa" itʼs back 2?

Because the first next-completion goes to "aa".  The original
"position" is _before_ the first candidate: that's what the commit
that you blamed was about.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially.
  2023-01-13 13:57       ` Robert Pluim
  2023-01-13 14:57         ` Eli Zaretskii
@ 2023-01-14 17:17         ` Juri Linkov
  2023-01-14 18:57           ` Juri Linkov
  1 sibling, 1 reply; 6+ messages in thread
From: Juri Linkov @ 2023-01-14 17:17 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, emacs-devel, gregory

>     Eli> Fixed.  It's a clear case of a test that adapted the results to what
>     Eli> the code produced, not to the desired/expected value.
>
> Itʼs fixed, but Iʼll admit that I donʼt understand why:
>
>       (should (equal "aa" (get-text-property (point) 'completion--string)))
>       (next-completion 3)
>       (should (equal "ac" (get-text-property (point) 'completion--string)))
>       (previous-completion 2)
>       (should (equal "aa" (get-text-property (point) 'completion--string)))
>
> So we go forward 3 from "aa" to get to "ac", but then to get back to
> "aa" itʼs back 2?

Indeed, the test was correct, but the implementation has a bug.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially.
  2023-01-14 17:17         ` Juri Linkov
@ 2023-01-14 18:57           ` Juri Linkov
  0 siblings, 0 replies; 6+ messages in thread
From: Juri Linkov @ 2023-01-14 18:57 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, emacs-devel, gregory

>>     Eli> Fixed.  It's a clear case of a test that adapted the results to what
>>     Eli> the code produced, not to the desired/expected value.
>>
>> Itʼs fixed, but Iʼll admit that I donʼt understand why:
>>
>>       (should (equal "aa" (get-text-property (point) 'completion--string)))
>>       (next-completion 3)
>>       (should (equal "ac" (get-text-property (point) 'completion--string)))
>>       (previous-completion 2)
>>       (should (equal "aa" (get-text-property (point) 'completion--string)))
>>
>> So we go forward 3 from "aa" to get to "ac", but then to get back to
>> "aa" itʼs back 2?
>
> Indeed, the test was correct, but the implementation has a bug.

This bug is fixed now.



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-01-14 18:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <167354569613.4370.3805904095626587994@vcs2.savannah.gnu.org>
     [not found] ` <20230112174816.7E88BC00A7F@vcs2.savannah.gnu.org>
2023-01-13 12:49   ` emacs-29 9ecebcdded: * lisp/simple.el (next-completion): Handle first completion specially Robert Pluim
2023-01-13 13:37     ` Eli Zaretskii
2023-01-13 13:57       ` Robert Pluim
2023-01-13 14:57         ` Eli Zaretskii
2023-01-14 17:17         ` Juri Linkov
2023-01-14 18:57           ` Juri Linkov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).