Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development
Doxygen plugin
Cryogen:
--- Quote from: Cryogen on February 26, 2010, 08:22:21 pm ---
--- Quote ---To use C::B on Karmic, you have to either remove all wxwidgets 2.8.10 packages shipped with ubuntu and use the ones from apt.wxwidgets.org (in this case you can use my repo), or remove all packages from apt.wxwidgets.org and use the packages shipped with Karmic.
--- End quote ---
Yes, I did that. Something may have been out of place so I'll give it another go and report progress.
--- End quote ---
OK, I spent several more hours going through this. I had some things set up wrong. I rebuilt wx as a monolithic lib and downloaded the latest SVN, 6182, and built it manually via make, make install, etc. It now runs BUT, the plug-in doesn't. I built the plug-in from within the contrib dir. It won't install and suggests that this happens when a plug-in is built for a different version of the sdk. No, I don't think so. I guess that this might be because it wants to run with a version that is running in the same src tree, although I can't see why. So, I run C::B and then build it with C::B to generate src/devel/... I then run "update" to generate src/ouput/... and the run scripts, etc. However, when I try to run either the debug or release versions that I built, they stop at:
--- Code: ---gary@ubuntu:~/Projects/CodeBlocks/src/output$ ./run.sh
Initialize EditColourSet .....
Initialize EditColourSet: done.
Loading toolbar...
DoxyBlocks: loaded
AutoVersioning: loaded
BYOGames: loaded
cbDragScroll: loaded
DoxyBlocks plugin activated
AutoVersioning plugin activated
BYO Games plugin activated
DragScroll plugin activated
Initializing plugins...
--- End code ---
The same thing happens if DoxyBlocks isn't present so it seems to be something other than my plug-in, which is a nice change at least, but what? They should all be using the same wx libraries so I can't see where the difference could be. I'm frankly stumped as to how one is supposed to get to the stage where this can work. How can I have my dev. installation in parallel with the make-generated and -installed version? Is that even how things should be? The build doc is unclear and documentation in general is scarce. I've spent hours in the forums and elsewhere and still can't make a simple plug-in run here. I have everything working well on Windows, so I have a good idea of what's required but this is just driving me nuts.
Now I'm going to have a bitch. While I greatly appreciate the work that goes into it and accept that I'm no guru on Ubuntu, ain't no-one going to to persist as long as I have to try and get this thing to work. It needs to be sorted out, and quickly, so that the average joe that comes along and wants to build it can do so. Otherwise we're all wasting our time, aren't we? Someone who can deal with these problems needs to provide some canonical methodology to get it to work. For everyone. Ubuntu is the most popular distribution around so we have to have it working smoothly there or we're going to lose a lot of users to the myriad other options that are available these days. And what's going to happen if I want to upgrade to Lucid? There's no sense in trying to use a cross-platform system if the IDE you need to run to do so won't run as required across platforms. I'm happy to be part of the solution but can someone who knows what required PLEASE supply some detailed steps to allow me to run my own plug-in in my own build of C::B before I go insane? Having done all of the legwork just to get it to build and run anything I build should just run and this should be trivial, really, but it's not.
My failing sanity thanks you in advance.
I'm off to therapy. Back soon. :shock:
Cryogen:
Hi Guys,
I'm back from therapy, now. 8)
I have uploaded version 0.3.287.
-Fixed: DOT_PATH was written twice due to some extraneous code.
-Added: New menu which mirrors toolbar functionality.
-Added: Context-sensitive menu.
-Added: Translation catalogue.
-Cleaned: Some general code tidying.
-Added: Resource file and Windows version info.
There is now a linux .cbplugin for you to try. As you have probably gathered by now, I can't run it on Linux. If you can please let me know.
Gary.
Cryogen:
Hi Guys,
Released version 0.5.457 of DoxyBlocks
Change log:
-Added: BusyInfo when running doxygen.
-Added: Ability to run HTML after compilation.
-Added: Ability to run HTML in the internal viewer.
-Updated: Header blocks for all files.
-Added: Now parses the selected line when inserting block comments and pre-fills the \param and \return values.
-Added: Option to use "@" in comments rather than "\".
Cheers.
Cryogen:
Hi Morten,
--- Quote ---Hence I have some suggestions to make:
1.) It was hard to me to find out how I actually use this. Until I found the toolbar which gives access to the functions. An extra "doxygen" menu would be fine.
--- End quote ---
This is now done.
--- Quote ---2.) In addition some of the options should go into the editors context menu, too (like "add doxygen comment at current editor position) for convenience.
--- End quote ---
As is this.
--- Quote ---3.) The "DOT_PATH" is written twice if you setup the DOT executable. You just need to remove the additional line:
--- End quote ---
Fixed.
--- Quote ---4.) Having the possibility to view the HTML file in the internal HTML viewer of C::B would be really convenient, too. You can have a look how it's done in the build log.
--- End quote ---
This is now implemented. The internal viewer isn't capable enough to show all of the features that doxygen provides. The file list frame doesn't work, some links don't work, presumably for lack of JavaScript, and it doesn't support CSS, however I think it does enough to allow a reasonable preview of the compiled docs and avoid running a full browser, or just for a quick preview.
--- Quote ---6.) The setup dialog is quite huge and although I personally don't really care I think users with small screen resolutions will complain sooner or later.
--- End quote ---
I spent some time reworking things to bring it back to the size that exists when DoxyBlocks isn't installed.
--- Quote ---Hehe... I'll give you one more: When choosing to add a doxygen comment at the current cursor position you could parse the following code for a function signature and pre-process the lines added accordingly.
--- End quote ---
This is done, too. I spent quite some time researching the possibilities and looking at regexes. It seems that there is no way to reliably parse every possible code signature that might exist in C\C++ code. So far, I have done enough to allow it to scan the selected line when entering a block comment and pre-fill the params and return value. It makes some decisions regarding what to insert, based on what it finds. It is aware of enum, typedef, struct, class and functions with and without return values and with and without a class name prefix. It is, however, not yet coping with more than one return value keyword, such as "static char", or functions with parameters on separate lines, and there are other limitations. It seems to work fairly reliably with the standard range of function signatures. More can be done, in time, but this gives us a good starting platform. If it can't identify a particular signature it provides a default comment block. I will do some more wrestling with the regexes some time soon.
I will probably look at automating it across entire files. I'm not confident that it will work well enough, yet, or ever, to parse a whole document without making significant errors. A run that creates a lot of incorrect comment blocks would be worse, I think, than having to enter them separately. I intentionally haven't provided a means to enter a \brief entry by inserting something trivial such as the class or function name. I've seen other similar plugins that do this but, frankly, I find that meaningless. You would be much better off simply enabling EXTRACT_ALL and letting it pull out something meaningful rather than inserting text such as "myfunction" as the brief description for a function called "myfunction". Doing that just duplicates what already exists and describes nothing. The description should be just that, or left blank, I think. Anyway, we'll see what transpires.
Thanks for the input, I hope you like the results.
Cheers.
Cryogen:
Hi,
I have uploaded V0.7.636 to the SVN repository.
Change log:
-Added: Added the ability to use the AutoVersion plug-in's version string as doxygen's project number value.
-Fixed: The function parser was creating comments with the parameter type and name in the wrong order.
-Fixed: Bug in regex pattern matching that allowed multiple matches.
-Added: Inserted comments blocks are now indented to match the code that they're commenting.
Cheers.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version