Giter VIP home page Giter VIP logo

ido-grid-mode.el's People

Contributors

larkery avatar silex avatar syohex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ido-grid-mode.el's Issues

Error while requiring the mode

Starting with emacs -Q:

First of all, it is necessary to (require 'cl-lib) before activating ido-grid-mode, otherwise

(void-function cl-defun)

error is thrown.

Then, in *scratch* buffer:

(require 'ido-grid-mode)

fails with

(void-variable ido-grid-mode)

I'm using GNU Emacs 25.0.50.1 (development snapshot from some months ago.)

Doesn't play well with flx

Hello,

This mode breaks pretty badly when I use https://github.com/lewang/flx and refine the results then scroll... any idea why?

It whines about an invalid consp, my guess is that because ido-completions / ido-matches is tricky and you only rewrote it the "straighforward" way, but it can return results in various ways (lists, consp etc).

It's pretty easy to reproduce, just use the following and use smex or a list with lots of file, like MELPA recipes:

(setq ido-grid-mode-max-columns 1
      ido-grid-mode-min-rows 8
      ido-grid-mode-prefix-scrolls t
      ido-grid-mode-scroll-down #'ido-grid-mode-next-row
      ido-grid-mode-scroll-up #'ido-grid-mode-previous-row
      ido-grid-mode-order nil)

Heres a backtrace:

Debugger entered--Lisp error: (wrong-type-argument consp nil)
  setcdr(nil nil)
  (let* ((items (copy-sequence items)) (match-count (length matches)) (n (if (< n 0) (+ match-count n) n)) (new-head (nth n matches)) (walker items) new-tail) (while walker (if (eq new-head (car (cdr walker))) (setq new-tail walker walker nil) (setq walker (cdr walker)))) (setq new-head (cdr new-tail)) (setcdr new-tail nil) (nconc new-head items))
  ido-grid-mode-rotate-n(1 (#("appt-add" 0 1 (face flx-highlight-face) 5 6 (face flx-highlight-face)) #("ad-activate" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("appt-activate" 0 1 (face flx-highlight-face) 5 6 (face flx-highlight-face)) #("ad-activate-on" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-activate-all" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-activate-regexp" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-activate-internal" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-Advice-align-regexp" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-update-all" 0 1 (face flx-highlight-face) 10 11 (face flx-highlight-face)) #("ad-recover-all" 0 1 (face flx-highlight-face) 11 12 (face flx-highlight-face)) "ad-unadvise-all" "add-mode-abbrev" "ad-enable-advice" "ad-remove-advice" "ad-deactivate-all" "ad-disable-advice" "add-global-abbrev" "ad-Advice-find-tag-regexp" "ad-Advice-reb-change-syntax" "ad-Advice-sort-regexp-fields" "ag-project-at-point" "align-newline-and-indent" "magit-am-abort" "kill-all-abbrevs" "org-agenda-archive" "ad-Advice-ibuffer-do-replace-regexp" "org-align-all-tags" "org-agenda-add-note" "goto-address-at-mouse" "goto-address-at-point" "magit-am-apply-maildir" "magit-am-apply-patches" "org-agenda-archive-with" "org-agenda-append-agenda" "org-agenda-archives-mode" "message-add-archive-header" "org-agenda-archive-default" "org-advertized-archive-subtree" "ag-regexp-project-at-point" "auth-source-forget-all-cached" "org-agenda-to-appt" "mail-add-payment-async" "org-agenda-bulk-action" "inverse-add-mode-abbrev" "mail-abbrev-insert-alias" "inverse-add-global-abbrev" "mail-abbrev-complete-alias" "org-agenda-archive-to-archive-sibling" "org-agenda-archive-default-with-confirmation" "org-ascii-export-as-ascii" ...) ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...))
  (setq ido-cur-list (ido-grid-mode-rotate-n n ido-matches ido-cur-list) ido-rescan t ido-rotate t)
  ido-grid-mode-next-N(1)
  ido-grid-mode-next-row()
  funcall(ido-grid-mode-next-row)
  (cond ((or (< row 0) (< col 0)) (funcall ido-grid-mode-scroll-up)) ((or (= row nrows) (= col ncols)) (funcall ido-grid-mode-scroll-down)) (t (setq ido-grid-mode-offset (if (ido-grid-mode-row-major) (+ col (* row ncols)) (+ row (* col nrows))))))
  (let* ((nrows ido-grid-mode-rows) (ncols ido-grid-mode-columns) (row (if (ido-grid-mode-row-major) (/ ido-grid-mode-offset ido-grid-mode-columns) (% ido-grid-mode-offset ido-grid-mode-rows))) (col (if (ido-grid-mode-row-major) (% ido-grid-mode-offset ido-grid-mode-columns) (/ ido-grid-mode-offset ido-grid-mode-rows)))) (setq row (+ row dr)) (setq col (+ col dc)) (if (or (and (= col 0) (= row -1)) (and (= row nrows) (= (1+ col) ncols)) (and (not ido-grid-mode-scroll-wrap) (if (ido-grid-mode-row-major) (not (< -1 row nrows)) (not (< -1 col ncols))))) nil (while (< row 0) (setq col (1- col)) (setq row (+ row nrows))) (while (>= row nrows) (setq col (1+ col)) (setq row (- row nrows))) (while (< col 0) (setq row (1- row)) (setq col (+ col ncols))) (while (>= col ncols) (setq row (1+ row)) (setq col (- col ncols)))) (cond ((or (< row 0) (< col 0)) (funcall ido-grid-mode-scroll-up)) ((or (= row nrows) (= col ncols)) (funcall ido-grid-mode-scroll-down)) (t (setq ido-grid-mode-offset (if (ido-grid-mode-row-major) (+ col (* row ncols)) (+ row (* col nrows)))))))
  ido-grid-mode-move(1 0)
  ido-grid-mode-down()
  funcall-interactively(ido-grid-mode-down)
  #<subr call-interactively>(ido-grid-mode-down nil nil)
  ad-Advice-call-interactively(#<subr call-interactively> ido-grid-mode-down nil nil)
  apply(ad-Advice-call-interactively #<subr call-interactively> (ido-grid-mode-down nil nil))
  call-interactively(ido-grid-mode-down nil nil)
  command-execute(ido-grid-mode-down)
  read-from-minibuffer("M-x " nil (keymap (16 . ido-grid-mode-previous-page) (14 . ido-grid-mode-next-page) (right . ido-grid-mode-right) (left . ido-grid-mode-left) (down . ido-grid-mode-down) (up . ido-grid-mode-up) (backtab . ido-grid-mode-previous) (1 . move-beginning-of-line) (27 keymap (46 . smex-find-function)) (8 keymap (119 . smex-where-is) (102 . smex-describe-function)) (9 . minibuffer-complete) keymap (4 . ido-magic-delete-char) (6 . ido-magic-forward-char) (2 . ido-magic-backward-char) (63 . ido-completion-help) (left . ido-prev-match) (right . ido-next-match) (0 . ido-restrict-to-matches) (27 keymap (32 . ido-take-first-match)) (67108896 . ido-restrict-to-matches) (26 . ido-undo-merge-work-directory) (20 . ido-toggle-regexp) (67108908 . ido-prev-match) (67108910 . ido-next-match) (19 . ido-next-match) (18 . ido-prev-match) (16 . ido-toggle-prefix) (13 . ido-exit-minibuffer) (10 . ido-select-text) (32 . ido-complete-space) (9 . ido-complete) (5 . ido-edit-input) (3 . ido-toggle-case) (1 . ido-toggle-ignore) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence "
" :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-minibuffer) (7 . minibuffer-keyboard-quit) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (XF86Back . previous-history-element) (up . previous-line-or-history-element) (prior . previous-history-element) (XF86Forward . next-history-element) (down . next-line-or-history-element) (next . next-history-element) (27 keymap (5 . miniedit) (114 . previous-matching-history-element) (115 . next-matching-history-element) (112 . previous-history-element) (110 . next-history-element))) nil extended-command-history)
  #[(item prompt hist &optional default require-match initial) "�p\306\307\306\307\211\211\211\211\211\211\211\211\211\306\307  \n�\307������@�A�B�C�D�E�F�2�G�H�I�J�K�L�M�N\310 \210�O�P\307�Q\311\312!\210�2\204:�\313\314�P\"\210\307�R\306�S\307�T\315�U�J\203\315�\316=\203}\317�V!\203x\320�V!\202\260�V\202\260�V;\203\225�\321>\203\220\322�V!\202\260�V\202\260�\323=\205\260�W\205\260\324�X�Y\"\211�Z\205\257�ZA)\211�I�[\235\203\274\307�I\313\325�I\"\210�I\203\312\326�\\\307�J�K\203\325\307�L�A\203\257��@\327>\203\257��B\204\257��E�D�]\330�P�A\331=�@\332=#�^�_�`�a\313\333�^\"\210�^\204Y��@\332=\203:�\315�X�a�`�_\257��\307\211�E�D\307�]\306�B�A\331=\2052�\331�@\307�A\202\256��a�E�`�D�_�]\306�B�A\331=\205Q�\331�@\307�A\202\256��^\306=\203f�\307�A\202\256��^\334=\203v�\306�@\307�A\202\256��P�X�a�`�_\257��\335�^@A@!\210\336�P!\203\225�\315�P�^�E\307�D�^�]\307�S\306\211�B�A\313\337\306\"\210,�B\203\275�\307\211�B�S\202���N\323=\203\334�\307�D�b?\205\327��c?\205\327�\340�I!�E\202���N\341=\203\373�\307�D�b?\205\366��c?\205\366�\342�I!�E\202���N\316=\203��\307�D\343�I!�E\202���N\344=\203��\307�D\345�I!�E\307�C�K\203,�\306�L\307�K\346 \210�]\203>��@\331=\203>�\306�@�d\206K�\347\350!\205K��(\306�e\351 T\307\211�f�g�h�i�j�(\307�R\3522x�\353\354��k\"�P\307�P�l\307�m%0�G.�\313\355�G\"\210�n\203\223�\356�n!\203\223�\357�n!\210\313\360�R\"\210�R\361=\203\265��A\331=\203H\334 \203H\307�A\306�B\202H�R\362=\203\311�\306�2�U�H\307�R\202H�R\363>\203\242��N\364>\203\206�\307�o�R\365=�5�X�Z�P�p\306�q\315�P�q\203\202��5\203��\3661��\367�k\370P\371�Z!�Z�pP\307�p%0\202��\210�Z�pP\202���p�q\372�q!\206'�\373�Z\322�q!�p\306�5\374�Z!\204k�\375\376\377�Z\"!\203\356�\201v1V�\201w�Z\306\"\210\3060\202h�\210\201x\201y!\210\201z\201{!\210\307\203\356�\335�Z\307�R\201|=#\210�p�P\307\211�q\204\363�-\202H\201}1\232�\201~�k\370P�G\"0\202\235�\210�G�P\202H�R\201�=\203\261�\306�B\202H�R\201\200>\203\301�\306\211�2\202J�R\201\201>\203<�\201\202 \203\372�\201\203\201\204�X\"\203H\201\205\201\206�X\"�P\335\201\205\201{�X\"!\210\306�J\202H\201\207 \204H�R\201\210=\203*��N�UB�QB�Q\341�N\322�X\326\201\211O!�P\313\201\212�Q\"\210\335\372�X\326\201\211O!!\210\306�J\202H�R\201\213=\203m�\313\201\214�Q\"\210�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202H�R\201\215=\203\243�\313\201\216�Q\"\210�Q\203H�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202~��e\203\324��e\201\217>\204\324��c\203\302�\201\220�X�GP!\202\306�\201\221 \204\324�\201\222\201\223!\210\202H�R\201\224=\204\342��]\204\347��G\202\356�\201\225�]@!�H�\201\226>\203\377�\306\211�2\202J�H\201\227\230\204H�H\201\230\230\203*�\201\207 \204$�\335\372�X\326\201\211O!!\210\306�J\202H\201\203�s\2038�\201\231\202;�\201\232�H\"\203y�\201\207 \203y�\201\233�H!\204y�\335�X�H\"\210\313\201\234�H\"\210\201\235 \203s�\201\236�R\306\211�2\202J\306�J\202H\201\203�t\201\237>\203\213�\201\240\202\216�\201\241�H\"\203\241�\335\372�H!!\210\306�J\202H\201\203\201\242�H\"\203\267�\201\243�H!\210\202H\336�H!\2033��W\203\343�\324�X�Y\"\211�u\203\330��u�H\241\210\202\342��X�HB�YB�Y)\335�X�H\"\210�Q\203-�\307�r�Q@\211�r\203)�\201\220�X�rAP!\203)��QA\211�Q\203��\335�X�rA\"\210\202!��rA�P�r@�N\202\362�)\202H\306�J\202H\306\211�2\203M\201\244�m:\203O��m@\206\\�\201\245\202\\��m\203Y��m\202\\�\201\245�H\"\210�H.�\207" [item ido-case-fold ido-enable-prefix ido-enable-regexp ido-show-confirm-message ido-pre-merge-state t nil ido-setup-completion-map run-hooks ido-setup-hook ido-trace "\n_LOOP_" "" buffer bufferp buffer-name (file dir) file-name-nondirectory file assoc "new default" 0 (t wide) ido-make-merged-file-list auto wide "merged" input-pending-p ido-set-current-directory ido-final-slash "Merged" ido-make-file-list dir ido-make-dir-list ido-make-buffer-list list ido-make-choice-list ido-set-matches boundp max-mini-window-height minibuffer-depth ido read-from-minibuffer ido-make-prompt "read-from-minibuffer" get-buffer kill-buffer "\n_EXIT_" refresh ...] 22 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 47953)](list "M-x " extended-command-history "toggle-debug-on-error" nil nil)
  ad-Advice-ido-read-internal(#[(item prompt hist &optional default require-match initial) "�p\306\307\306\307\211\211\211\211\211\211\211\211\211\306\307  \n�\307������@�A�B�C�D�E�F�2�G�H�I�J�K�L�M�N\310 \210�O�P\307�Q\311\312!\210�2\204:�\313\314�P\"\210\307�R\306�S\307�T\315�U�J\203\315�\316=\203}\317�V!\203x\320�V!\202\260�V\202\260�V;\203\225�\321>\203\220\322�V!\202\260�V\202\260�\323=\205\260�W\205\260\324�X�Y\"\211�Z\205\257�ZA)\211�I�[\235\203\274\307�I\313\325�I\"\210�I\203\312\326�\\\307�J�K\203\325\307�L�A\203\257��@\327>\203\257��B\204\257��E�D�]\330�P�A\331=�@\332=#�^�_�`�a\313\333�^\"\210�^\204Y��@\332=\203:�\315�X�a�`�_\257��\307\211�E�D\307�]\306�B�A\331=\2052�\331�@\307�A\202\256��a�E�`�D�_�]\306�B�A\331=\205Q�\331�@\307�A\202\256��^\306=\203f�\307�A\202\256��^\334=\203v�\306�@\307�A\202\256��P�X�a�`�_\257��\335�^@A@!\210\336�P!\203\225�\315�P�^�E\307�D�^�]\307�S\306\211�B�A\313\337\306\"\210,�B\203\275�\307\211�B�S\202���N\323=\203\334�\307�D�b?\205\327��c?\205\327�\340�I!�E\202���N\341=\203\373�\307�D�b?\205\366��c?\205\366�\342�I!�E\202���N\316=\203��\307�D\343�I!�E\202���N\344=\203��\307�D\345�I!�E\307�C�K\203,�\306�L\307�K\346 \210�]\203>��@\331=\203>�\306�@�d\206K�\347\350!\205K��(\306�e\351 T\307\211�f�g�h�i�j�(\307�R\3522x�\353\354��k\"�P\307�P�l\307�m%0�G.�\313\355�G\"\210�n\203\223�\356�n!\203\223�\357�n!\210\313\360�R\"\210�R\361=\203\265��A\331=\203H\334 \203H\307�A\306�B\202H�R\362=\203\311�\306�2�U�H\307�R\202H�R\363>\203\242��N\364>\203\206�\307�o�R\365=�5�X�Z�P�p\306�q\315�P�q\203\202��5\203��\3661��\367�k\370P\371�Z!�Z�pP\307�p%0\202��\210�Z�pP\202���p�q\372�q!\206'�\373�Z\322�q!�p\306�5\374�Z!\204k�\375\376\377�Z\"!\203\356�\201v1V�\201w�Z\306\"\210\3060\202h�\210\201x\201y!\210\201z\201{!\210\307\203\356�\335�Z\307�R\201|=#\210�p�P\307\211�q\204\363�-\202H\201}1\232�\201~�k\370P�G\"0\202\235�\210�G�P\202H�R\201�=\203\261�\306�B\202H�R\201\200>\203\301�\306\211�2\202J�R\201\201>\203<�\201\202 \203\372�\201\203\201\204�X\"\203H\201\205\201\206�X\"�P\335\201\205\201{�X\"!\210\306�J\202H\201\207 \204H�R\201\210=\203*��N�UB�QB�Q\341�N\322�X\326\201\211O!�P\313\201\212�Q\"\210\335\372�X\326\201\211O!!\210\306�J\202H�R\201\213=\203m�\313\201\214�Q\"\210�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202H�R\201\215=\203\243�\313\201\216�Q\"\210�Q\203H�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202~��e\203\324��e\201\217>\204\324��c\203\302�\201\220�X�GP!\202\306�\201\221 \204\324�\201\222\201\223!\210\202H�R\201\224=\204\342��]\204\347��G\202\356�\201\225�]@!�H�\201\226>\203\377�\306\211�2\202J�H\201\227\230\204H�H\201\230\230\203*�\201\207 \204$�\335\372�X\326\201\211O!!\210\306�J\202H\201\203�s\2038�\201\231\202;�\201\232�H\"\203y�\201\207 \203y�\201\233�H!\204y�\335�X�H\"\210\313\201\234�H\"\210\201\235 \203s�\201\236�R\306\211�2\202J\306�J\202H\201\203�t\201\237>\203\213�\201\240\202\216�\201\241�H\"\203\241�\335\372�H!!\210\306�J\202H\201\203\201\242�H\"\203\267�\201\243�H!\210\202H\336�H!\2033��W\203\343�\324�X�Y\"\211�u\203\330��u�H\241\210\202\342��X�HB�YB�Y)\335�X�H\"\210�Q\203-�\307�r�Q@\211�r\203)�\201\220�X�rAP!\203)��QA\211�Q\203��\335�X�rA\"\210\202!��rA�P�r@�N\202\362�)\202H\306�J\202H\306\211�2\203M\201\244�m:\203O��m@\206\\�\201\245\202\\��m\203Y��m\202\\�\201\245�H\"\210�H.�\207" [item ido-case-fold ido-enable-prefix ido-enable-regexp ido-show-confirm-message ido-pre-merge-state t nil ido-setup-completion-map run-hooks ido-setup-hook ido-trace "\n_LOOP_" "" buffer bufferp buffer-name (file dir) file-name-nondirectory file assoc "new default" 0 (t wide) ido-make-merged-file-list auto wide "merged" input-pending-p ido-set-current-directory ido-final-slash "Merged" ido-make-file-list dir ido-make-dir-list ido-make-buffer-list list ido-make-choice-list ido-set-matches boundp max-mini-window-height minibuffer-depth ido read-from-minibuffer ido-make-prompt "read-from-minibuffer" get-buffer kill-buffer "\n_EXIT_" refresh ...] 22 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 47953)] list "M-x " extended-command-history "toggle-debug-on-error" nil nil)
  apply(ad-Advice-ido-read-internal #[(item prompt hist &optional default require-match initial) "�p\306\307\306\307\211\211\211\211\211\211\211\211\211\306\307    \n�\307������@�A�B�C�D�E�F�2�G�H�I�J�K�L�M�N\310 \210�O�P\307�Q\311\312!\210�2\204:�\313\314�P\"\210\307�R\306�S\307�T\315�U�J\203\315�\316=\203}\317�V!\203x\320�V!\202\260�V\202\260�V;\203\225�\321>\203\220\322�V!\202\260�V\202\260�\323=\205\260�W\205\260\324�X�Y\"\211�Z\205\257�ZA)\211�I�[\235\203\274\307�I\313\325�I\"\210�I\203\312\326�\\\307�J�K\203\325\307�L�A\203\257��@\327>\203\257��B\204\257��E�D�]\330�P�A\331=�@\332=#�^�_�`�a\313\333�^\"\210�^\204Y��@\332=\203:�\315�X�a�`�_\257��\307\211�E�D\307�]\306�B�A\331=\2052�\331�@\307�A\202\256��a�E�`�D�_�]\306�B�A\331=\205Q�\331�@\307�A\202\256��^\306=\203f�\307�A\202\256��^\334=\203v�\306�@\307�A\202\256��P�X�a�`�_\257��\335�^@A@!\210\336�P!\203\225�\315�P�^�E\307�D�^�]\307�S\306\211�B�A\313\337\306\"\210,�B\203\275�\307\211�B�S\202���N\323=\203\334�\307�D�b?\205\327��c?\205\327�\340�I!�E\202���N\341=\203\373�\307�D�b?\205\366��c?\205\366�\342�I!�E\202���N\316=\203��\307�D\343�I!�E\202���N\344=\203��\307�D\345�I!�E\307�C�K\203,�\306�L\307�K\346 \210�]\203>��@\331=\203>�\306�@�d\206K�\347\350!\205K��(\306�e\351 T\307\211�f�g�h�i�j�(\307�R\3522x�\353\354��k\"�P\307�P�l\307�m%0�G.�\313\355�G\"\210�n\203\223�\356�n!\203\223�\357�n!\210\313\360�R\"\210�R\361=\203\265��A\331=\203H\334 \203H\307�A\306�B\202H�R\362=\203\311�\306�2�U�H\307�R\202H�R\363>\203\242��N\364>\203\206�\307�o�R\365=�5�X�Z�P�p\306�q\315�P�q\203\202��5\203��\3661��\367�k\370P\371�Z!�Z�pP\307�p%0\202��\210�Z�pP\202���p�q\372�q!\206'�\373�Z\322�q!�p\306�5\374�Z!\204k�\375\376\377�Z\"!\203\356�\201v1V�\201w�Z\306\"\210\3060\202h�\210\201x\201y!\210\201z\201{!\210\307\203\356�\335�Z\307�R\201|=#\210�p�P\307\211�q\204\363�-\202H\201}1\232�\201~�k\370P�G\"0\202\235�\210�G�P\202H�R\201�=\203\261�\306�B\202H�R\201\200>\203\301�\306\211�2\202J�R\201\201>\203<�\201\202 \203\372�\201\203\201\204�X\"\203H\201\205\201\206�X\"�P\335\201\205\201{�X\"!\210\306�J\202H\201\207 \204H�R\201\210=\203*��N�UB�QB�Q\341�N\322�X\326\201\211O!�P\313\201\212�Q\"\210\335\372�X\326\201\211O!!\210\306�J\202H�R\201\213=\203m�\313\201\214�Q\"\210�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202H�R\201\215=\203\243�\313\201\216�Q\"\210�Q\203H�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202~��e\203\324��e\201\217>\204\324��c\203\302�\201\220�X�GP!\202\306�\201\221 \204\324�\201\222\201\223!\210\202H�R\201\224=\204\342��]\204\347��G\202\356�\201\225�]@!�H�\201\226>\203\377�\306\211�2\202J�H\201\227\230\204H�H\201\230\230\203*�\201\207 \204$�\335\372�X\326\201\211O!!\210\306�J\202H\201\203�s\2038�\201\231\202;�\201\232�H\"\203y�\201\207 \203y�\201\233�H!\204y�\335�X�H\"\210\313\201\234�H\"\210\201\235 \203s�\201\236�R\306\211�2\202J\306�J\202H\201\203�t\201\237>\203\213�\201\240\202\216�\201\241�H\"\203\241�\335\372�H!!\210\306�J\202H\201\203\201\242�H\"\203\267�\201\243�H!\210\202H\336�H!\2033��W\203\343�\324�X�Y\"\211�u\203\330��u�H\241\210\202\342��X�HB�YB�Y)\335�X�H\"\210�Q\203-�\307�r�Q@\211�r\203)�\201\220�X�rAP!\203)��QA\211�Q\203��\335�X�rA\"\210\202!��rA�P�r@�N\202\362�)\202H\306�J\202H\306\211�2\203M\201\244�m:\203O��m@\206\\�\201\245\202\\��m\203Y��m\202\\�\201\245�H\"\210�H.�\207" [item ido-case-fold ido-enable-prefix ido-enable-regexp ido-show-confirm-message ido-pre-merge-state t nil ido-setup-completion-map run-hooks ido-setup-hook ido-trace "\n_LOOP_" "" buffer bufferp buffer-name (file dir) file-name-nondirectory file assoc "new default" 0 (t wide) ido-make-merged-file-list auto wide "merged" input-pending-p ido-set-current-directory ido-final-slash "Merged" ido-make-file-list dir ido-make-dir-list ido-make-buffer-list list ido-make-choice-list ido-set-matches boundp max-mini-window-height minibuffer-depth ido read-from-minibuffer ido-make-prompt "read-from-minibuffer" get-buffer kill-buffer "\n_EXIT_" refresh ...] 22 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 47953)] (list "M-x " extended-command-history "toggle-debug-on-error" nil nil))
  ido-read-internal(list "M-x " extended-command-history "toggle-debug-on-error" nil nil)
  #[(prompt choices &optional _predicate require-match initial-input hist def _inherit-input-method) "\306\211\211\307������\310 \210\311\312���\f�
����&�-\207" [choices ido-choice-list ido-context-switch-command ido-directory-too-big ido-directory-nonreadable ido-current-directory nil ignore ido-common-initialization ido-read-internal list prompt hist def require-match initial-input] 7 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 120778)]("M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error" nil)
  ad-Advice-ido-completing-read(#[(prompt choices &optional _predicate require-match initial-input hist def _inherit-input-method) "\306\211\211\307������\310 \210\311\312���\f�
����&�-\207" [choices ido-choice-list ido-context-switch-command ido-directory-too-big ido-directory-nonreadable ido-current-directory nil ignore ido-common-initialization ido-read-internal list prompt hist def require-match initial-input] 7 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 120778)] "M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error")
  apply(ad-Advice-ido-completing-read #[(prompt choices &optional _predicate require-match initial-input hist def _inherit-input-method) "\306\211\211\307������\310 \210\311\312���\f�
����&�-\207" [choices ido-choice-list ido-context-switch-command ido-directory-too-big ido-directory-nonreadable ido-current-directory nil ignore ido-common-initialization ido-read-internal list prompt hist def require-match initial-input] 7 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 120778)] ("M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error"))
  ido-completing-read("M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error")
  smex-completing-read(("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil)
  smex-read-and-run(("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...))
  smex()
  funcall-interactively(smex)
  #<subr call-interactively>(smex nil nil)
  ad-Advice-call-interactively(#<subr call-interactively> smex nil nil)
  apply(ad-Advice-call-interactively #<subr call-interactively> (smex nil nil))
  call-interactively(smex nil nil)
  command-execute(smex)

Doesn't work with ido-next-match

Hi Tom,

This package does exactly what I want: gives a much better ido view, but is not ido-vertical (which gets unbearably slow with many candidates), but unfortunately, it doesn't work with ido-next-match (usually bound to C-s).

I reproduced this with an emacs -q session of GNU Emacs 24.5.50.1, where I manually enabled ido-mode, loaded ido-grid-mod.el, and enabled ido-grid-mode (so, no other packages or settings).

I expect C-s (bound to ido-next-match to move to the next match in an ido session, but ido-grid-mode does nothing. I verified that ido-grid-mode-keys is not interfering, and double-checked that C-s was bound when in ido-grid.

Thanks,

Andy

C-n and C-p instead of defaults

Hi,

How should I do to remap C-n and C-p to behave like C-s and C-r?

I tried doing this (using use-package):

:bind (:map ido-completion-map
            ("C-n" . #'ido-grid-mode-next)
            ("C-p" . #'ido-grid-mode-previous))

but without success.

Any help?

It only works if ido-max-window-height is configured

For some reason, if I don't set ido-max-window-height to a value greater than ido-grid-mode-min-rows it won't work as expected:

  • if it is nil it won't show the grid, only the prompt
  • if it is lesser than ido-grid-mode-min-rows, it will use ido-max-window-height height for the minibuffer.

That is how I use it:

(use-package ido-grid-mode
      :ensure t
      :config
      (ido-grid-mode 1)
      (setq ido-grid-mode-max-rows 4
            ido-grid-mode-min-rows 4)

      ;; See https://github.com/larkery/ido-grid-mode.el/issues/7
      (setq ido-max-window-height (+ ido-grid-mode-max-rows 1)))

PS: Should I use ido-grid.el or ido-grid-mode.el?

File name completing in wrong directory

Let's say I have three files, known to ido

/dir/subdir/foo-bar.pdf
/dir/subdir/foo-bar.tex
/dir/foo-bar.org

I want to open the last. So I start typing the first few letters "foo". With ido-grid-mode enabled, I see first "no match", hit TAB, then I see the matching files. I use to select the last and hit . However, it opens a blank file - emacs is then visiting /dir/subdir/foo-bar.org - i.e. the right name in the wrong directory.

I don't experience this with ido-vertical-mode.

Behavior with show-trailing-whitespace

With show-trailing-whitespace enabled, trailing whitespace in the ido buffer is highlighted. I don't know if it's possible to disable show-trailing-whitespace from applying to the ido buffer. If not, should be possible to fix it by actually clearing the trailing whitespace from the buffer, e.g., using delete-trailing-whitespace.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.