> From: Robert Weiner <rsw...@gmail.com>
> Date: January 31, 2020 at 8:14:49 PM EST
> To: gravityp...@posteo.de
> Subject: Re:  Feedback, Hyperbole 7.0.8 Test Release
> 
> I had a feeling there still might be some issues there.  I am not sure why 
> this code started having problems recently but we will figure it out.
> 
> -- Bob
> 
>> On Jan 31, 2020, at 1:39 PM, gravityp...@posteo.de wrote:
>> 
>> Morning!
>> 
>> The implicit buttons are working great after the pull -- awesome!
>> 
>> I'm still getting issues with the coloring on the explicit buttons, though. 
>> After pulling the current master and restarting, I had this error in my 
>> messages:
>> 
>>> Eager macro-expansion failure: (void-variable 
>>> hproperty:item-highlight-color)
>> 
>> And the button colors were still set to the defaults. I customized the 
>> variable, saved, and restarted, and it didn't stick as before.
>> 
>>>> On 31.01.2020 06:08, Robert Weiner wrote:
>>> #3 is now fixed if you 'git pull' again and then restart Emacs.  I
>>> believe that resolves all the issues you have listed.  -- Bob
>>>> On Thu, Jan 30, 2020 at 12:58 AM Robert Weiner <rsw...@gmail.com>
>>>> wrote:
>>>> #2 was a change we made to the button flash time handling that did
>>>> not account for the persistence of customizable variables. It left
>>>> you with a flash time of 1000 seconds that would timeout when you
>>>> pressed an additional key. That has been reverted in the latest git
>>>> repo master if you ‘git pull’ in the Hyperbole source directory
>>>> and then restart Hyperbole/emacs. Buttons should work properly
>>>> then.
>>>> We have replicated #3 and should have that fixed in another day.
>>>> Good catches.
>>>> -- Bob
>>>>> On Jan 29, 2020, at 4:16 PM, gravityp...@posteo.de wrote:
>>>>> Good afternoon,
>>>>> As recommended, I'm submitting my feedback on the 7.0.8 Test
>>>> Release here -- hopefully I'm doing this correctly.
>>>>> ---------------------------------------------
>>>>> OS: Windows 10 Home, Version 1909, Build 18363.592
>>>>> GNU Emacs 26.3 (build 1, x86_64-w64-mingw32) of 2019-08-29
>>>>> Hyperbole Built following the instructions on this Reddit post:
>>> https://www.reddit.com/r/emacs/comments/euzxmx/gnu_hyperbole_708_test_release_with_patches/
>>>> [1]
>>>>> Hyperbole Config:
>>>>>> ;; hyperbole
>>>>>> (require 'hyperbole)
>>>>>> (load "hyperbole-autoloads")
>>>>>> (load "hyperbole")
>>>>> ---------------------------------------------
>>>>> Feedback #1: Implicit Buttons are Much Improved! Action buttons
>>>> are great!
>>>>> ======================================================
>>>>> I wanna say, first, that the implicit buttons are much improved
>>>> in this release -- both in their ability to find the buttons, and in
>>>> the options for labeling and linking. Likewise, the new Action
>>>> Button syntax is cool! I'm super excited for the final build.
>>>>> Feedback #2: Possible Bug Causing Implicit Buttons Require
>>>> Additional User Input to Activate
>>>> ===================================================================
>>>>> Consider line 33 of the Hyperbole Demo document. It reads:
>>>>>> Hyperbole displays that file when you press {C-h h d a}.
>>>> Hyperbole assumes
>>>>> If I want to invoke the key-sequence implicit button, I move the
>>>> cursor there, and hit M-RET or click with the mouse action button.
>>>>> The expected behavior is, obviously, that the button flashes,
>>>> then activates. For me, though, activating the button causes the
>>>> button to highlight persistently -- and no action occurs until I
>>>> make another keypress. Any keypress that doesn't insert text works:
>>>> ESC, Right-Arrow, etc.
>>>>> Most of the time when I press the extra key, the button then just
>>>> activates as normal, and works as expected. Sometimes when I press a
>>>> key, I get an error like:
>>>>>> apply: Wrong type argument: commandp, (keymap (keymap (9 .
>>>> backward-button)) ESC-prefix)
>>>>> The debugger output:
>>>>>> Debugger entered--Lisp error: (wrong-type-argument commandp
>>>> (keymap (keymap (9 . backward-button)) ESC-prefix))
>>>>>> #<subr call-interactively>((keymap (keymap (9 .
>>>> backward-button)) ESC-prefix))
>>>>>> apply(#<subr call-interactively> (keymap (keymap (9 .
>>>> backward-button)) ESC-prefix) nil)
>>>>>> call-interactively@ido-cr+-record-current-command(#<subr
>>>> call-interactively> (keymap (keymap (9 . backward-button))
>>>> ESC-prefix))
>>>>>> apply(call-interactively@ido-cr+-record-current-command
>>>> #<subr call-interactively> (keymap (keymap (9 . backward-button))
>>>> ESC-prefix))
>>>>>> call-interactively((keymap (keymap (9 . backward-button))
>>>> ESC-prefix))
>>>>>> (cond ((null binding) (if (kbd-key:special-sequence-p
>>>> key-series) (progn (setq unread-command-events (nconc
>>>> unread-command-events (mapcar (quote identity) key-series))) t)))
>>>> ((memq binding (quote (action-key action-mouse-key hkey-either)))
>>>> (beep) (message "(kbd-key:act): This key does what the Action Key
>>>> does.") t) (t (call-interactively binding) t))
>>>>>> (let ((binding (key-binding key-series))) (cond ((null
>>>> binding) (if (kbd-key:special-sequence-p key-series) (progn (setq
>>>> unread-command-events (nconc unread-command-events (mapcar ...
>>>> key-series))) t))) ((memq binding (quote (action-key
>>>> action-mouse-key hkey-either))) (beep) (message "(kbd-key:act): This
>>>> key does what the Action Key does.") t) (t (call-interactively
>>>> binding) t)))
>>>>>> kbd-key:act("33")
>>>>>> actypes::kbd-key("33")
>>>>>> apply(actypes::kbd-key "33")
>>>>>> eval((apply action args))
>>>>>> (if (or (symbolp action) (listp action)
>>>> (hypb:emacs-byte-code-p action) (and (stringp action) (not (integerp
>>>> action)) (setq action (key-binding action)))) (eval act) (eval
>>>> action))
>>>>>> (or (if (or (symbolp action) (listp action)
>>>> (hypb:emacs-byte-code-p action) (and (stringp action) (not (integerp
>>>> action)) (setq action (key-binding action)))) (eval act) (eval
>>>> action)) t)
>>>>>> (prog1 (or (if (or (symbolp action) (listp action)
>>>> (hypb:emacs-byte-code-p action) (and (stringp action) (not (integerp
>>>> action)) (setq action (key-binding action)))) (eval act) (eval
>>>> action)) t) (hhist:add hist-elt))
>>>>>> (let ((hist-elt (hhist:element))) (run-hooks (quote
>>>> action-act-hook)) (prog1 (or (if (or (symbolp action) (listp action)
>>>> (hypb:emacs-byte-code-p action) (and (stringp action) (not (integerp
>>>> action)) (setq action (key-binding action)))) (eval act) (eval
>>>> action)) t) (hhist:add hist-elt)))
>>>>>> (if (null action) (error "(actype:act): Null action for:
>>>> `%s'" actype) (and (symbolp action) (symtable:actype-p action) (setq
>>>> args (action:path-args-abs args))) (let ((hist-elt (hhist:element)))
>>>> (run-hooks (quote action-act-hook)) (prog1 (or (if (or (symbolp
>>>> action) (listp action) (hypb:emacs-byte-code-p action) (and (stringp
>>>> action) (not ...) (setq action ...))) (eval act) (eval action)) t)
>>>> (hhist:add hist-elt))))
>>>>>> (let ((prefix-arg current-prefix-arg) (action (actype:action
>>>> actype)) (act (quote (apply action args)))) (if (null action) (error
>>>> "(actype:act): Null action for: `%s'" actype) (and (symbolp action)
>>>> (symtable:actype-p action) (setq args (action:path-args-abs args)))
>>>> (let ((hist-elt (hhist:element))) (run-hooks (quote
>>>> action-act-hook)) (prog1 (or (if (or (symbolp action) (listp action)
>>>> (hypb:emacs-byte-code-p action) (and ... ... ...)) (eval act) (eval
>>>> action)) t) (hhist:add hist-elt)))))
>>>>>> actype:act(actypes::kbd-key "3315")
>>>>>> apply(actype:act actypes::kbd-key "3315")
>>>>>> (if hbut (apply hrule:action (hattr:get hbut (quote actype))
>>>> (hattr:get hbut (quote args))))
>>>>>> hbut:act(hbut:current)
>>>>>> funcall(hbut:act hbut:current)
>>>>>> (cond ((and (called-interactively-p (quote interactive))
>>>> (null but)) (hypb:error "(hbut-operate): No current button to
>>>> operate upon")) ((not (hbut:is-p but)) (hypb:error "(hbut-operate):
>>>> Button is invalid; it has no attributes")) (t (or but (setq but
>>>> (quote hbut:current))) (hui:but-flash) (funcall operation but)))
>>>>>> hui:hbut-operate(hbut:act "execute" hbut:current)
>>>>>> hui:hbut-act(hbut:current)
>>>>>> eval((hui:hbut-act (quote hbut:current)))
>>>>>> (progn (if hkey-debug (hkey-debug)) (eval hkey-action))
>>>>>> (if (setq hkey-action (if assist-flag (cdr (cdr hkey-form))
>>>> (car (cdr hkey-form))) pred (car hkey-form) pred-value (eval pred))
>>>> (progn (if hkey-debug (hkey-debug)) (eval hkey-action)) (setq
>>>> hkey-forms (cdr hkey-forms)))
>>>>>> (while (and (null pred-value) (setq hkey-form (car
>>>> hkey-forms))) (if (setq hkey-action (if assist-flag (cdr (cdr
>>>> hkey-form)) (car (cdr hkey-form))) pred (car hkey-form) pred-value
>>>> (eval pred)) (progn (if hkey-debug (hkey-debug)) (eval hkey-action))
>>>> (setq hkey-forms (cdr hkey-forms))))
>>>>>> (let ((hkey-forms hkey-alist) (pred-value) (hkey-action)
>>>> hkey-form pred) (while (and (null pred-value) (setq hkey-form (car
>>>> hkey-forms))) (if (setq hkey-action (if assist-flag (cdr (cdr
>>>> hkey-form)) (car (cdr hkey-form))) pred (car hkey-form) pred-value
>>>> (eval pred)) (progn (if hkey-debug (hkey-debug)) (eval hkey-action))
>>>> (setq hkey-forms (cdr hkey-forms)))) pred-value)
>>>>>> hkey-execute(nil)
>>>>>> (or (hkey-execute nil) (if (fboundp
>>>> action-key-default-function) (progn (funcall
>>>> action-key-default-function) t)))
>>>>>> action-key-internal()
>>>>>> (prog1 (action-key-internal) (run-hooks (quote
>>>> action-key-depress-hook) (quote action-key-release-hook)))
>>>>>> action-key()
>>>>>> (if arg (assist-key) (action-key))
>>>>>> hkey-either(nil)
>>>>>> funcall-interactively(hkey-either nil)
>>>>>> #<subr call-interactively>(hkey-either nil nil)
>>>>>> apply(#<subr call-interactively> hkey-either (nil nil))
>>>>>> call-interactively@ido-cr+-record-current-command(#<subr
>>>> call-interactively> hkey-either nil nil)
>>>>>> apply(call-interactively@ido-cr+-record-current-command
>>>> #<subr call-interactively> (hkey-either nil nil))
>>>>>> call-interactively(hkey-either nil nil)
>>>>>> command-execute(hkey-either)
>>>>> I get this behavior in elisp files as well. Consider the
>>>> following:
>>>>>> ;; Info-mode
>>>>>> (when (eq system-type 'windows-nt)
>>>>>> (setq Info-additional-directory-list
>>>>>> (quote
>>>>>> ("~/Apps/msys2/usr/share/info" "~/Apps/msys2
>>>> /mingw64/share/info"))))
>>>>> If I move to one of the paths listed, and hit the action button,
>>>> Hyperbole correctly recognizes the path as an implicit button,
>>>> highlights it, but then doesn't act upon it until I make some
>>>> additional keypress. This case does not throw an error, so I can't
>>>> provide debug information.
>>>>> Feedback #3: Explicit Buttons Should Be Colored
>>>>> ===================================
>>>>> If I have an explicit button in a file -- <(fake button)> -- it
>>>> does not display in red as intended. Examining the way this stuff is
>>>> set up, it looks like the button color is tied to the `Hbut` face,
>>>> and that the `Hbut` face defaults to
>>>>>> foreground: SystemWindowText
>>>>>> background: SystemWindow
>>>>> This basically means black text on a white background, just like
>>>> all the other normal text in a file.
>>>>> Modifying these faces doesn't seem to stick, either. If I go into
>>>> Hyperbole's customization {C-h h c a} then the Hyperbole Buttons
>>>> group, then the `Face Hbut` property and set it to `red` or
>>>> `#ff0000` -- Hitting `Apply and Save` creates an entry in my
>>>> custom.el:
>>>>>> '(hbut ((t (:background "SystemWindow" :foreground "red"))) t)
>>>>> and changes the button color correctly... but upon restarting
>>>> Emacs, it reverts back to `SystemWindowText`/`SystemWindow`. This is
>>>> true even when `custom.el` is loads correctly. I have also tried
>>>> this without having an external customization file -- in that case,
>>>> customizing the face adds the line above to the bottom of my init,
>>>> but there's no difference in behavior.
>>>>> I was able to force the buttons to always be red by creating this
>>>> hook -- but that shouldn't be necessary, right?
>>>>>> (add-hook 'hyperbole-init-hook (lambda ()
>>>>>> (hproperty:cycle-but-color
>>>> "red")))
>>>>> Thank you for all your hard work on this package. I use Hyperbole
>>>> basically every day, and I'm always excited for a new release!
>>> Links:
>>> ------
>>> [1]
>>> https://www.reddit.com/r/emacs/comments/euzxmx/gnu_hyperbole_708_test_release_with_patches/

Reply via email to