GNU Global with ivy completion
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

counsel-gtags.el melpa badge melpa stable badge

GNU GLOBAL interface of ivy.

Tasks

  • Basic commands
  • find file command
  • Tag command
  • Context command(dwim)
  • Find definition and references
  • include header support
  • GTAGSLIBPATH support
  • Basic History command
  • History navigate command
  • Tramp support
  • Windows support

Requirements

  • Emacs 24.3 or higher versions
  • counsel
  • GNU global 6.2.3 or higher versions

Installation

counsel-gtags is available on MELPA and MELPA stable

You can install counsel-gtags with the following command.

M-x package-install [RET] counsel-gtags [RET]

Basic Usage

You can search for tags or files in the database. Every time you jump to a definition, reference or symbol the current position is pushed to the context stack. You can navigate backward and forward within this stack with counsel-gtags-go-backward and counsel-gtags-go-forward.

counsel-gtags-find-definition

Search for definition.

counsel-gtags-find-reference

Search for references.

counsel-gtags-find-symbol

Search for symbol references.

counsel-gtags-find-file

Search for file among tagged files.

counsel-gtags-go-backward

Go to previous position in context stack.

counsel-gtags-go-forward

Go to next position in context stack.

counsel-gtags-create-tags

Create GNU GLOBAL tags.

counsel-gtags-update-tags

Update tags.

counsel-gtags-dwim

Find name by context.

  • Jump to tag definition if cursor is on tag reference
  • Jump to tag reference if cursor is on tag definition

Sample Configuration

(add-hook 'c-mode-hook 'counsel-gtags-mode)
(add-hook 'c++-mode-hook 'counsel-gtags-mode)

(with-eval-after-load 'counsel-gtags
  (define-key counsel-gtags-mode-map (kbd "M-t") 'counsel-gtags-find-definition)
  (define-key counsel-gtags-mode-map (kbd "M-r") 'counsel-gtags-find-reference)
  (define-key counsel-gtags-mode-map (kbd "M-s") 'counsel-gtags-find-symbol)
  (define-key counsel-gtags-mode-map (kbd "M-,") 'counsel-gtags-go-backward))