Code::Blocks July Month Update Summary

After another month long development of Code::Blocks (C::B) by the C::B Dev Team (including me), we made the following modification / improvements. Apart from adding couple of newer features we’ve fixed a number of annoying bugs, improved the stability and usability of it.

The following changelog is based on SVN Commit History of July 2007. Please note that this is not a Release Announcement and the changelog contains the commit made by entire C::B Dev Team in July 2007.

BTW, C::B has not won the SourceForge.net 2007 Community Choice Award as a Best Tool or Utility for Developers. I would like to thank you all on behalf of C::B team for supporting & voting us and putting us in the final list.

Summary

  • Added support for additional resource files to be added in resource package. This means now plugins can freely install extra icons and other resource files to the share folder of C::B.
  • Added support for version detection of compilers during runtime. This is currently used for GCC (MinGW) compiler. This adds the possibility to detect a compiler version and appropriately turn off incompatible/deprecated compiler options between versions.
  • Code-completion got a number of updates. It’s parser received some long-demanded updates and fixes.
  • Added support for Tooltips of variable, objects in the editor.
  • Project import code has been moved from SDK to a new plugin “Projects Importer”.
  • Added support for Remote Debugging.

Detailed changelog is as follows.

Core
* Create locale subfolder at startup, turn off wxWidgets message
* Removed unneeded global variables
* Binary .cbplugin files can now contain icons for the “Settings” dialogs. The two supported icon files should be named <plugin_name>.png and <plugin_name>-off.png.
* Updated all settings dialogs to locate icons through configmanager.
* If a settings icon for a plugin cannot be located, the generic-plugin icon will be used.
* Fix in annoying dialog: do not use wxStdDialogButtonSizer if using custom button IDs (they are not accepted and the dialog layout is screwed).
* Plugins manifest XML expanded to allow for extra files being installed/exported/uninstalled.
* Fixed crash in symbols browser under certain circumstances (bug #11433).
* Exposed to scripts CompileTargetBase::SetTargetFilenameGenerationPolicy (bug #11019).
* Display replace-operation summary (bug #11472, patch #2083).
* Exposed _() to scripts for translated strings (bug #10297, patch #2020).
* Fixed bug with “pause when execution ends” target checkbox (bug #11235).
* Added “File->Save all” which saves everything: files, projects and workspace (patch #2044).
* Open Files List items – read-only file icon added
* Find, Find Next/Previous results shown centered on screen
* Respect projects modification flag when closing workspace and ask to save modified projects.
* Dynamic linker’s path is now set correctly again for executing.
* Added EscapeSpaces() global function and exposed it to scripts along with a few other functions from globals.h.
* Updated debugger plugin to correctly set the dynamic linker’s path.
* Fixed running console-based programs in windows.
* Removed all wxLogNull, disabled log messages globally
* Added a null pointer check (probably unneeded)
* The “Save all” button on the toolbar is now “Save all files” to avoid problems with accidental clicking (“Save all” is an irreversible action).
* Updated sdk doxygen file to latest doxygen revision
* Fixed bug under wx26 that path for wizards was calculated wrong (without drive letter)
* Implemented: [FR #3524] “Remove all breakpoints” option
* Changed the SDK events handling system (see http://wiki.codeblocks.org/index.php?title=Code::Blocks_SDK_events).
* While I was at it, I implemented sending the cbEVT_APP_START_SHUTDOWN event.
* Fixed: plugin installation wouldn’t create directories on windows (thanks dje).
* Fixed crash when using “Close” or “Close all” in open files list context menu (bug #11508).
* Backticked expressions in build options are now parsed for compiler/linker search dirs. Code-completion benefits greatly from this (locating files to parse, opening #include files, etc).
* The CC DebugInfo dialog now displays the parser’s search dirs too.
* Fixed: [Bug #11548] “Recent projects” tries to open already open project
* Added the following SDK functions. Use them for compiler version detection.
- Compiler::SetVersionString()
- Compiler::GetVersionString()
* Debian dir updated to create the following packages:
- libcodeblocks0 (codeblocks shared lib)
- codeblocks (main app and core plugins)
- codeblocks-contrib (contrib plugins)
- codeblocks-dbg (debugging symbols)
- codeblocks-devel (SDK headers)
- libwxsmithlib0 (wxSmith shared lib)
- libwxsmithlib0-devel (wxSmith development shared lib)
* Added rudimentary man pages for cb_share_config and codesnippets.
* Resource zip-files are now automatically generated when their dependencies change (no more need for “make clean-zipfiles”).
* update-revision.sh now updates debian/changelog too so generated packages will contain correct version info.
* Renamed -devel debian packages to -dev
* Bug-fix in CompilerMINGW::SetVersionString.
* Applied patch #2040 to fix Home key bug (#11234)
* Fixed bug #11574 (comment code doesn’t work on PHP files)
* Sorted items in “search internet” popup correctly (nobody ever noticed?)
* Fixed: Crash while compiling a single file with OpenWatcom compiler.
* Fixed: [Bug #11599] Saving a file crashes in a special case
* Applied:
- [Patch #2066] updates to python lexer
- [Patch #2091] Documention only fix on file propgrid/CHANGES-propgrid.txt
* Applied: [Patch #2067] ‘Highlight mode’ reflects current syntax highlighting
* Fixed: Compilation error (related to wxCharBuffer::==) in certain build configurations.
* Incremental search dialog now supports the * and ? wildcards (patch #2046).
* Switched to wxFlatNotebook 2.2 + 1 little change
* Fixed “debugger won’t start” bug introduced yesterday.
* Event cbEVT_COMPILER_STARTED is now emitted.
* applied [ Patch #2105 ] Fix ugly 22×22 searchreplace.png
* Stopped Update.bat from copying Makefile.am to few directories.
* Fixed: Clicking “Properties” option from Notebook menu doesn’t show proper file properties if it’s part of a project.
* Added SDK events for build targets:
- cbEVT_BUILDTARGET_ADDED
- cbEVT_BUILDTARGET_REMOVED
- cbEVT_BUILDTARGET_RENAMED
- cbEVT_BUILDTARGET_SELECTED
* Added Get/SetBuildTargetName() and Get/SetOldBuildTargetName() in CodeBlocksEvent, for the new events (the latter two functions only apply for cbEVT_BUILDTARGET_RENAMED and cbEVT_BUILDTARGET_SELECTED events).
* The <Extensions> node (in .cbp files) is now preserved through project saves, even if the plugins using it are disabled/uninstalled. All relevant code in our repository has been updated.
* Fixed: [Bug #11656] windows plugin wizard defaults to linking to wxmsw26u

Plugins:

AStyle
* Updated to AStyle 1.21, applying changes provided by Jim Pattee.

Code-Completion
* Bug fix in CC tokenizer.
* CC parser now supports “typedef [class|struct] {…} id” constructs.
* Fixed [bug #11533] (class browser crash on windows)
* Fixed [bug #11460] “Switching to current file’s symbols delays class browser for ~ 4 secs”
* CC parser now supports “typedef enum {…} id” constructs.
* Fixed 2-second freeze every time a file was saved (winxp)
* Bug-fix in CC tokenizer.
* When hovering the mouse over a word in the editor, a tooltip is displayed describing the token under the mouse (relevant option added in CC settings so it can be disabled/enabled at will).
* Fixed minor issues with CC tooltips.
* Fixed code-completion not launching for empty search strings (bug #11630).
* Fixed code-completion handling of preprocessor directives in class definitions (bug #11626).
* Bug fix in tokenizer wrt << operator.

CodeSnippets
* Get temp directory name from system; don’t assume /temp or /tmp.
* Invoke properties dialog on “new snippet”
* Do not copy removed snippet to .trash when shift key down
* Fixed missing window when switching layouts
* Auto show window when switching between window types
* Don’t save snippets xml when no changes made in order to avoid file time change and annoying reload msg in secondary CB.

Compiler
* Use more comfortable way to choose extra toolchain path’s (this also allows the use of GCV’s and improves consitency)
* Now deprecated compiler option, ‘-I-’, wouldn’t be used for GCC 4.x series. Fixed(Partially): [Bug #10624] gcc: faulty/deprecated/ default options
* Some code-cleanup and improvements in OpenWatcom option generation code.
* Added experimental support of creating Linux executables on Windows using OpenWatcom. Please note that an additional **Library directory** has to be added manually.
* Updated: Regex in CompilerMINGW::SetVersionString() to a foolproof one.
* Fixed: Couple of issues with DMD compiler.
* Applied: [Patch #2015] To create a lib using lib.exe in DMD tools??
* Fixed: Run-time error message in CompilerMINGW::SetVersionString() when gcc binary is not found.
* On Windows the search in PATH environment variable, in CompilerGCC::SetEnvironmentForCompiler(), would now be case-insensitive. This would help avoid adding duplicate entries in PATH.
* Update -mmcu options for GNUAVR (patch #2071).
* If getting the timestamp for a file fails check its existence to decide if it should be built or just ignored.
* Fixed: [Bug #11600] compiler plugin works only with admin rights

Debugger
* Fixed display of watches for CDB (MSVC executables).
* Fixed: Layout issues in DataBreakpointDlg.
* Added preliminary support for remote debugging with gdb (only). Check the “Debugger” page in project’s properties…
* Clean-up in remote debugging code.
* Added baud setting for remote debugging through the serial port.
* Fixed deadlock while debugger was waiting for compiler to finish (at least in linux).
* Starting the debugger should work correctly again in all cases.
* Per-target extra debugger commands are now sent after connection to remote target (if any).
* Debugger no longer tries to launch 2 times if the first try failed.

Envvars
* Fixed “envvars not unset on project close” bug (thanks Yiannis)
* Added “nicer” image for config icon
* Added possibility to clone an envvar set
* GUI enhancement for Linux, code cleanup

KeyBinder
* Check for numeric menu items that start with “_” wxGTK 2.8.4
* Fixed disappearing/reappearing command keys on wxGTK 2.8.4 by trimming all menu items and conf strings before comparing.

Projects Importer
* Added: Support for $(PlatformName) macro in MSVC 7+ project file import.
* Some code cleanup.

Scripted Wizard
* wxWidgets wizard:
- Default wxwidgets configurations will now be added at project level.
* Win32GUI Wizard:
- Added support for Dialog based app creation. (Thanks Skirby for the sample code)
* Updated: DLL and Win32 GUI wizard to latest changes in OpenWatcom compiler support.

Share-config
* Implemented “uncheck all”; made dlg resizable
* Added support for editor colour_sets

Source Exporter
* Bugfix: Wrong output of tabs in ODT.
* Tabs are now converted to spaces using the current editor settings (tab size in spaces) in the PDF exporter.

To-Do
* ToDo plugin now uses the correct image in the settings dialog.

wxSmith
* Big update to wxsDrawingWindow class
- It uses wxClientDC instead of wxScreenDC (which is not supported on MAC now)
- Removed internal “drawing panel” – everything is done on wxsDrawingWindow now (event flow is much better now)
- Got rid of all Yields during fetch sequence (may improve stability)
- First results on MAC (still there’s much to be done but at least there’s some starting point)
* Fixed wx2.6 issues in wxToolbar
* Increase readability of generated code

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">