Re: EDE documentation

Stephen Leake <[email protected]> Sat, 08 Aug 2015 16:59:10 -0500
Newsgroups gmane.emacs.cedet
Message-ID <[email protected]>
Eric Ludlam <[email protected]> writes:

> I took a stab at completely revamping the EDE documentation organization.
>
> I'd be very interested in peoples thoughts on this organization, and if
> you think it will help.

I read thru ede.info:

In general, this is a big improvement! It's much easier to understand
what is going on with project detection.

In general, there are more `require's needed with the bundled CEDET than
with CEDET from a SourceForge checkout (accessed with
cedet/cedet-devel-load.el). It would be better if
cedet/cedet-devel-load.el mimiced the bundled environment more closely
(same set of preloads/autoloads), so this issue was clearer to the CEDET
developers.

The SourceForge code seems to be currently in transition between Emacs
24 and Emacs 25. It contains (require 'cl-generic), which is not in
Emacs 24 (there is a Gnu ELPA package for it). With Emacs 25, I get
errors like: eieio-oref: eieio-oref called on a class:
ede-generic-target-c-cpp. In Emacs 24, cedet/cedet-build.el cedet-build
gives an error: byte-code: Symbol's function definition is void:
eieio-make-class-predicate.

So in the following comments, I'm using SourceForge CEDET, compiled and
loaded in Emacs 25 (attempting to ignore the errors). But the comments
about `require' come from trying to use the bundled CEDET.

- Top node second paragraph

  Using EDE is _not_ as simple as
  '(ede-minor-mode 1)'; it also needs (require 'ede).

  Perhaps should add ;;;###autoload to ede-minor-mode? and
  global-ede-minor-mode.

- 1.1 What is a project

    suggest: "a project consists of a directory hierarchy, a set of meta
    data, command features, and a set of targets.

    This section does not mention cross-reference or find-identifier
    tools, but later it says some are supported (Gnu GLOBAL, for
    example). So that should be mentioned here.

- 2 Quick Start - wrapper

    also need (require 'ede) in ~/.emacs

    and if need emacs project type; (require 'ede/emacs)
        same for other project types? not tested with bundled CEDET
        possibly add ;;;###autoload to ede-emacs-load


    Android project worked (detector has autoload)

    For Arduino projects on Windows, need:

    (setq ede-arduino-preferences-file
      (expand-file-name (substitute-in-file-name "$APPDATA/Arduino15/preferences.txt")))

    I'm not sure where the "15" comes from; I'm using Arduino 1.6.4.
    
    In addition, there's a problem with the Arduino auto-detect on
    Windows; the sketchbook directory has \ in preferences.txt, but it
    is compared to buffer-file-name, which has /. So ede/auto.el
    ede-do-dirmatch needs an 'expand-file-name' in (setq matchstring
    ...). I didn't actually edit the code and test, because I'm not sure
    that change is ok in general.

    The list of Wrapper Projects is longer here than in the Wrapper
    Projects section; I guess there is more manual to be written.


    It would be good if there were a menu item that displayed a list of
    the project types currently auto-detected. That is simple to extract
    from ede-project-class-files.

    Then this section can say:

    "To see the list of supported generic projects, invoke the menu
    Development | Project Options | Show auto-detects"

    I don't have examples of all of the project types listed, so I
    couldn't test all of them.

- 7 quick-start - from scratch

    I didn't do any of the steps, but this looks quite thorough and
    readable.

- 8 Managed Projects

    This section needs an intro; what is a "managed project", and why
    would I choose this over the other options? How is this different
    from section 7?

    I think this section is about adding an EDE project to an existing
    source tree that does not match one of the wrapper patterns.

    ede-new prompts for a "Name: "; the info file should say how it will
    be used.

    It then adds the project directory to the custom variable
    ede-project-directories; the info section should say that.

    I tried to do these steps.

    ede-new worked

    when I tried to do ede-new-target, there was no Project Options
    submenu. M-x ede-new-target worked.

    add file: there is a Development | Target Options | Add File menu
    entry, but it complained "wrong file type"; apparently you can't mix
    file extensions? On the other hand, I have no idea what file type it
    was expecting; that should be in the error message.

    (I'll just keep writting my Makefiles by hand :).

    When I restarted Emacs (I had some edebug stuff that just broke),
    the new project was not automatically recognized. I think I know
    why, but the info did not say anything about that. So I tried
    Development | Load Project, and Emacs crashed.

    More later, after I debug that crash.

- 10 Misc

    ede-find-file does not do completion on the file name. I looked at
    the code; it looks complicated, because of the locate objects. Emacs
    has very nice file name completion now, so it would be good to
    improve this. The Emacs filename completion takes a flat list of
    directories (like load-path or compilation-search-path), so we'd
    have to construct that out of all the locate objects. I'll look into
    it more.

11 - not read, since it says it needs work. But I'll get back to it later


Thanks for your work on this!

--
-- Stephe

------------------------------------------------------------------------------