prescient.el
orderless
prescient.el | orderless | |
---|---|---|
13 | 32 | |
591 | 677 | |
0.3% | - | |
5.7 | 8.7 | |
2 months ago | about 1 month ago | |
Emacs Lisp | Emacs Lisp | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
prescient.el
-
Emacs Commands I Got by with for Years
> It keeps a history for that session, but so far I have not found a way to maintain history between sessions.
I use prescient.el [0] with prescient-persist-mode for this, though a quick look seems that SMEX also has something similar [1] but I have not used that so I can't say anything about how it works.
[0]: https://github.com/radian-software/prescient.el
[1]: https://github.com/nonsequitur/smex#persistence
-
Have an emacs completion setup that works really smoothly in practice? Requesting examples
I use `orderless` for completion, for which there are a lot of good suggestions here, and `prescient` for sorting. `prescient` also has completion functionality, but I disable it. From the README:
-
How to get helm like narrowing behavior with selectrum?
In general, you want either orderless or prescient, with my personal preference being the former.
-
How many of you switched from ivy/counsel or helm to vertico/consult?
I was a selectrum/prescient user and I thought I'd miss it, but it turns out I don't. It turns out the standard savehist-mode has been close enough for me. The good news is that there's some work to turn prescient into a real completion-style so that it could be integrated easily.
-
Vertico extensions demo
If you like to use Prescient, Selectrum is nice.
-
Requests for packages to add to NonGNU ELPA?
Selectrum and Prescient would be nice.
-
Company: Suggestions are not sorted, typing "doc" lists "Audi.., Doc.." first and "document" at last
The behavior that you describe is the one related to company-prescient 😊
-
My setup(Almost the powerful C++ IDE) and Consume so many resources in GUI.
;; ;;;;;;;;;;;;;;;;; PACKAGES ;;;;;;;;;;;;;;;;; ;; ;; ;;;;;;;;;;;;;;;;; C++ ;;;;;;;;;;;;;;;;; ;; (require 'package) ;; (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) (setq package-archives '( ("gnu" . "http://elpa.gnu.org/packages/") ;;("marmalade" . "https://marmalade-repo.org/packages/") ;;("milkmelpa" . "http://melpa.milkbox.net/packages/") ;;("stablemelpa" . "http://stable.melpa.org/packages/") ("melpa" . "https://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/") ;;("melpa" . "http://melpa.org/packages/") )) (package-initialize) (setq package-selected-packages '( avy all-the-icons centaur-tabs ;;cmake-ide cmake-mode company company-prescient company-quickhelp company-quickhelp-terminal ;counsel ;counsel-projectile dashboard dashboard-ls dap-mode eldoc-box ;;eldoc-overlay flycheck flycheck-inline helm-lsp helm-swoop helm-xref highlight-indentation hydra iedit imenu-anywhere imenu-list indent-guide ivy all-the-icons-ivy-rich ivy-dired-history ivy-file-preview ivy-prescient ivy-rich ivy-xref lsp-ivy lsp-mode lsp-treemacs lsp-ui markdown-preview-mode neotree org-bullets page-break-lines powerline projectile quick-peek ;; workgroups2 ;; Beta selectrum selectrum-prescient smartparens swiper treemacs use-package which-key yasnippet )) (when (cl-find-if-not #'package-installed-p package-selected-packages) (package-refresh-contents) (mapc #'package-install package-selected-packages)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Dasboard (require 'dashboard) (dashboard-setup-startup-hook) (use-package dashboard :config (setq show-week-agenda-p t) (setq dashboard-items '((recents . 15) (agenda . 5))) (setq dashboard-set-heading-icons t) (setq dashboard-set-file-icons t) (setq dashboard-set-init-info t) (setq dashboard-startup-banner 3) (setq dashboard-set-navigator t) (dashboard-setup-startup-hook) ) ;; Set the title ;;(setq dashboard-banner-logo-title "Welcome to Emacs Dashboard") ;; Set the banner (setq dashboard-startup-banner [official]) ;; Value can be ;; 'official which displays the official emacs logo ;; 'logo which displays an alternative emacs logo ;; 1, 2 or 3 which displays one of the text banners ;; "path/to/your/image.png" or "path/to/your/text.txt" which displays whatever image/text you would prefer ;; Content is not centered by default. To center, set (setq dashboard-center-content t) (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) (setq dashboard-items '((recents . 5) (bookmarks . 5) (projects . 5) (agenda . 5) (registers . 5))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Detect files and modes (which-key-mode) (add-hook 'c-mode-hook 'lsp) (add-hook 'c++-mode-hook 'lsp) ;;(add-hook 'lisp-mode-hook 'lsp) (add-hook 'cmake-mode-hook 'company-mode) ;;(add-hook 'emacs-lisp-mode-hook 'lsp) ;; ;; Switch between Header and Source (add-hook 'c-mode-common-hook (lambda() (local-set-key (kbd "M-o") 'ff-find-other-file))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; LSP + Company (setq gc-cons-threshold (* 100 1024 1024) read-process-output-max (* 1024 1024) treemacs-space-between-root-nodes nil company-idle-delay 0.0 ;; company-cmake t company-show-numbers nil company-minimum-prefix-length 1 company-dabbrev-other-buffers t company-dabbrev-code-other-buffers 'all company-dabbrev-code-everywhere t ; company-dabbrev-downcase nil ; company-transformers '(company-sort-prefer-same-case-prefix) ;; (company-sort-by-occurrence) ;; (company-sort-by-backend-importance) ;; (company-sort-prefer-same-case-prefix) lsp-idle-delay 0.1 ) ;; clangd is fast (require 'lsp-mode) ;;(add-hook 'XXX-mode-hook #'lsp) (add-hook 'emacs-lisp-mode #'lsp-deferred) (add-hook 'lisp-mode-hook #'lsp-deferred) ;;(add-hook 'prog-mode-hook #'lsp) ;; (add-hook 'js-mode-hook #'lsp) ;; (add-hook '-mode-hook #'lsp) (add-hook 'XXX-mode-hook #'lsp) (with-eval-after-load 'lsp-mode (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration) (require 'dap-cpptools) (yas-global-mode)) (require 'dap-cpptools) (setq dap-auto-configure-features '(sessions locals controls tooltip)) (eval-after-load 'company '(add-to-list 'company-backends '( company-capf company-bbdb company-files company-yasnippet company-cmake company-clang ))) (global-set-key (kbd "C-c c") 'company-complete-common) ;;company-capf company-bbdb company-files company-yasnippet company-dabbrev-code company-semantic company-cmake ;;;; company ;; (use-package company ;; :ensure ;; :defer 4 ;; :init (progn ;; (global-company-mode) ;; (setq company-global-modes '(not python-mode cython-mode sage-mode)) ;; ) ;; :config (progn ;; (setq company-tooltip-limit 20 ;; company-idle-delay .1 ;; company-echo-delay 0 ;; company-begin-commands '(self-insert-command) ;; company-transformers '(company-sort-by-occurrence) ;; company-selection-wrap-around t ;; company-idle-delay .1 ;; company-minimum-prefix-length 1 ;; company-selection-wrap-around t ;; company-dabbrev-downcase nil ;; ) ;; (bind-keys :map company-active-map ;; ("C-n" . company-select-next) ;; ("C-p" . company-select-previous) ;; ("C-d" . company-show-doc-buffer) ;; ("" . company-complete) ;; ("" . company-abort) ;; ) ;; ) ;; ) ;; (setq lsp-enable-snippet t) ;; (setq lsp-enable-symbol-highlighting t) (setq lsp-ui-doc-header t) (setq lsp-ui-doc-include-signature t) ;;(setq lsp-ui-doc-alignment 'window) ;;(setq lsp-ui-doc-glance t) (setq lsp-ui-doc-enable t) ;; (setq lsp-ui-doc-enable nil) (setq lsp-ui-doc-show-with-cursor t) (setq lsp-ui-doc-show-with-mouse t) ;;(setq lsp-ui-doc-text-scale-level 5) (setq lsp-ui-doc-position 'at-point) (setq lsp-lens-mode t) (setq lsp-lens-enable t) (setq lsp-headerline-breadcrumb-enable t) (setq lsp-ui-sideline-show-code-actions t) (setq lsp-ui-sideline-enable t) (setq lsp-ui-sideline-show-hover t) (setq lsp-modeline-code-actions-enable t) (setq lsp-diagnostics-provider :flycheck) (setq lsp-ui-sideline-enable t) (setq lsp-ui-sideline-show-diagnostics t) (setq lsp-eldoc-enable-hover t) (setq lsp-modeline-diagnostics-enable t) (setq lsp-signature-auto-activate t) ;; you could manually request them via `lsp-signature-activate` (setq lsp-signature-render-documentation t) ;;(setq lsp-completion-provider :company-mode) (setq lsp-completion-show-detail t) (setq lsp-completion-show-kind t) (require 'eldoc-box) (eldoc-box-hover-mode ) ;;(use-package eldoc-overlay ;; :ensure t ;; :init (eldoc-overlay-mode 1)) ;; (use-package ;; lsp-ui ;; :hook (lsp-mode . lsp-ui-mode) ;; :after flycheck ;; :bind (:map lsp-mode-map ;; ("" . lsp-find-references) ;; ("S-" . lsp-ui-peek-find-references) ;; ("" . lsp-find-definition) ;; ("S-" . lsp-find-declaration) ;; ("" . lsp-ui-doc-glance) ;; ("C-c f" . lsp-format-buffer) ;; ("C-" . lsp-ui-sideline-apply-code-actions) ;; ("M-p" . lsp-ui-find-prev-reference) ;; ("M-n" . lsp-ui-find-next-reference)) ;; :custom (lsp-ui-sideline-diagnostic-max-lines 3) ;; (lsp-ui-flycheck-enable t) ;; (lsp-ui-doc-enable nil) ;; (lsp-ui-sideline-ignore-duplicate t) ;; (lsp-ui-sideline-show-code-actions t) ;; (lsp-ui-sideline-show-hover t) ;; (lsp-ui-sideline-show-symbol nil) ;; (lsp-ui-sideline-actions-kind-regex ".*") ;; (lsp-clients-clangd-args '("--compile-commands-dir=build" ;; "--header-insertion=never") nil nil ;; "Customized with use-package lsp-clients") ;; :custom-face ;; ;; Make the sideline overlays less annoying ;; (lsp-ui-sideline-global ((t ;; (:background "444444")))) ;; (lsp-ui-sideline-symbol-info ((t ;; (:foreground "gray45" ;; :slant italic ;; :height 0.99))))) ;; No es compatible con helm ;(setq lsp-ui-peek-mode t) ;; (global-set-key (kbd " ") #'lsp-ui-imenu) ;; (setq lsp-ui-imenu-auto-refresh t) ;; ;;;;;;;;;;;;;;;;; Centaur Tabs ;;;;;;;;;;;;;;;;; ;; (require 'centaur-tabs) (centaur-tabs-mode t) (global-set-key (kbd "M-") 'centaur-tabs-backward) (global-set-key (kbd "M-") 'centaur-tabs-forward) (centaur-tabs-headline-match) ;(setq centaur-tabs-style "alternate") ;(setq centaur-tabs-style "box") (setq centaur-tabs-style "rounded") ;(setq centaur-tabs-style "bar") (setq centaur-tabs-set-icons t) (setq centaur-tabs-plain-icons t) (setq centaur-tabs-set-close-button nil) (setq centaur-tabs-set-modified-marker t) (centaur-tabs-change-fonts "arial" 160) (setq centaur-tabs-set-bar 'under) ;; Note: If you're not using Spacmeacs, in order for the underline to display ;; correctly you must add the following line: (setq x-underline-at-descent-line t) ;; ;;;;;;;;;;;;;;;;; Ido Mode ;;;;;;;;;;;;;;;;; ;; ;;(ido-mode t) ;; Do not use ;; ;;;;;;;;;;;;;;;;; Indent-Guide ;;;;;;;;;;;;;;;;; ;; (require 'indent-guide) (indent-guide-global-mode) (setq indent-guide-delay 0.1) ;(set-face-background 'indent-guide-face "dimwhite") ;;(set-face-background 'indent-guide-face "gray") ;;(set-face-background 'indent-guide-face "#000000") ;;(set-face-background 'indent-guide-face "blue") (setq indent-guide-recursive t) (setq indent-guide-char "|") ;; ;;;;;;;;;;;;;;;;; Neotree ;;;;;;;;;;;;;;;;; ;; ;(require 'neotree) ;(global-set-key (kbd " ") 'neotree-toggle) ;(setq-default neo-show-hidden-files t) ;(setq neo-smart-open t) ; (neotree-show) ;; ;;;;;;;;;;;;;;;;; treemacs ;;;;;;;;;;;;;;;;; ;; (use-package treemacs :ensure t :defer t :init (with-eval-after-load 'winum (define-key winum-keymap (kbd "M-0") #'treemacs-select-window)) :config (progn (setq treemacs-collapse-dirs (if treemacs-python-executable 3 0) treemacs-deferred-git-apply-delay 0.5 treemacs-directory-name-transformer #'identity treemacs-display-in-side-window t treemacs-eldoc-display t treemacs-file-event-delay 5000 treemacs-file-extension-regex treemacs-last-period-regex-value treemacs-file-follow-delay 0.2 treemacs-file-name-transformer #'identity treemacs-follow-after-init t treemacs-expand-after-init t treemacs-git-command-pipe "" treemacs-goto-tag-strategy 'refetch-index treemacs-indentation 2 treemacs-indentation-string " " treemacs-is-never-other-window nil treemacs-max-git-entries 5000 treemacs-missing-project-action 'ask treemacs-move-forward-on-expand nil treemacs-no-png-images nil treemacs-no-delete-other-windows t treemacs-project-follow-cleanup nil treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory) treemacs-position 'left treemacs-read-string-input 'from-child-frame treemacs-recenter-distance 0.1 treemacs-recenter-after-file-follow nil treemacs-recenter-after-tag-follow nil treemacs-recenter-after-project-jump 'always treemacs-recenter-after-project-expand 'on-distance treemacs-litter-directories '("/node_modules" "/.venv" "/.cask") treemacs-show-cursor nil treemacs-show-hidden-files t treemacs-silent-filewatch nil treemacs-silent-refresh nil treemacs-sorting 'alphabetic-asc treemacs-select-when-already-in-treemacs 'move-back treemacs-space-between-root-nodes t treemacs-tag-follow-cleanup t treemacs-tag-follow-delay 1.5 treemacs-user-mode-line-format nil treemacs-user-header-line-format nil treemacs-width 35 treemacs-width-is-initially-locked t treemacs-workspace-switch-cleanup nil) ;; The default width and height of the icons is 22 pixels. If you are ;; using a Hi-DPI display, uncomment this to double the icon size. ;;(treemacs-resize-icons 44) (treemacs-follow-mode t) (treemacs-filewatch-mode t) (treemacs-fringe-indicator-mode 'always) (pcase (cons (not (null (executable-find "git"))) (not (null treemacs-python-executable))) (`(t . t) (treemacs-git-mode 'deferred)) (`(t . _) (treemacs-git-mode 'simple))) (treemacs-hide-gitignored-files-mode nil)) :bind (:map global-map ("M-0" . treemacs-select-window) ("C-x t 1" . treemacs-delete-other-windows) (" " . treemacs) ("C-x t B" . treemacs-bookmark) ("C-x t C-t" . treemacs-find-file) ("C-x t M-t" . treemacs-find-tag))) (use-package treemacs-evil :after (treemacs evil) :ensure t) (use-package treemacs-projectile :after (treemacs projectile) :ensure t) (use-package treemacs-icons-dired :after (treemacs dired) :ensure t :config (treemacs-icons-dired-mode)) (use-package treemacs-magit :after (treemacs magit) :ensure t) (use-package treemacs-persp ;;treemacs-perspective if you use perspective.el vs. persp-mode :after (treemacs persp-mode) ;;or perspective vs. persp-mode :ensure t :config (treemacs-set-scope-type 'Perspectives)) (with-eval-after-load 'treemacs (define-key treemacs-mode-map [mouse-1] #'treemacs-single-click-expand-action)) ;; ;;;;;;;;;;;;;;;;; iMenu ;;;;;;;;;;;;;;;;; ;; (global-set-key (kbd " ") #'imenu-list-smart-toggle) ;; (setq imenu-list-focus-after-activation t) ;; (global-set-key (kbd "C-.") #'imenu-anywhere) ;(imenu-list-smart-toggle) (setq imenu-list-size 40) ;;(setq imenu-list-auto-resize t) ;;(setq imenu-max-item-length 40) ;;(setq imenu-min-item-length 30) ;; ;;;;;;;;;;;;;;;;; Projectile ;;;;;;;;;;;;;;;;; ;; (projectile-mode +1) ;; Recommended keymap prefix on macOS ;; (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) ;; Recommended keymap prefix on Windows/Linux (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) ;;(setq projectile-project-search-path '("~/Workspace_SDD/emacs/")) ;; Usar ;; Projectile puede detectar proyectos con archivos cmake, git ..., pero tambien para "forzarlo" en la carpeta crea un archivo .projectile ;;(setq projectile-indexing-method 'native) (setq projectile-enable-caching t) (setq projectile-require-project-root t) (setq projectile-switch-project-action #'projectile-dired) (setq projectile-switch-project-action #'projectile-find-dir) (setq projectile-find-dir-includes-top-level t) ;; ;;;;;;;;;;;;;;;;; Powerline ;;;;;;;;;;;;;;;;; ;; ;; https://github.com/milkypostman/powerline (require 'powerline) (powerline-center-theme) (setq powerline-default-separator 'wave) ;(powerline-raw mode-line-mule-info nil 'l) ;;(setq powerline-arrow-shape 'arrow) ;; the default (setq powerline-arrow-shape 'curve) ;; give your mode-line curves ;;(setq powerline-arrow-shape 'arrow14) ;; best for small fonts ;; ParenMode. ;; https://www.emacswiki.org/emacs/ShowParenMode ;;(require 'paren) (show-paren-mode 1) (setq show-paren-delay 0) (setq show-paren-style 'mixed) ;; Smartparens (require 'smartparens-config) (smartparens-global-mode t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details ;; ;; helm from https://github.com/emacs-helm/helm ;; ;;(require 'helm) ;; (helm-mode) ;; (require 'helm-xref) ;; (define-key global-map [remap find-file] #'helm-find-files) ;; (define-key global-map [remap execute-extended-command] #'helm-M-x) ;; (define-key global-map [remap switch-to-buffer] #'helm-mini) ;; ;;(global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) ;; ;; ;; This Solves the error with Flycheck ;; (setq helm-always-two-windows t ;; helm-split-window-inside-p t) ;; ;; Locate the helm-swoop folder to your path ;; ;;(add-to-list 'load-path "~/.emacs.d/elisp/helm-swoop") ;; (require 'helm-swoop) ;; ;; Change the keybinds to whatever you like :) ;; (global-set-key (kbd "M-i") 'helm-swoop) ;; (global-set-key (kbd "M-I") 'helm-swoop-back-to-last-point) ;; (global-set-key (kbd "C-c M-i") 'helm-multi-swoop) ;; (global-set-key (kbd "C-x M-i") 'helm-multi-swoop-all) ;; ;; When doing isearch, hand the word over to helm-swoop ;; (define-key isearch-mode-map (kbd "M-i") 'helm-swoop-from-isearch) ;; ;; From helm-swoop to helm-multi-swoop-all ;; (define-key helm-swoop-map (kbd "M-i") 'helm-multi-swoop-all-from-helm-swoop) ;; ;; When doing evil-search, hand the word over to helm-swoop ;; ;; (define-key evil-motion-state-map (kbd "M-i") 'helm-swoop-from-evil-search) ;; ;; Instead of helm-multi-swoop-all, you can also use helm-multi-swoop-current-mode ;; (define-key helm-swoop-map (kbd "M-m") 'helm-multi-swoop-current-mode-from-helm-swoop) ;; ;; Move up and down like isearch ;; (define-key helm-swoop-map (kbd "C-r") 'helm-previous-line) ;; (define-key helm-swoop-map (kbd "C-s") 'helm-next-line) ;; (define-key helm-multi-swoop-map (kbd "C-r") 'helm-previous-line) ;; (define-key helm-multi-swoop-map (kbd "C-s") 'helm-next-line) ;; ;; Save buffer when helm-multi-swoop-edit complete ;; (setq helm-multi-swoop-edit-save t) ;; ;; If this value is t, split window inside the current window ;; (setq helm-swoop-split-with-multiple-windows nil) ;; ;; Split direcion. 'split-window-vertically or 'split-window-horizontally ;; (setq helm-swoop-split-direction 'split-window-vertically) ;; ;; If nil, you can slightly boost invoke speed in exchange for text color ;; (setq helm-swoop-speed-or-color nil) ;; ;; ;; Go to the opposite side of line from the end or beginning of line ;; (setq helm-swoop-move-to-line-cycle t) ;; ;; Optional face for line numbers ;; ;; Face name is `helm-swoop-line-number-face` ;; (setq helm-swoop-use-line-number-face t) ;; ;; If you prefer fuzzy matching ;; (setq helm-swoop-use-fuzzy-match t) ;; ;; If you would like to use migemo, enable helm's migemo feature ;; ;;(helm-migemo-mode 1) ;; ;; ;;;;;;;;;;;;;;;;; Ivy ;;;;;;;;;;;;;;;;; ;; (ivy-mode) (setq ivy-use-virtual-buffers t) (setq enable-recursive-minibuffers t) ;; enable this if you want `swiper' to use it ;; (setq search-default-mode #'char-fold-to-regexp) (global-set-key (kbd "C-x C-b") 'ibuffer-list-buffers) (global-set-key "\C-s" 'swiper) (global-set-key (kbd "C-c C-r") 'ivy-resume) ;;(global-set-key (kbd "") 'ivy-resume) (global-set-key (kbd "M-x") 'counsel-M-x) (global-set-key (kbd "C-x C-f") 'counsel-find-file) (global-set-key (kbd " f") 'counsel-describe-function) (global-set-key (kbd " v") 'counsel-describe-variable) (global-set-key (kbd " o") 'counsel-describe-symbol) (global-set-key (kbd " l") 'counsel-find-library) (global-set-key (kbd " i") 'counsel-info-lookup-symbol) (global-set-key (kbd " u") 'counsel-unicode-char) (global-set-key (kbd "C-c g") 'counsel-git) (global-set-key (kbd "C-c j") 'counsel-git-grep) (global-set-key (kbd "C-c k") 'counsel-ag) (global-set-key (kbd "C-x l") 'counsel-locate) (global-set-key (kbd "C-S-o") 'counsel-rhythmbox) (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history) ;; ;; ;; Ivy rich (require 'ivy-rich) (all-the-icons-ivy-rich-mode 1) (ivy-rich-mode 1) (setcdr (assq t ivy-format-functions-alist) #'ivy-format-function-line) (ivy-rich-modify-columns 'ivy-switch-buffer '((ivy-rich-switch-buffer-size (:align right)) (ivy-rich-switch-buffer-major-mode (:width 20 :face error)))) ;; ;; ;; Ivy icons ;; Whether display the icons (setq all-the-icons-ivy-rich-icon t) ;; Whether display the colorful icons. ;; It respects `all-the-icons-color-icons'. (setq all-the-icons-ivy-rich-color-icon t) ;; The icon size (setq all-the-icons-ivy-rich-icon-size 1.0) ;; Whether support project root (setq all-the-icons-ivy-rich-project t) ;; Definitions for ivy-rich transformers. ;; See `ivy-rich-display-transformers-list' for details." ;; all-the-icons-ivy-rich-display-transformers-list ;; Slow Rendering ;; If you experience a slow down in performance when rendering multiple icons simultaneously, ;; you can try setting the following variable (setq inhibit-compacting-font-caches t) ;; M-? ;; ;; Ivy xref (require 'ivy-xref) ;; xref initialization is different in Emacs 27 - there are two different ;; variables which can be set rather than just one (when (>= emacs-major-version 27) (setq xref-show-definitions-function #'ivy-xref-show-defs)) ;; Necessary in Emacs <27. In Emacs 27 it will affect all xref-based ;; commands other than xref-find-definitions (e.g. project-find-regexp) ;; as well (setq xref-show-xrefs-function #'ivy-xref-show-xrefs) ;; Ivy history (require 'savehist) (add-to-list 'savehist-additional-variables 'ivy-dired-history-variable) (savehist-mode 1) ;; ;; or if you use desktop-save-mode ;;(add-to-list 'desktop-globals-to-save 'ivy-dired-history-variable) (with-eval-after-load 'dired (require 'ivy-dired-history) ;; if you are using ido,you'd better disable ido for dired ;; (define-key (cdr ido-minor-mode-map-entry) [remap dired] nil) ;in ido-setup-hook (define-key dired-mode-map "," 'dired)) ;; ;; Selectrum (selectrum-mode +1) ;; to make sorting and filtering more intelligent (selectrum-prescient-mode +1) ;; to save your command history on disk, so the sorting gets more ;; intelligent over time (prescient-persist-mode +1) ;; ;; ;; Prescient ;; https://github.com/raxod502/prescient.el (ivy-prescient-mode) (company-prescient-mode) ;;(selectrum-prescient-mode) ;; ;;;;;;;;;;;;;;;;; Flycheck ;;;;;;;;;;;;;;;;; ;; ;; (require 'flycheck) ;; (add-hook 'after-init-hook #'global-flycheck-mode) ;; (global-flycheck-mode) ;; (autoload 'flycheck "flycheck-list-errors") ;; ;; Flycheck inline ;; (with-eval-after-load 'flycheck ;; (add-hook 'flycheck-mode-hook #'flycheck-inline-mode)) ;; ;; (setq flycheck-inline-display-function ;; ;; (lambda (msg pos err) ;; ;; (let* ((ov (quick-peek-overlay-ensure-at pos)) ;; ;; (contents (quick-peek-overlay-contents ov))) ;; ;; (setf (quick-peek-overlay-contents ov) ;; ;; (concat contents (when contents "\n") msg)) ;; ;; (quick-peek-update ov))) ;; ;; flycheck-inline-clear-function #'quick-peek-hide) ;; ;; (require 'flycheck-tip) ;; ;; (define-key your-prog-mode (kbd "C-c C-n") 'flycheck-tip-cycle) ;; ;(flycheck-tip-use-timer 'verbose) ;; ;;(setq flycheck-indication-mode 'left-fringe) ;; ;(setq flycheck-check-syntax-automatically '(mode-enabled )) ;; ;(with-eval-after-load 'flycheck (flycheck-pos-tip-mode)) ;; ;(setq flycheck-highlighting-mode 'columns) ;; ;(setq flycheck-highlighting-mode 'symbols) ;; (setq flycheck-highlighting-mode 'lines) ;; (add-to-list 'display-buffer-alist ;; `(,(rx bos "*Flycheck errors*" eos) ;; (display-buffer-reuse-window ;; display-buffer-in-side-window) ;; (side . bottom) ;; (reusable-frames . visible) ;; (window-height . 0.13))) ;; (add-hook 'flycheck-after-syntax-check-hook ;; (lambda () ;; (if flycheck-current-errors ;; (flycheck-list-errors) ;; (when (get-buffer "*Flycheck errors*") ;; (switch-to-buffer "*Flycheck errors*") ;; (kill-buffer (current-buffer)) ;; ;;;(delete-window) ;; )))) (provide 'Emacs_Packages) ;;; Emacs_Packages.el ends here
-
Prioritize certain completions in ivy
You could also try prescient.
-
[POLL] What's your ideal minibuffer completion UI?
show as I type as the results trigger memory... and for that selectrum. Use standard emacs completing-read, plugin prescient and you have history weightings .. of course, I am now more interested in the completion I have used ten times already, it's a no brainer when coding. It's a complete winner for me.
orderless
-
Emacs Advent Calendar 7: ordeless, embark 1.0 and some bric-a-brac
orderless. A highly configurable completion style that matches multiple patterns in any order against minibuffer completion candidates.
-
Returning emacs user - what packages are common now?
An example relevant to your list would be some changes many people are taking with their completion framework - using package that leverage core emacs functionality rather than replacing it with a complete package that 'overrides' it. Consult, vertico, orderless and associate packages come to mind here. If you do a bit of a search you'll find plenty of info. Here is a video from Prot on the subject, but there are many others as well. I think Prot actually went on to write his own completion system to overlay native emacs functionality as well.
-
How to configure corfu for arbitrary orderless matching?
You didn't mention, so I'll ask, are you using the orderless (https://github.com/oantolin/orderless) completion style?
-
Help wanted: Zsh completion like Vertico+Orderless
Fuzzy completion ala Orderless would be awesome: hitting space during completion acts as a pattern separator.
-
Selectrum now deprecated in favor of Vertico
I dunno—I like how Vertico+Counsel feel. I'm not sure how good the support for Orderless and Embark are in Ivy, but I really like how those packages compose so nicely with the Vertico+Consult ecosystem.
-
How to get helm like narrowing behavior with selectrum?
In general, you want either orderless or prescient, with my personal preference being the former.
-
How to get corfu completions that include substring matches?
You probably want to investigate completion styles. There are many builtin styles, from basic, which just does prefix completion, on up. But there are also 3rd party styles. One of the most powerful is called orderless. Considering all these styles, there really is a ton of flexibility in how you can get to a completion candidate like some-named-something (some, s-n-s, sns, soso, [a-z]{4}-na, e\b \bs, ...). You can even configure more than one style at a time (and usually do).
-
What are the kinds of things you've written Emacs Lisp for?
Well, I've written some general purpose Emacs packages (orderless and embark) that I use a lot, but I also write Emacs Lisp for one-off tasks.
- Fuzzy Finding with Emacs Instead of Fzf
-
Show HN: Tere – A Faster Alternative to CD+ls
I like it. Would be nice to see orderless-style (https://github.com/oantolin/orderless) completion, and a config not to enter the directory by narrowing the completion to one, requiring enter to be pressed.
What are some alternatives?
selectrum - 🔔 Better solution for incremental narrowing in Emacs.
vertico - :dizzy: vertico.el - VERTical Interactive COmpletion
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
haskell-mode - Emacs mode for Haskell
emacs-gdb - GDB graphical interface for GNU Emacs
helm - Emacs incremental completion and selection narrowing framework
swiper - Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
org-roam - Rudimentary Roam replica with Org-mode
helm-ag - The silver searcher with helm interface
ivy-rich - More friendly interface for ivy.
embark - Emacs Mini-Buffer Actions Rooted in Keymaps