unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eric Ludlam <eric@siege-engine.com>
To: Stephen Leake <stephen_leake@stephe-leake.org>, emacs-devel@gnu.org
Subject: Re: xref and GNU Global?
Date: Fri, 21 Aug 2015 21:41:33 -0400	[thread overview]
Message-ID: <55D7D34D.8000208@siege-engine.com> (raw)
In-Reply-To: <86pp2gstq9.fsf@stephe-leake.org>

On 08/21/2015 08:37 AM, Stephen Leake wrote:
> Nicolas Petton <nicolas@petton.fr> writes:
>
>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>
>>>> I find GNU Global to be far superior to etags or ctags.  Is there any
>>>> plan to have support for it in xref.el? (Or maybe there is and I missed
>>>> it).
>>>
>>> Yes.  IIRC the plan is to wait for Nicolas Petton to start working on
>>> it.
>>
>> Hmm, right.  First I'll have a look at what semantic & xref already have
>> to offer :)
>
> One approach is to use what semantic currently has for gnu global;
> that's in emacs/lisp/cedet/semantic/db-global.el. I'm not clear if all
> of that is accessible via the xref interface yet.
>
> I suspect semantic/db-global.el provides the same functionality as
> ggtags, possibly without as much UI; the current design goal is for xref
> to be the UI for semantic cross-reference features.

Global support from cedet/semantic comes from a few different places. 
The core interface is a few calls in cedet-global.el.  Helpful for 
getting some raw data.

The semantic/db-global.el is for using GNU Global as a database backend. 
  Stand-alone, it is not useful.  With Semantic and it's generic 
database system, it provides a way to find symbol declarations across a 
project.  You would use this if you wanted to write or use an existing 
tool using semantic's tag finding APIs to find declarations. 
semantic-complete-jump is an example that uses that.  The nice thing 
about semantic's database system is it can mix multiple tools together, 
for example global for project wide, and Semantic's parser system for 
buffers you are editing that global doesn't know about yet.

semantic/symref/global.el is another place with global support.  This 
one is pretty simple as far as running and parsing output for use with 
the semantic symref searching system.   This tool is useful for finding 
references, and also providing other tag information along with the 
different hits.


Eric



      reply	other threads:[~2015-08-22  1:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-19  9:02 xref and GNU Global? Nicolas Petton
2015-08-19 14:06 ` Stephen Leake
2015-08-19 21:27   ` Nicolas Petton
2015-08-20 15:16     ` Stephen Leake
2015-08-21  8:54       ` Nicolas Petton
2015-08-19 14:22 ` Dmitry Gutov
2015-08-19 21:28   ` Nicolas Petton
2015-08-21  7:46     ` Eli Zaretskii
2015-08-19 17:19 ` Stefan Monnier
2015-08-19 21:37   ` Nicolas Petton
2015-08-21 12:37     ` Stephen Leake
2015-08-22  1:41       ` Eric Ludlam [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55D7D34D.8000208@siege-engine.com \
    --to=eric@siege-engine.com \
    --cc=emacs-devel@gnu.org \
    --cc=stephen_leake@stephe-leake.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).