emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Per-language project-search-path, was: Re: Unified project interface


From: Nix
Subject: Re: Per-language project-search-path, was: Re: Unified project interface
Date: Sun, 02 Aug 2015 09:57:10 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

On 2 Aug 2015, Eric Ludlam stated:
> Every EDE project marks the top directory of a source tree, with
> .ede-ignore enabling breaks for nested projects. Using that top path,
> you can use find/grep, GNU Global, and various other tools to do your
> searching for you. The nice thing when you start using Global or
> CScope is that your config for the tool in question does the mode type
> filtering for you.

Allow me to interject here that this feature had me applauding when I
discovered it. It's an example of helpful automagic: if you have a large
project, you're going to want a tagging system anyway: having Semantic
automatically exploit it as soon as it appears is just gravy.

Speaking personally, I don't need an extra project system: as far as I'm
concerned Emacs already has one. I wrote one, as everyone does, and then
threw it away because I never use it. EDE and GNU GLOBAL are sufficient,
once you figure out how to use them: they know what files are part of
the project, how to build it, how to find things in it with a degree of
context-sensitivity that xref can only dream of (though its
multi-backend feature means that presumably it can learn to *use*
Semantic to provide context-sensitive search), and can handle things
like projects with handwritten Makefiles that don't match its automagic
project-root- searching features easily:

(ede-cpp-root-project "DTrace-CTF" :file "/usr/src/libdtrace-ctf/Makerules"
    :include-path '("/include" "/build")
    :system-include-path '("/usr/include")
    :spp-table '(("_LITTLE_ENDIAN" . "") ("_GNU_SOURCE" . "")))

That, combined with a GTAGS file, gives me most of EDE's features, and
all the features proposed for the project system. For projects like
Emacs or the Linux kernel or anything using Automake I don't even need
that much. EDE is an underappreciated jewel. Most of this project
discussion and the invasive code piling into modes all across Emacs
feels to me like an attempt to reimplement part of EDE, but without
things like the grammar-sensitive searching that makes EDE so capable.

(What I'd really like is something like the el-search pcase-based
searcher Michael Heerdegen recently proposed, only for everything
supported by Semantic, but with most language grammars not being very
amenable to ML-style pattern-matching I doubt this is possible...)

-- 
NULL && (void)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]