dumb-jump
an Emacs "jump to definition" package for 50+ languages
...Dumb Jump requires at least GNU Emacs 24.3. Dumb Jump uses The Silver Searcher ag, ripgrep rg, or grep to find potential definitions of a function or variable under point. It uses a set of regular expressions based on the file extension, or major-mode, of the current buffer. The matches are run through a shared set of heuristic methods to find the best candidate to jump to. If it can't decide it will present the user with a list in a pop-menu, helm, or ivy (see dumb-jump-selector). For the currently supported languages it seems to do a good job of finding what you want. ...