prescient.el VS ggtags

Compare prescient.el vs ggtags and see what are their differences.

prescient.el

☄️ Simple but effective sorting and filtering for Emacs. (by radian-software)

ggtags

Emacs frontend to GNU Global source code tagging system. (by leoliu)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
prescient.el ggtags
13 14
591 568
0.3% -
5.7 2.7
2 months ago 11 months ago
Emacs Lisp Emacs Lisp
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of prescient.el. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-04.
  • Emacs Commands I Got by with for Years
    7 projects | news.ycombinator.com | 4 Jan 2024
    > 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
    2 projects | /r/emacs | 8 Mar 2023
    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?
    2 projects | /r/emacs | 26 Oct 2022
    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?
    1 project | /r/emacs | 6 Sep 2022
    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
    2 projects | /r/emacs | 9 Jan 2022
    If you like to use Prescient, Selectrum is nice.
  • Requests for packages to add to NonGNU ELPA?
    6 projects | /r/emacs | 6 Oct 2021
    Selectrum and Prescient would be nice.
  • Company: Suggestions are not sorted, typing "doc" lists "Audi.., Doc.." first and "document" at last
    1 project | /r/emacs | 13 Sep 2021
    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.
    3 projects | /r/emacs | 1 Sep 2021
    ;; ;;;;;;;;;;;;;;;;; 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
    2 projects | /r/emacs | 6 Aug 2021
    You could also try prescient.
  • [POLL] What's your ideal minibuffer completion UI?
    2 projects | /r/emacs | 3 May 2021
    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.

ggtags

Posts with mentions or reviews of ggtags. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-29.
  • What is your favorite IDE?
    4 projects | /r/embedded | 29 May 2023
  • Package-refresh-contents hangs at `contacting host: elpa.gnu.org:443` need help fixing.
    1 project | /r/emacs | 30 Apr 2023
    Can you access https://elpa.gnu.org in a browser?
  • How to manually install emacs packages? I am unable to acess github
    2 projects | /r/emacs | 28 Jul 2022
    The packages available via the built-in package manager once configured do not come from GitHub though they may be developed there. They come from GNU ELPA NonGNU ELPA and MELPA. You would still need internet access though.
  • Use Portage instead of package.el for managing Emacs packages
    9 projects | /r/Gentoo | 21 Mar 2022
    To install elisp packages system-wide under the Portage control you can use gs-elpa. Read layman documentation before using it, as gs-elpa represents ELPA repositories as g-sorcery overlays. It currently supports 4 repositories: gnu-elpa, marmalade, melpa and melpa-stable.
  • melpa mirror on air-gapped network
    5 projects | /r/emacs | 1 Feb 2022
    I run emacs at work on a system that does not access the internet, so I cannot utilize the package interface that pulls directly from melpa (and elpa etc). Years ago, someone copied a version of melpa into a local directory on the air-gapped server. In my init.el, I setq package-archive to something like (("local-melpa" . "/path/to/the/melpa/dir")) so that it points to this local directory. I'm wondering if there is a tool to facilitate this sort of mirroring? I would like to update my packages on this air-gapped network. I am able to copy files onto the system from a less restricted workstation with internet access. Is it just a matter of unzipping the melpa repo and pointing package-archive to the fresh melpa directory?
  • Proper ctags used nowadays?
    2 projects | /r/emacs | 6 Jan 2022
    https://github.com/leoliu/ggtags works well ; otherwise I use dumb-jump and eglot quite a bit
  • What's the Emacs way to explore a new project?
    7 projects | /r/emacs | 25 Dec 2021
    https://github.com/leoliu/ggtags can also be useful ; and for me ripgrep via https://github.com/leoliu/ack-el or https://github.com/jacktasia/dumb-jump
  • Emacs *Network Security Manager* reporting 'certificate has expired' that...hasn't.
    3 projects | /r/emacs | 16 Oct 2021
    I get similar connection-security messages when attempting to connect to the package archive at https://elpa.nongnu.org/ —again, in both *Package* and in *eww*—while elpa.gnu.org seems to be just flat out nonresponsive. However, other https sites including https://duckduckgo.com/about and https://twitter.com work just fine.
  • Requests for packages to add to NonGNU ELPA?
    6 projects | /r/emacs | 6 Oct 2021
    I am working on adding more packages to NonGNU ELPA, the new package archive enabled by default from Emacs 28 onwards. Compared to GNU ELPA, there is no need for a copyright assignment (the only requirement is that packages do not endorse non-free software, but that is the case for most Emacs-related software to begin with).
  • How to understand configuration flags when building Emacs?
    1 project | /r/emacs | 30 Sep 2021
    You can also install the latest stable version of Org via GNU ELPA by invoking M-x package-install RET org RET.

What are some alternatives?

When comparing prescient.el and ggtags you can also consider the following projects:

selectrum - 🔔 Better solution for incremental narrowing in Emacs.

citre - A superior code reading & auto-completion tool with pluggable backends.

vertico - :dizzy: vertico.el - VERTical Interactive COmpletion

lsp-mode - Emacs client/library for the Language Server Protocol

haskell-mode - Emacs mode for Haskell

melpa - Recipes and build machinery for the biggest Emacs package repo

helm - Emacs incremental completion and selection narrowing framework

vscode-intelephense - PHP intellisense for Visual Studio Code

org-roam - Rudimentary Roam replica with Org-mode

ivy-rich - More friendly interface for ivy.

php-mode - A powerful and flexible Emacs major mode for editing PHP scripts