>>> Jan Moringen <jan.moringen@...> seems to think that:
>> >I finally worked everything out with my employer and the FSF.
>> >Attached is a reworked version of my original patch, which I would like
>> >to contribute. I also attached my templates for C++ mode to provide
>> >suggestions of how the added dictionary entries can be used.
>> [ ... ]
>> Your updated C++ support looks good, and solves some problems I knew
>> You had alluded to working on some SRecode based project. In case
>> they overlap, you should know that I have some SRecode projects on my
>> short todo list. If you'd like to take one over, feel free. They
>The project I mentioned is a srecode application that generates
>implementation stubs for specified interfaces by traversing the
>hierarchy of base classes and collecting abstract method tags. Then it
>emits a class with appropriate parents and method stubs.
There is some code in the smart-completion engine that does such a
search, but filters instead on access conditions (public/private,
etc). Hopefully there is something you can reuse there.
>I did some tests with C++ and think the concept could be useful. It does
>not currently deal with aspects like separation of prototypes and
>implementations in different files.
>> 1) Finish implementing "implement member functions" for C++. Thus, if
>> you have a class, push a button to generate the code for any
>> unimplemented methods. I got partway through, but haven't had time to
>> finish it.
>As I understand it, this goes pretty much in the same direction, the
>difference being that it would need to generate stubs for missing
>members instead of abstract members.
This does sound mostly the same, and also worthwhile.
There is probably a first-pass at this which would be "tell me what I
need to do to this class still". These search criteria would then
list all the unimplemented prototypes, and abstract methods that need
to be dealt with, plus guesses as to where the new code may want to be
inserted. This is also the hard part. Once you know all that,
inserting the new code with the templates is easy. :)
>> 2) Port my ancient "cparse" header file maintainer program. Basically
>> push a button in a c++ file, and it will update the header file w/ the
>> prototype. Perhaps less "port", and more "recycle the idea".
>I will have a look at cparse.
Hmm. cparse is an old scary bit of code. I've been incorporating all
my old ideas cparse into CEDET for years. Semantic is the "parse"
replacement of cparse. EDE knows how to match up sources to header
files. Srecode knows how to generate code from templates.
srecode-document creates nice comments. The only missing bit is the
command that links all the pieces together. So I guess all that is
left is a command that matches the current tag to a prototype
location, and updates it.
>> 3) Generated code out of COGRE for any support language.
>This sounds very interesting. Code generation from UML is a nice thing
>to have. Especially in combination with a powerful template system like
>srecode. However, to be useful, this would require more editing
>possibilities (add/remove members, set type, add/remove parameters) in
>the UML part of COGRE, right?
Indeed, that is the case. I stopped updated COGRE's UI when I
realized I needed a better template insertion system than the hacks I
had with tempo. It also needed better Semantic support. Those issues
are mostly solved now though.
I've had a C++ / Semanticdb project on my todo list for a long time. I
always wanted to develop it from the ground-up using EDE and COGRE
code generation in an effort to perfect the usability of the tools.
I'll get to it someday.
>> 4) Add base templates for more languages so
>> "srecode-semantic-insert-tag" works.
>> 5) Get EDE to use SRecode in more of it's Makefile generation.
>I will certainly have a look at some of these projects. Is there a
>special place for experimental or work-in-progress code?
[ ... ]
Not really. I try stuff outside of CVS, and only check in the first
draft when I'm mostly happy with the direction it may be going.
We can work something out in CVS if there is need for collaboration of
anything more than 1 or 2 files.
Also, were you intending to check in your patches from earlier? I've
been perfecting the dist/build process for the last few weeks and hope
to wrap that up soon and make a distribution.
Eric Ludlam: eric@...
Siege: http://www.siege-engine.com Emacs: http://cedet.sourceforge.net