emacs-devel
[Top][All Lists]
Advanced

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

Re: Project detection and configuration


From: Lluís
Subject: Re: Project detection and configuration
Date: Fri, 16 Oct 2015 23:04:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Evgeniy Dushistov writes:

> On Wed, Oct 14, 2015 at 05:58:21PM +0200, Lluís wrote:
>> 
>> As Eric pointed out, most of the user-facing features of an IDE depend on 
>> some
>> underlying support to detect and configure projects.
>> 
>> Now, it is not clear what "detect and configure" really means, but it seems 
>> that
>> EDE (CEDET's project management component) is not fully satisfying or simple
>> enough to extend/configure at this point in time.
>> 
>> I've formed my own opinions on how this could be improved, but I would like 
>> to
>> hear what others think before discussing how to do it. So, what is required 
>> from
>> "project management"? A few things quickly come into mind:
>> 
>> * Repository
>> ** Detect the root directory that conforms a checked-out repository
>> ** Ignore repository-specific files on other components
>> ** Interact with repo-management tools?
>> 

> "magit" detect repo root automatically, you just call "magit-status"
> in buffer mapped to file/directory inside repo and it show right stuff,
> may be just create "vc-status" that call "vc-dir" with relevant dir?

> Anyway why do something about this, "vc-" and "magit-" good enough,
> is any IDE do better stuff using information about project?

Well, I put the interaction piece with a question mark because I'm not sure
there is anything that the "project management" piece should do, beside maybe
starting up the appropriate repository management tool (e.g., magit or vc).


>> * Project information
>> ** Name, version, homepage, etc
>> 

> IMHO, never used this information in any IDE, except name.

Yeah, I'm not sure how useful these might be either. Maybe it's just my mind
reminding me that EDE already has that information.


>> * Build system

> Actually if we talk about C/C++ open source project this is a key for
> all other features.

> Almost all C/C++ open source project have makefile/cmake file/scons etc,
> and thats all. IDE must parse them and exctract information about:

> - how to compile exactly one source file (to get auto completion,
>   refactoring, right syntax highlight, warning/errors during typing [like 
> flymake] etc)
> - what executable files was created (to make possible click Debug/Run,
>   to run valgrind with it, excract gcov information etc)

> And cedet have framework for this, it can parse makefile/cmake, plus
> you can easily extend it to support new build system, writing something
> like this:
> (defclass my-ede-cpp-root-project (ede-cpp-root-project 
> eieio-instance-tracker)
>   (
>    (custom_build_cmd :initarg :custom_build_cmd
>                :initform ""
>                :type string
>                :custom string
>                :documentation "Set this field to shell command for build your 
> project")
>    (path_to_exe :initarg :path_to_exe
>               :initfrom ""
>               :type string
>               :custom string
>               :documentation "This field hold path to your project")
>    )
>   "My class for ede projects"
>   :method-invocation-order :depth-first
> )

> So it would be great to finish makefile/cmake support in EDE, plus
> some easy way to get from EDE information about exact file: includes, 
> defines, plus
> flags like -std=c++11

Actually, I'm more interested in analyzing what is necessary rather than what
existing code we can use to make it happen. Also, I just sent a mail describing
a possible approach to let such features to be developed independently from the
project concept:

  http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg01302.html


Thanks,
  Lluis

-- 
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth



reply via email to

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