Alexander-Miller / treemacs

GNU General Public License v3.0
2.08k stars 152 forks source link

`wrong-type-argument listp treemacs-rename-file` When try to do rename on treemacs #872

Closed zw963 closed 2 years ago

zw963 commented 2 years ago

image

Debugger entered--Lisp error: (wrong-type-argument listp treemacs-rename-file) treemacs-rightclick-menu((mouse-3 (#<window 9 on Treemacs-Scoped-Buffer-#<frame Minibuf-1 - GNU Emacs at lggram 0x55bb3714d560>> 597 (110 . 495) 230386593 nil 597 (12 . 22) nil (0 . 11) (8 . 17)))) funcall-interactively(treemacs-rightclick-menu (mouse-3 (#<window 9 on Treemacs-Scoped-Buffer-#<frame Minibuf-1 - GNU Emacs at lggram 0x55bb3714d560>> 597 (110 . 495) 230386593 nil 597 (12 . 22) nil (0 . 11) (8 . 17)))) command-execute(treemacs-rightclick-menu)

zw963 commented 2 years ago

I use newest master on Emacs 28.0.60 master.

Alexander-Miller commented 2 years ago

Update treemacs, it's probably the same thing as https://github.com/Alexander-Miller/treemacs/issues/869.

zw963 commented 2 years ago

Update treemacs, it's probably the same thing as #869.

Hi, thanks for reply, i use newest master d117609 for treemacs, and cfrs use new master too.

zw963 commented 2 years ago

Any update on this? i can reproduce on treemacs newest master on emacs 28 master.

It a little inconveniently anyway. thank you.

Alexander-Miller commented 2 years ago

I've tried and cannot reproduce the bug. At this point my guess is that it's an issue with either the latest master or the gui implementation for the menus on your OS. As it is I cannot even tell where the error is thrown, so I need your help with debugging - ideally you would edebug the whole function and tell me what you see. The value of cmd before this loop is particularly relevant.

zw963 commented 2 years ago

Okay, following is a detailed description of this issue:

  1. i use almost zero config use only treemacs with emacs 28.0.60.

    (require 'cfrs)
    (require 'treemacs)
  2. set edebug-defun

  3. When i try to create a new folder with mouse right key, the error message get raised even treemacs-rightclick-menu was in just now. image

Debugger entered--Lisp error: (wrong-type-argument listp treemacs-create-file)
  edebug(error (wrong-type-argument listp treemacs-create-file))
  edebug-signal(wrong-type-argument (listp treemacs-create-file))
  x-popup-menu((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) treemacs-create-file)
  (edebug-after (edebug-before 145) 148 (x-popup-menu (edebug-after 0 146 event) (edebug-after 0 147 cmd)))
  (setq choice (edebug-after (edebug-before 145) 148 (x-popup-menu (edebug-after 0 146 event) (edebug-after 0 147 cmd))))
  (edebug-after 0 144 (setq choice (edebug-after (edebug-before 145) 148 (x-popup-menu (edebug-after 0 146 event) (edebug-after 0 147 cmd)))))
  (progn (edebug-after 0 142 (setq menu (edebug-after 0 143 choice))) (edebug-after 0 144 (setq choice (edebug-after (edebug-before 145) 148 (x-popup-menu (edebug-after 0 146 event) (edebug-after 0 147 cmd))))) (edebug-after 0 149 (setq cmd (edebug-after (edebug-before 150) 155 (lookup-key (edebug-after 0 151 cmd) (edebug-after (edebug-before 152) 154 (apply 'vector (edebug-after 0 153 choice))))))))
  (edebug-after (edebug-before 141) 156 (progn (edebug-after 0 142 (setq menu (edebug-after 0 143 choice))) (edebug-after 0 144 (setq choice (edebug-after (edebug-before 145) 148 (x-popup-menu (edebug-after 0 146 event) (edebug-after 0 147 cmd))))) (edebug-after 0 149 (setq cmd (edebug-after (edebug-before 150) 155 (lookup-key (edebug-after 0 151 cmd) (edebug-after (edebug-before 152) 154 (apply ... ...))))))))
  (while (edebug-after (edebug-before 128) 140 (and (edebug-after (edebug-before 129) 133 (not (edebug-after (edebug-before 130) 132 (commandp (edebug-after 0 131 cmd))))) (edebug-after (edebug-before 134) 139 (not (edebug-after (edebug-before 135) 138 (eq (edebug-after 0 136 cmd) (edebug-after 0 137 menu))))))) (edebug-after (edebug-before 141) 156 (progn (edebug-after 0 142 (setq menu (edebug-after 0 143 choice))) (edebug-after 0 144 (setq choice (edebug-after (edebug-before 145) 148 (x-popup-menu (edebug-after 0 146 event) (edebug-after 0 147 cmd))))) (edebug-after 0 149 (setq cmd (edebug-after (edebug-before 150) 155 (lookup-key (edebug-after 0 151 cmd) (edebug-after ... 154 ...))))))))
  (edebug-after (edebug-before 127) 157 (while (edebug-after (edebug-before 128) 140 (and (edebug-after (edebug-before 129) 133 (not (edebug-after (edebug-before 130) 132 (commandp ...)))) (edebug-after (edebug-before 134) 139 (not (edebug-after (edebug-before 135) 138 (eq ... ...)))))) (edebug-after (edebug-before 141) 156 (progn (edebug-after 0 142 (setq menu (edebug-after 0 143 choice))) (edebug-after 0 144 (setq choice (edebug-after (edebug-before 145) 148 (x-popup-menu ... ...)))) (edebug-after 0 149 (setq cmd (edebug-after (edebug-before 150) 155 (lookup-key ... ...))))))))
  (let* ((node (edebug-after (edebug-before 25) 26 (let ((result (text-property-not-all ... ... ... nil))) (if result (progn (copy-marker result t)))))) (state (edebug-after (edebug-before 27) 29 (let ((result (edebug-after 0 28 node))) (if result (progn (get-text-property result :state)))))) (project (edebug-after (edebug-before 30) 31 (let ((btn (let ... ...))) (if btn (progn (treemacs-project-of-node btn)))))) (menu (edebug-after (edebug-before 32) 116 (easy-menu-create-menu nil (edebug-after (edebug-before 33) 115 (cons '... (cons ... ...)))))) (choice (edebug-after (edebug-before 117) 120 (x-popup-menu (edebug-after 0 118 event) (edebug-after 0 119 menu)))) (cmd (edebug-after (edebug-before 121) 126 (lookup-key (edebug-after 0 122 menu) (edebug-after (edebug-before 123) 125 (apply 'vector (edebug-after 0 124 choice))))))) (edebug-after (edebug-before 127) 157 (while (edebug-after (edebug-before 128) 140 (and (edebug-after (edebug-before 129) 133 (not (edebug-after ... 132 ...))) (edebug-after (edebug-before 134) 139 (not (edebug-after ... 138 ...))))) (edebug-after (edebug-before 141) 156 (progn (edebug-after 0 142 (setq menu (edebug-after 0 143 choice))) (edebug-after 0 144 (setq choice (edebug-after ... 148 ...))) (edebug-after 0 149 (setq cmd (edebug-after ... 155 ...))))))) (edebug-after (edebug-before 158) 168 (if (edebug-after (edebug-before 159) 164 (and (edebug-after 0 160 cmd) (edebug-after (edebug-before 161) 163 (commandp (edebug-after 0 162 cmd))))) (progn (edebug-after (edebug-before 165) 167 (call-interactively (edebug-after 0 166 cmd)))))) (edebug-after (edebug-before 169) 170 (hl-line-highlight)))
  (edebug-after (edebug-before 24) 171 (let* ((node (edebug-after (edebug-before 25) 26 (let ((result ...)) (if result (progn ...))))) (state (edebug-after (edebug-before 27) 29 (let ((result ...)) (if result (progn ...))))) (project (edebug-after (edebug-before 30) 31 (let ((btn ...)) (if btn (progn ...))))) (menu (edebug-after (edebug-before 32) 116 (easy-menu-create-menu nil (edebug-after (edebug-before 33) 115 (cons ... ...))))) (choice (edebug-after (edebug-before 117) 120 (x-popup-menu (edebug-after 0 118 event) (edebug-after 0 119 menu)))) (cmd (edebug-after (edebug-before 121) 126 (lookup-key (edebug-after 0 122 menu) (edebug-after (edebug-before 123) 125 (apply ... ...)))))) (edebug-after (edebug-before 127) 157 (while (edebug-after (edebug-before 128) 140 (and (edebug-after (edebug-before 129) 133 (not ...)) (edebug-after (edebug-before 134) 139 (not ...)))) (edebug-after (edebug-before 141) 156 (progn (edebug-after 0 142 (setq menu ...)) (edebug-after 0 144 (setq choice ...)) (edebug-after 0 149 (setq cmd ...)))))) (edebug-after (edebug-before 158) 168 (if (edebug-after (edebug-before 159) 164 (and (edebug-after 0 160 cmd) (edebug-after (edebug-before 161) 163 (commandp ...)))) (progn (edebug-after (edebug-before 165) 167 (call-interactively (edebug-after 0 166 cmd)))))) (edebug-after (edebug-before 169) 170 (hl-line-highlight))))
  (let* ((--cl-check-- #'(lambda (value) (edebug-enter 'check@cl-flet@163 (list value) #'(lambda nil ...))))) (edebug-after (edebug-before 24) 171 (let* ((node (edebug-after (edebug-before 25) 26 (let (...) (if result ...)))) (state (edebug-after (edebug-before 27) 29 (let (...) (if result ...)))) (project (edebug-after (edebug-before 30) 31 (let (...) (if btn ...)))) (menu (edebug-after (edebug-before 32) 116 (easy-menu-create-menu nil (edebug-after ... 115 ...)))) (choice (edebug-after (edebug-before 117) 120 (x-popup-menu (edebug-after 0 118 event) (edebug-after 0 119 menu)))) (cmd (edebug-after (edebug-before 121) 126 (lookup-key (edebug-after 0 122 menu) (edebug-after ... 125 ...))))) (edebug-after (edebug-before 127) 157 (while (edebug-after (edebug-before 128) 140 (and (edebug-after ... 133 ...) (edebug-after ... 139 ...))) (edebug-after (edebug-before 141) 156 (progn (edebug-after 0 142 ...) (edebug-after 0 144 ...) (edebug-after 0 149 ...))))) (edebug-after (edebug-before 158) 168 (if (edebug-after (edebug-before 159) 164 (and (edebug-after 0 160 cmd) (edebug-after ... 163 ...))) (progn (edebug-after (edebug-before 165) 167 (call-interactively ...))))) (edebug-after (edebug-before 169) 170 (hl-line-highlight)))))
  (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- #'(lambda (value) (edebug-enter 'check@cl-flet@163 (list value) #'...)))) (edebug-after (edebug-before 24) 171 (let* ((node (edebug-after (edebug-before 25) 26 (let ... ...))) (state (edebug-after (edebug-before 27) 29 (let ... ...))) (project (edebug-after (edebug-before 30) 31 (let ... ...))) (menu (edebug-after (edebug-before 32) 116 (easy-menu-create-menu nil ...))) (choice (edebug-after (edebug-before 117) 120 (x-popup-menu ... ...))) (cmd (edebug-after (edebug-before 121) 126 (lookup-key ... ...)))) (edebug-after (edebug-before 127) 157 (while (edebug-after (edebug-before 128) 140 (and ... ...)) (edebug-after (edebug-before 141) 156 (progn ... ... ...)))) (edebug-after (edebug-before 158) 168 (if (edebug-after (edebug-before 159) 164 (and ... ...)) (progn (edebug-after ... 167 ...)))) (edebug-after (edebug-before 169) 170 (hl-line-highlight))))))
  (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq (edebug-after 0 3 major-mode) 'treemacs-mode)) nil (edebug-after (edebug-before 5) 8 (select-window (edebug-after (edebug-before 6) 7 (treemacs-get-local-window)))))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point (edebug-after (edebug-before 12) 14 (car (cdr ...))))))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- #'(lambda (value) (edebug-enter ... ... ...)))) (edebug-after (edebug-before 24) 171 (let* ((node (edebug-after ... 26 ...)) (state (edebug-after ... 29 ...)) (project (edebug-after ... 31 ...)) (menu (edebug-after ... 116 ...)) (choice (edebug-after ... 120 ...)) (cmd (edebug-after ... 126 ...))) (edebug-after (edebug-before 127) 157 (while (edebug-after ... 140 ...) (edebug-after ... 156 ...))) (edebug-after (edebug-before 158) 168 (if (edebug-after ... 164 ...) (progn ...))) (edebug-after (edebug-before 169) 170 (hl-line-highlight)))))))
  (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq (edebug-after 0 3 major-mode) 'treemacs-mode)) nil (edebug-after (edebug-before 5) 8 (select-window (edebug-after (edebug-before 6) 7 (treemacs-get-local-window)))))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point (edebug-after (edebug-before 12) 14 (car ...)))))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- #'(lambda ... ...))) (edebug-after (edebug-before 24) 171 (let* ((node ...) (state ...) (project ...) (menu ...) (choice ...) (cmd ...)) (edebug-after (edebug-before 127) 157 (while ... ...)) (edebug-after (edebug-before 158) 168 (if ... ...)) (edebug-after (edebug-before 169) 170 (hl-line-highlight))))))))
  (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq (edebug-after 0 3 major-mode) 'treemacs-mode)) nil (edebug-after (edebug-before 5) 8 (select-window (edebug-after ... 7 ...))))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point (edebug-after ... 14 ...))))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- #'...)) (edebug-after (edebug-before 24) 171 (let* (... ... ... ... ... ...) (edebug-after ... 157 ...) (edebug-after ... 168 ...) (edebug-after ... 170 ...))))))))()
  edebug-default-enter(treemacs-rightclick-menu ((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17)))) (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq ... ...)) nil (edebug-after (edebug-before 5) 8 (select-window ...)))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point ...)))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- ...)) (edebug-after (edebug-before 24) 171 (let* ... ... ... ...))))))))
  edebug-default-enter(treemacs-rightclick-menu ((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17)))) (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq ... ...)) nil (edebug-after (edebug-before 5) 8 (select-window ...)))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point ...)))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- ...)) (edebug-after (edebug-before 24) 171 (let* ... ... ... ...))))))))
  edebug-enter(treemacs-rightclick-menu ((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17)))) (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq ... ...)) nil (edebug-after (edebug-before 5) 8 (select-window ...)))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point ...)))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- ...)) (edebug-after (edebug-before 24) 171 (let* ... ... ... ...))))))))
  treemacs-rightclick-menu((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))))
  funcall-interactively(treemacs-rightclick-menu (mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3144070 nil 79 (5 . 7) nil (5 . 18) (8 . 17))))
  command-execute(treemacs-rightclick-menu)
  edebug--recursive-edit(before)
  edebug--display-1(nil 0 before)
  edebug--display(nil 0 before)
  edebug-debugger(0 before nil)
  edebug-before(0)
  (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq (edebug-after 0 3 major-mode) 'treemacs-mode)) nil (edebug-after (edebug-before 5) 8 (select-window (edebug-after (edebug-before 6) 7 (treemacs-get-local-window)))))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point (edebug-after (edebug-before 12) 14 (car ...)))))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- #'(lambda ... ...))) (edebug-after (edebug-before 24) 171 (let* ((node ...) (state ...) (project ...) (menu ...) (choice ...) (cmd ...)) (edebug-after (edebug-before 127) 157 (while ... ...)) (edebug-after (edebug-before 158) 168 (if ... ...)) (edebug-after (edebug-before 169) 170 (hl-line-highlight))))))))
  (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq (edebug-after 0 3 major-mode) 'treemacs-mode)) nil (edebug-after (edebug-before 5) 8 (select-window (edebug-after ... 7 ...))))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point (edebug-after ... 14 ...))))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- #'...)) (edebug-after (edebug-before 24) 171 (let* (... ... ... ... ... ...) (edebug-after ... 157 ...) (edebug-after ... 168 ...) (edebug-after ... 170 ...))))))))()
  edebug-default-enter(treemacs-rightclick-menu ((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17)))) (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq ... ...)) nil (edebug-after (edebug-before 5) 8 (select-window ...)))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point ...)))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- ...)) (edebug-after (edebug-before 24) 171 (let* ... ... ... ...))))))))
  edebug-default-enter(treemacs-rightclick-menu ((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17)))) (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq ... ...)) nil (edebug-after (edebug-before 5) 8 (select-window ...)))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point ...)))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- ...)) (edebug-after (edebug-before 24) 171 (let* ... ... ... ...))))))))
  edebug-enter(treemacs-rightclick-menu ((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17)))) (closure ((event mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17))) t) nil (edebug-after (edebug-before 0) 173 (let ((treemacs--ready-to-follow nil)) (ignore treemacs--ready-to-follow) (edebug-after (edebug-before 1) 9 (if (edebug-after (edebug-before 2) 4 (eq ... ...)) nil (edebug-after (edebug-before 5) 8 (select-window ...)))) (edebug-after (edebug-before 10) 16 (goto-char (edebug-after (edebug-before 11) 15 (posn-point ...)))) (edebug-after (edebug-before 17) 18 (hl-line-highlight)) (edebug-after (edebug-before 19) 20 (redisplay)) (edebug-after (edebug-before 21) 172 (let* ((--cl-check-- ...)) (edebug-after (edebug-before 24) 171 (let* ... ... ... ...))))))))
  treemacs-rightclick-menu((mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17))))
  funcall-interactively(treemacs-rightclick-menu (mouse-3 (#<window 7 on  *Treemacs-Scoped-Buffer-#<frame  *Minibuf-1* - GNU Emacs at lggram 0x55b7d42d8ce0>*> 79 (59 . 172) 3142255 nil 79 (5 . 7) nil (5 . 18) (8 . 17))))
  command-execute(treemacs-rightclick-menu)

I can't do any more step now, i can see Edebug will stop at next stop point, but can't continue with SPACE.

zw963 commented 2 years ago

Sorry, i am not a emacs expert, in fact, when i try to edebug-defun this function the first time, SPACE is work, though, still could not reach that while loop, and stop because some error, but edebug-step-mode can work anyway, but for now, i can only reproduce like above.

zw963 commented 2 years ago

I spend hours to try to find out what happen .... but no clue.

But, i found when i click on open directory, edebug-defun always work. (because this function no issue)

image

so, it thought it just raise some error before entry treemacs-rightclick-menu.

zw963 commented 2 years ago

Wired, after require 'treemacs-file-management manually, it works now, with a new UI.(use GNOME file manager)

image

so, could you please help me on use old fashion UI? e.g. UI like do rename use cfrs, or, use minibuffer completion?

Thank you!

Alexander-Miller commented 2 years ago

Wired, after require 'treemacs-file-management manually, it works now,

Sounds like your autoloads are not set up properly (even if the error message is less than helpful if that's the case). The entire file-management module is extracted to be lazy loaded, it'd make sense for treemacs to break if the selected command is not known.

so, could you please help me on use old fashion UI? e.g. UI like do rename use cfrs, or, use minibuffer completion?

use-file-dialog controls that behavior.

zw963 commented 2 years ago

even if the error message is less than helpful if that's the case

Yes, i thought we can improve, anyway, this error message never give me a feel like some command is unknown.

use-file-dialog controls that behavior.

Oops, i forget it i set it on my own config to nil manually already, it works now after i add my config back, thanks.

Sounds like your autoloads are not set up properly

Yes, i never use any package manager for some reason, so, maybe i misused something? following is my config.

https://github.com/zw963/.emacs.d/blob/master/plugins/treemacs/treemacs_init.el

If should not require it manually, how should i use it if not use package manager?

Thank you.

Alexander-Miller commented 2 years ago

You can require it directly. The only downside is a small increase to load times for features you might not use. The other option is to set up autoloads yourself, like this:

(autoload 'treemacs-rename-file "treemacs-file-management")
(autoload 'treemacs-delete-file "treemacs-file-management")
...
zw963 commented 2 years ago

You can require it directly. The only downside is a small increase to load times for features you might not use

require it directly is okay for me, i like preload everything instead autoload it when use it.

But, my question is, why others user not feedback this issue? all user add (autoload 'treemacs-rename-file "treemacs-file-management") manually in their config?

Alexander-Miller commented 2 years ago

No, that is handled by people's package managers - code meant for lazy loading can be annotated with a magic comment which a package manager will pick up on and automatically generate those autoloads.

zw963 commented 2 years ago

Hi, @Alexander-Miller, one more question about this issue.

when i do rename with R, like following

image

It always use cfrs-read even I am keep use-file-dialog and use-dialog-box as default t, this is a little wired, because i just want to use a same interface when copy file, new file and rename file, but treemacs-rename keep itself way, if crfs-read exist some issue which can't set as default in both case, is there a settings all use GNOME file manager, as show in https://github.com/Alexander-Miller/treemacs/issues/872#issuecomment-970330972, or all use completion in minibuffer ?

Thank you.

zw963 commented 2 years ago

In fact, there are indeed some problem in crfs-read, e.g. as i do rename like following screenshot.

image

crfs was run, but because file name is two long, it only show the last character in file name (that is b)

When i pressing C-a to line beginning, i get the file name for now, but i can 't see last b char anymore, as following screenshot.

image

Compro-Prasad commented 2 years ago

When i pressing C-a to line beginning, i get the file name for now, but i can 't see last b char anymore, as following screenshot.

I guess this is how it works and generally its a good enough limit. Some variable for customizing the behavior would be nice. Or something like (min (get_char_width (concat "New name: " file_name)) (get_frame_width)) would be a better solution.

Alexander-Miller commented 2 years ago

It always use cfrs-read even I am keep use-file-dialog and use-dialog-box as default t, this is a little wired,

You see file dialogs in other commands because they ask you to select an actual file. Renaming is different because all it wants is a new name, which is a just string.

Technically moving is a superset of renaming - renaming moves a file to a new name, moving can move a file to a new name or a new location or both. So if you like the file dialog you can just move as your rename operation.

zw963 commented 2 years ago

Technically moving is a superset of renaming - renaming moves a file to a new name, moving can move a file to a new name or a new location or both. So if you like the file dialog you can just move as your rename operation.

Okay, thank you, i prefer use the uniform way to do file operations things, maybe we can add a option, premit R can use minibuffer completion/system UI instead.