Code::Blocks Changelog

What's new in Code::Blocks 20.03 Build Apr 3 2020

Jun 2, 2022
  • General UI/SDK changes:
  • UI: Add information about the wxWidgets library being used in Help -> About dialog
  • UI: Fix two asserts for incorrect use of wxALIGN_LEFT when opening the Project -> Properties dialog
  • wx3: Fix assertion when removing last virtual target (ticket #892)
  • UI: Add logging of execution time to various places in the code
  • UI: Add compiler ID to Help -> About dialog (ticket #870)
  • UI: Make Plugin manager to have resizeable plugin info control
  • UI: Fix Toolbars corruption when saving perspective (ticket #846)
  • Fix crash with batch build on linux by moving the build process out of OnInit() when using wx>=30
  • UI: Improve child window placement. Introduce 3 options: center-on-parent (default), center-on-display and leave to OS/ Window manager.
  • UI: Make sure pressing escape works correctly in the Reorder targets dialog
  • UI: Fix the parents of various child dialogs in the Build -> Properties
  • UI: Make sure we call PlaceWindow for the dialog for selecting platform for targets
  • UI: Make sure the correct parent is set when showing the project dependencies dialog
  • UI: Fix possible assert when the language selection is invalid
  • UI: Make data paths more resilient to changes to the current directory
  • UI: Make pressing Escape in scope “Code Refactoring” dialog to close it
  • UI: Adjust borders for the Find/Replace dialog
  • UI: Fix corruption of toolbars when saving perspective (ticket #846)
  • UI: Fix assert that a bitmap is already selected in a DC on Windows
  • UI: Fix crash if the list in Settings->Scripting is empty (ticket 842)
  • UI: Show only one message box if a project could not be loaded while loading a workspace (ticket #809)
  • scintilla-wx: Remove double buffering for wxGTK (it doesn’t fix the flickering problem)
  • UI: Select the correct language in the menu shown from the language button in the status bar
  • scintilla-wx: Cherry-pick changes from wx-master (Better support for passing images from wx to scintilla)
  • UI: Some places in the code were trying to load images from file system and not from resources.zip (ticket #826)
  • UI: Replace the wxComboBox with wxChoice in Project->Properties->Build targets->Type
  • UI: Make the layout of Environment Settings -> View a bit more compact
  • UI: Replace the radio buttons for images sizes in Env Settings -> View with wxChoice controls
  • UI: Use better looking icon for the “Select text” button in the Incremental search toolbar
  • UI: Fix layout issue in the environment settings dialog
  • UI: Print config file path as the first line in the list ctrl for the main log
  • UI: Fit toolbars on every load
  • UI: Make MainFrame::DoFixToolbarsLayout to really work when toolbar size changes
  • UI: Make it possible to assign a keyboard shortcut to Build -> Select target -> Select target…
  • sdk: Fix memory leak when showing the “choose compiler” dialog, because the current compiler is not available
  • UI: Log the info message to the main log
  • UI: Avoid crash or assert when application is closed via OS’s TaskBar
  • UI: Fix a warning emitted by wxWidgets about incorrect use of wxALIGN_CENTER_HORIZONTAL in the EditPath dialog
  • UI: Treat editor and project files as modified when altered outside of Code::Blocks and not reloaded (ticket #492)
  • wx30: Do no call LoadResource for plugins which don’t have xrc files in their zip archives
  • wx30: Fix assert that all images added to an image list must have the same size
  • batch build: Fix segmentation fault after batch build (ticket #738)
  • UI: Fix crash in GotoFile::BuildContent(74)
  • SDK: Fix memory leak when loading new workspace
  • UI: Fix a memory leak of Page objects on application shutdown
  • UI: Fixes to the auto-sizing feature of the GotoFile dialog (see r11468)
  • UI: Make the Goto File window to resize itself when the content of the list ctrl doesn’t fit
  • UI: Make opening containing folder work when the path contains whitespace (ticket #734)
  • wx3-stl: Make almost everything (wxSmith doens’t) to build with wxWidgets in STL mode
  • sdk: Remove duplicated calls to AddBuildTarget for generated files
  • sdk: Make sure we don’t add the same file twice if it is stored with different relative path in the project file
  • sdk: Make CompilerFactory::GetCompiler using an id faster
  • sdk: Small optimization in cbProject::addFile (don’t call wxFileName::GetExt multiple times)
  • sdk: Small optimizations in MacrosManager
  • sdk: Don’t save empty extension tags in the project file
  • sdk: Sort extensions just before saving the project
  • sdk: Add $PLATFORM macro that expands to “msw” on windows and “unix” on linux and mac
  • sdk: Path delimiters in the .cbp file aren’t Unix-normalized when saving project on Windows (ticket #705)
  • UI: Print a message in the log when the application is ended because another instance is detected
  • UI: Fix a crash/assert on shutdown when the CallAfter is executed after the managers have been shutdown
  • UI: Print an error in the log if opening a file fails
  • UI: Make sure passing –file=path/to/file.ext without line number works, too
  • ProjectManagerUI: Implement both external and internal wxTreeCtrl Drag and Drop for the project manager tree
  • ProjectManagerUI: Temporary disable external drag and drop from project manager wxTreeCntrl. External and Internal drag and drop are incompatible.
  • UI: Remove double dollar signs (ticket #653)
  • wx30: Fix de-serializing wxStrings when doing DDE
  • UI: Prevent the splash screen from staying on top from the compiler selector dialog
  • Fix possible null pointer dereference in plugins management (ticket #673)
  • UI: Set the focus to the OK button in the Multi Select dialog (used when adding files to a project)
  • UI: Make sure that the file path control in the EditPath is larger, so longer paths could be reviewed
  • UI: DefaultMimeHandler: Set min size for the selection dialog
  • UI: Fix crash when reloading multiple projects in a workspace and they have dependencies
  • wx3-gtk3: Fix crash when doing Control-A, Control-V (ticket #629)
  • UI: Make sure the current project is always visible in the project tree while moving it up/down (ticket #617)
  • UI: Show the scintilla version in about dialog
  • wx30: Fix editor redraw problems on Windows (workaround, related to status bar)
  • UI: Make return to select the filtered option in the Goto File, Goto Function and Select Target dialogs on Windows
  • HiDPI improvements:
  • Log the actual scaling factor (makes sense for gtk2/3)
  • Add new versions of the select-target images
  • Update 16x16 in src/resources to look like their bigger versions
  • Update images for ThreadSearch
  • Use the new updated tree icons
  • Add missing rc-file* images to the main resources
  • New 16x16 images for infopane and help plugin
  • Make the abbreviation plugin HiDPI aware
  • Create a missing icon in the toolbar if the requested icon couldn’t be loaded
  • Make the SpellChecker icons in the status bar to be HiDPI aware
  • Use toolbar art providers for main, compiler and debugger toolbars
  • Move select_target.png to sdk/resources
  • Make it possible to use the cbArtProvider with toolbars
  • Make button images (zoom in/out) in the help plugin panel to be HiDPI aware
  • Apply scale factor to the toolbar size
  • Make icons in various dialogs to be HiDPI aware
  • Fix browse buttons in Project -> Properties to look good on HiDPI monitors
  • Make the icons for the buttons in IncrementSearch to be HiDPI aware
  • Make the icon in scope “Code Refactoring” dialog to be HiDPI aware
  • Add support for bitmap buttons to the cbArtProvider
  • Fix scaling of menu images created with the cbArtProvider on macOS
  • help plugin: Fix bigger icons in the Help menu on Windows
  • IncrementalSearch: Fix the menu icon to use the menu size and scaling (HiDPI aware)
  • DoxyBlocks: Make the Module menu images to be HiDPI aware
  • Make the readonly icon used in editor’s notebook to be HiDPI aware
  • Try to make Notebook icons in ‘Logs and Others’ look non-blurry on GTK3+GDK_SCALE=2
  • Make all loggers in ‘Log & Others’ to provide HiDPI aware icons
  • Make the OpenFilesList plugin HiDPI aware
  • Better support for creating the image list on GTK3 when scaling factor is 2
  • Modify cbProjectTreeImages::MakeImageList to add a red image in the generate image list when a file fails to load
  • Make the tree images in project tree and file manager trees to be HiDPI aware
  • Use the scaling factor detection to select the image size for menu images
  • Fix debug log message about ClientToScreen failures coming from the call to wxDisplay::GetFromWindow
  • Update icons from the cb-icons repo (compiler and incremental search pluigns)
  • Move images to codecompletion.zip instead storing them on the file system and fix all build systems
  • Implement sizeable images in the auto completion list produced by the CC plugin
  • Remove wrong warning message in the log from the cbArtProvider
  • Fix the icon size in Breakpoints dialog on HiDPI windows builds
  • Make the list images in Breakpoints dialog to look good on scaled GTK+3 build (scaling factor 2 or more)
  • Make images in the Build menu (compiler plugin) to be DPI aware
  • Make the IncrementalSearch menu image to be DPI aware
  • Make the DoxyBlocks menu images to be DPI aware
  • Make the images in the debugger menu to be DPI aware
  • Make all images defined in main_menu.xrc to be DPI aware
  • Add additional image sizes which would be used for the main menu
  • Make the icons in the Breakpoints dialog to be DPI aware
  • Remove toolbar images with size 22x22
  • Print the resource id of the toolbar when there are problems loading a bitmap
  • Add 20x20, 24x24, 28x28, 40x40, 48x48, 56x56 and 64x64 for contrib plugins
  • Add 20x20, 24x24, 28x28, 40x40, 48x48, 56x56 and 64x64 for core stuff
  • Add more options for the sizes of the toolbar icons
  • Print log message when loading an image for a toolbar fails
  • Fix asserts in the wxBitmap c-tor when the image file cannot be found on this
  • Print a warning when changing the size of toolbar images
  • Make the wx31 builds to be system dpiAware
  • Fix missing image after the move of 22x22 images to a separate folder
  • Do not use scalingFactor on Windows
  • Add wrapper for wxWindow::GetContentScaleFactor to make it easier to use this call
  • Make toolbar images for DoxyBlocks work correctly when using GTK+3 on HiDPI (scale >= 2) monitor
  • Make toolbars on wx3.1 and GTK3 to almost look sharp
  • Print scaling factor for the main frame during startup
  • Do not call Realize toolbars for every disabled tool in a xrc file
  • Reenable the dpi aware flag on windows
  • Add 32x32 images for the rest of plugins which create toolbars
  • Make toolbars work on retina mac machines
  • Add the possibility to select toolbars which are 32x32 big
  • Add 32x32 images for main and debugger toolbars
  • Print warning message when a toolbar image requires resizing
  • Make the xrc wxToolbarAddon handler to be able to remap bitmap paths
  • SDK new/changed APIs:
  • sdk: Implement cbProject::operator= so it is possible to copy projects
  • sdk: Change the return type of cbWatch::GetDebugString (ABI break)
  • sdk: Remove cbWatchesDlg::UpdateWatches, because it is no longer used
  • sdk: Add cbEVT_DEBUGGER_CONTINUED event for debugger
  • UI: Try to place child windows always on a valid display (ticket #770)
  • sdk: Make cbAssert to send SIGINT instead of SIGTERM
  • SDK: Make cbResolveSymLinkedDirPath a bit more robust
  • sdk: Add function which could be used to get the rect of the monitor where a window is placed (extracted from PlaceWindow)
  • sdk: Add API for sorting menu items in the editor’s context menu (modify all plugins to use it)
  • UI: Use sorted container to provide a more stable iteration when building the module menu
  • UI: Use the setting for caret line to show it in the syntax highlight settings
  • Performance improvements:
  • UI: Minimize the time needed to open the file/replace dialog for the LLVM project
  • SDK: Call the virtual function GetTitle just once inside loops in cbProject::RemoveBuildTarget
  • Syntax Hightlight UI improvements:
  • UI: Make it possible to type in the syntax highlight preview
  • wx30: Fix assert introduced with rev 9667 (reading null color for syntax highlight)
  • Editor:
  • Try to fix flicker when moving the cursor with keyboard/mouse (ticket #890)
  • Disable middle-mouse button paste until user sets Settings -> Editor -> Other editor setting -> Enable marked text paste with middle mouse click (on Windows)
  • Fix non-latin keys to work in shortcuts in the editor on Linux
  • Add controls for selecting the technology and font quality
  • Auto-size marker margin column and switch to breakpoint image with the correct size
  • Make the width of the change bar to change with the zoom
  • Add an option which can be used to disable the save-to-temp-and-move operation we use by default
  • Add menu item ‘Copy full path’ in the editor tab context menu
  • Implement ‘Fold current block’ to work when the cursor is inside the block (ticket #700)
  • Fix the feature which restores editor folds when the project/editor is reloaded
  • Make it possible to set the white-space mode to “Only indent”
  • Enable pasting when there are multiple cursors and typing with them is enabled
  • Group all find related items together at the top of the context menu in the editor
  • Move the Code Refactoring -> Rename symbols menu item to the Insert submenu
  • Move Properties to the bottom of the editor’s context menu
  • Remove excessive separators from the editor’s context menu
  • Remove menu items from editor’s context menu which are duplicated in the editor’s tab
  • Move Copy/Cut/Paste from a submenu Edit to the main context menu of the editor
  • Add ‘Close to the left’ and ‘Close to the right’ menu items in the context menu for the editor’s notebook
  • Implement caret buffer in the editor (up to now we have it implemented in the EditorTweaks plugin). UI in the Settings -> Editor -> General -> Other editor settings
  • Do not mess the editor with brace selection completion when there are multiple cursors
  • Pass a theme object to editors created for new files (ticket #100)
  • Make the line for the current position during debugging to use the same colour as the caret line (ticket #659)
  • Lexers:
  • Add syntax highlighting for Nim (ticket #657)
  • Add WAVE keyword to Windows resource lexer (ticket #834)
  • Improve C/C++ lexer (ticket #741)
  • Add YAML lexer, make sure to always use spaces when editing YAML files
  • Add option to change the colour of the indentation guides for all lexers not only for the ObjC lexer
  • Add selection, active line, matching brace and no matching brace style options using code
  • Add lexer for plaintext files
  • Add lexer for Markdown (ticket #640)
  • Update doxygen keywords in the C/C++ lexer
  • Update keywords for the new Fortran standard (ticket #683)
  • Update GLSL lexer to v4.60 Standard (ticket #588)
  • Script bindings:
  • Bind SetLinkerExecutable and GetLinkerExecutable in CompileOptionsBase
  • Make it possible to examine and modify the Extension XML nodes in the project files
  • Save the old print function and restore it after executing the script in ScriptingManager::LoadBufferRedirectOutput (ticket #817)
  • Make it possible to use relative paths when including squirrel scripts (ticket #812)
  • Library updates:
  • Scintilla to 3.7.5; Sync wx files with the same files in wxWidgets' master
  • Exchndl crash handler to v0.9.1
  • Hunspell on Windows from v1.3.3 to v1.7.0
  • Astyle to v3.1
  • wxPDFDoc to v0.9.8 (used in SourceExporter plugin)
  • Astyle:
  • Finally make Mozilla-style/example work
  • Add new options, remove obsolete options
  • Code completion plugin:
  • Take the zoom of the current editor into account when deciding if to use a buffered auto completion list
  • Fixed annoying bug that the compiler calls fail due to missing dependencies (DLLs)
  • Fix parsing of function declaration which returns enum type (partial fix for ticket #127)
  • Fix parsing of enums whose underlying types are specified (in C++11) (ticket #176)
  • Fix parsing of when the result of function is cast to void (ticket #25)
  • Fix parsing of struct instances declared on same statement (ticket #762)
  • Fix parsing of multi-line #if defined() (ticket #761)
  • Fix parsing of ‘for’ loops with empty declaration block. Handle the case where the first token is a semicolon
  • Fix parsing of #defined macros (ticket #693)
  • Fix crash caused by accessing array with out of bound index.
  • Do not start system header thread if the list of directories is empty (ticket #780)
  • Improve the logic for starting/stopping system header threads
  • Fix crash when the project has files with invalid targets and the user tries to do header completion
  • Ignore attribute((whatever)) in typedef definition (ticket #759)
  • Support function declaration lists (ticket #724)
  • Handle comma as terminator for function declarations
  • Fix leaks of SystemHeadersThread objects when shutting down the application
  • Log how much time traversing a directory to find headers takes
  • Do not traverse root folders for drives
  • Use better method for detecting file system loops
  • Do not block the UI when showing the list of include completions while a thread is traversing
  • Fix assertion when clicking on “Find references of:” (ticket #633)
  • Compiler plugin:
  • Add an option to targets which allows the user to select the linker executable to be used for the target
  • Make the LinkerExecutableOption::AutoDetect work as advertised
  • Cleaned up obsolete interim C/C++ standards that are now properly supported by GCC (i.e. C++11/14/17; C17)
  • Print Build banner at command preBuild step, else they appear to belong to previous target
  • Fix assert about RecalcSizes (ticket #857)
  • Expand CodeBlocks variables for non-ttCommandsOnly targets also
  • Fix potential crash if the choice control is removed from the toolbar
  • Print a log message that we are modifying the dll search path before running an executable
  • Adjust the regexp for detecting the compiler version to support double digit numbers
  • Do not switch to the build log when the workspace is closed
  • Fix a crash introduced in r11465 (ticket #582)
  • Clear target specific variables from the MacroManager on every recalculation (ticket #582)
  • Remove duplicated compiler option
  • Clear logs when the workspace is closed (ticket #656)
  • Make sure the goto prev/next build error goes only on errors
  • Show the build message when the user requests goto prev/next error
  • Add support for -std=c++17 flag
  • Don’t show a log message when the wxKill command fails to kill children, because they’ve finished already
  • Hide process output when the process is stopped/killed
  • Fix double send of cbEVT_COMPILER_FINISHED when the executable is closed after run
  • Make the abort button work again (ticket #104). Kill the started process and all children instead of using wxSIGTERM
  • Debugger plugin:
  • Make sure we always store remote debugging project options sorted by target
  • Rework the plugin to not use ProjectLoaderHooks
  • Fix crash when trying to attach when there is no loaded project (ticket #879)
  • Fix regression when executing additional commands before
  • Make sure we don’t save empty serial baud attributes in the debugger extension
  • Improve UI of Debugger project options panel
  • Check additional shell commands when deciding if the remote settings for target/projects need to be saved
  • Rework the UI for the “Remote connection” tab in the project opions to look a bit more pleasant
  • Improve the IsPointerType to detect restrict and const volatile types as pointers correctly
  • sdk: Add another parameter to cbDebuggerPlugin::AddWatch to make it similar to AddMemoryRangeWatch
  • sdk: Make it possible to delay the update of memory range watches (possible massive breakage)
  • sdk: Add event which will be used to notify debug windows that data is ready
  • Initial implementation of Memory Range Watches
  • Set the plugin value of the event when sending EVT_DEBUGGER_UPDATED
  • Send CURSOR_CHANGED event when the debugger has stopped on a breakpoint/signal
  • Fix the disassembly view with newer GDBs
  • Make it possible to evaluate expression in wxSmith code blocks
  • Improvements for Fortran (ticket #717)
  • Put the recent entered command in the position 0 of the wxComboBox list.
  • Remove gdb_types.script because it is not longer used (the scripting support has been removed from the debugger)
  • Make sure to quit correctly when attaching to process fails
  • Make it possible to attach to a process using the command line (This commit adds –dbg-attach and –dbg-config command line options)
  • Prevent warning for invalid current directory when attaching to process
  • Make sure to set the SHELL variable before starting GDB
  • OccurrenceHighlighting plugin:
  • Update the permanent occurrence highlights when editor is split
  • Handle editor open events to highlight all words that match the set for permanent highlights
  • Make it possible to set the plugin to override the text colour
  • Scripting wizard:
  • Fix wxWidgets script on windows (ticket #676)
  • Print better message when the xrc file fails to load
  • Change extension for files added to Fortran projects to f90 (ticket #605)
  • Browse tracker plugin:
  • Create default.Browsetracker.ini from old Browsetracker.ini (only once) when personality == default
  • Fix deprecated wxFont usage in config panel
  • Honor Toolbar activation/deactivation from View/Toolbars; Change config toolbar setting to “Show Toolbar Always”
  • Fix crash in JumpTracker when the editor object is nullptr
  • Internationalize the configuration panel
  • Fix shutdown assert on linux when using wx3.x
  • Unregister hooks/sinks to prevent crashes when uninstalled
  • Code snippets plugin:
  • Let user know that attempt to edit file failed
  • Adds DnD to ProjectManagerUI, removes it from the plugin, and fixes asserts
  • Fix assert (ticket #631)
  • Drag scroll plugin:
  • Add user config option to reverse mouse wheel zoom
  • Fix right mouse click in project window. See http://forums.codeblocks.org/index.php/topic,22863.new.html
  • Don’t move cursor when using right mouse key (wx3.x)
  • Environment variables plugin:
  • Crash when closing Environment settings dialog (ticket #877)
  • Rework the plugin to not use ProjectLoaderHooks
  • Incorrect variables could be set or variables could be lost when using the configuration dialog (ticket #641)
  • File manager plugin:
  • Slow down caused by incorrect fix in rev 11463 (ticket #722)
  • Fix assert when clicking the ‘goto parent directory’ button beyond the root (ticket #713)
  • Fix wrong use of stl-containers (erasing invalidates iterators) (ticket #722)
  • Key binder plugin:
  • Fix warning for Ctrl-P being duplicated
  • Introduce version 2.0 using CodeLight key binding methods; allowing future ability to dynamically set menu and global accelerators to any frame
  • Sort cbKeybinder20.conf file and remove old (duplicate) bindings
  • Use correct file separator on Linux for .config/cbKeyBinder10.ini
  • If there is no .cbKeyBinder10.ini file try to load cbKeybinder10.ini
  • Add overridden menu accelerators to global table for Linux
  • Obtain correct config folder on linux (ticket 840)
  • Freeze config panel while updating
  • Avoid ‘Wheres the event handler gone’ asserts when modifying shortcuts
  • Fix F2, Shift-F2 and allow linux to handle any View menu check items (ticket #273)
  • Nassi-Shneiderman plugin:
  • Convert the toolbar images from xpm buffers defined in code to using pngs stored in a zip
  • Fix crashes during drag n drop of bricks
  • Use wxBRUSHSTYLE_ constants to get rid of depricated-warnings from wx31
  • Remove wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL for expanded item. Avoids assert from wxWidgets 3.1
  • Project options manipulator plugin:
  • Replace all options in one go (partial fix for ticket #868)
  • Report success after changing the compiler options (ticket #470)
  • Fix the UI layout of main dialog (ticket #607)
  • RndGen plugin:
  • Some code cleanup (ticket #736)
  • Add the plugin to the builds on linux/macos (ticket #728)
  • Better explanation of the purpose and usage of the plugin (ticket #648)
  • SpellChecker plugin:
  • Highlight error only if the cursor is away from the word. Simplify special character handling.
  • Fix wrong white space handling on windows by using the scintilla word finding functions
  • Speedup by moving code out of loop and advancing the position of the parser
  • Add Spanish flag images (ticket #881)
  • Make the popup menu to show when pressing the left button
  • Thread search plugin:
  • Use file filter mask for all search options, not only for search in directories
  • Fix overwriting of search mask on windows
  • Don’t prefix tilde to search word when doing Context menu -> Find occurrences of (ticket #742)
  • Prepare the plugin to support more than two resolutions of UI images
  • Make the images in plugin’s toolbar to work correctly on GTK+ 3 and scaling of 2x
  • Remove almost all places in the plugin which used the /environment/toolbar_size instead of GetImagePrefix
  • wxSmith plugin:
  • Fix use of an icon resources.zip
  • Add new style wxFLP_SMALL to wxFilePickerCtrl in wxWidgets 3.x (ticket #880)
  • Add new style wxFD_SHOW_HIDDEN to wxFileDialog in wxWidgets >= 3.1.3 (ticket #887)
  • Fix assertion because of missing default style for wxListView (ticket #884)
  • Add wxDIRP_SMALL flag for wxDirPickerCtrl (ticket #861)
  • Fix wrong grouping of radio boxes in the wxSmith settings dialog (ticket #875)
  • Fix image editor layout for wxWidgets >= 3.1.0 and rename dialog to image picker. (ticket #862)
  • Make wxParentProperty read only in wxsChart (ticket #853)
  • Limit field number in wxsStatusBar (ticket #847)
  • Better support for wxGLCanvas for wxWidgets 3.x (ticket #702)
  • Fix assert for adding windows to wxAUI manager (part of ticket #789)
  • Make the dialog for editing the items of wxChoice control to be resizable
  • Handle the default color in the color property class the same in both wxWidgets 3.x and wxWidgets 2.8 (ticket #815)
  • Fix “dangling” frames which prevent Code::Blocks’s process from exiting correctly
  • Fix wxImagePanel preview error if an empty image is used
  • Do not generate code if user specifies no image in wxImagePanel
  • Fix a crash caused by uninitialized wxPen in wxMathPlot control
  • Make the wxImagePanel control support a image filename
  • Change wx*_BORDER styles to the new wxBORDER_* which are used in wxWidgets 3.x
  • Fix assert when using the wxGridBagSizer (ticket #664)
  • Fix use-after-free error when moving a control in a sizer
  • Add Radio as possible wxAuiToolBarItem item kind (ticket #15)
  • Fix assert after inserting wxListCtrl (ticket #671)
  • Set sensible defaults for initial and increment properties in wxSpinCtrlDouble
  • Add wxSpinCtrlDouble supported only for wxWidgets 3.x builds (ticket #616)
  • Other plugins:
  • Astyle: Fix argument bug (ticket #698)
  • AutoSave: Add option to save log rotated backup files in a sub-folder (ticket #132)
  • ClassWizard: Remember file extensions for header and source files
  • CppCheck: Fix crash when the generated xml is missing
  • CScope: Add configuration dialog to select the cscope executable. Also add a link to the help page in the settings dialog.
  • EditorConfig: Rework the plugin to not use ProjectLoaderHooks
  • EditorConfig: Allow to use global editor settings for EOL (ticket #577)
  • EditorTweaks: Remove caret buffer code, because it was added to the core editor
  • Help: Fix bug in man2html (ticket #626)
  • IncrementalSearch: Try to have better/simpler history in the choice control (ticket #740)
  • IncrementalSearch: Make it possible to get focus by clicking (ticket 625)
  • MouseSap: Remove all direct GTK calls. Fix Shift-MiddleMouse key pasting to avoid overwriting Primary clipboard.
  • OpenFileList: Fix crash when disable/enable the plugin in the plugin manager dialog (ticket #774)
  • OpenFileList: Fix memory leak when unloading the plugin
  • ReopenEditor: Fix memory leaks
  • SmartIndent: Improve brace completion for Fortran (ticket #667)
  • ToDo plugin: Fix memory corruption due to splash screen (ticket #635)

New in Code::Blocks 17.12 Rev 11256 (Dec 30, 2017)

  • Code-completion:
  • Fix crash when showing the call tip
  • Fix doxygen spelling in the settings panel
  • Make the size of toolbar controls configurable in the settings
  • Fix an issue that Code Completion list got hidden after shown up
  • Fix assert on generate ctor implementation
  • Fix possible inconsistency caused by bad usage of cbAssert - the expression must not have side effects, because in some builds they might not be executed
  • Fix default colours for code call tips
  • Send proper events for 'Autoselect single match'
  • Automatically test for doxygen document.
  • Fix a bug that we have forget adding the doxygen documents for macro
  • Fix a endless loop crash bug when parsing C99 designated initializer
  • Fix ticket #278 and ticket #393
  • Fix ticket #351
  • Try to fix issue #14 for real this time (high memory consumption due to recursive symbolic links)
  • show an error to the user if expression could not be resolved
  • Fix a parsing std namespace bug.
  • Compiler:
  • Make it possible to utilize more than 16 CPU threads while building
  • Make Code::Blocks work better with current SDCC
  • Clean up the clang flags a bit and add the common sort options
  • Add -std=c++14 and -std=gnu++14 to the list of C++ only flags (format the file to be a bit more readable)
  • Try to improve the invalid compiler message we're printing
  • Add button to compiler toolbar to show the select target dialog
  • Improve clang log parsing (parse the file and line for notes)
  • Use the correct flag to the linker when building windows gui applications with clang
  • Fix the AVR GCC compiler on linux to not add invalid include and linker paths
  • Remove deprecated cygwin only flag
  • Corrected "defines" switch for Gfortran
  • Improvement of parsing of Gfortran compiler output
  • Updated output parser for VS2015
  • Add -std=c11 to default compiler options
  • Batch mode doesn't work on MacOS
  • Save the other resource settings in the Compiler options dialog
  • Add support for the following options : -std==c++1y and -std=c++1z
  • Fix description of "-ansi" compiler-flag in "options_common_warnings.xml".
  • Expand backtick expression when doing clean for makefile projects (fixes #326)
  • Switch to build log when compiling single file
  • Remove the limit on the number of processors and change the default to use all available in the machine (fixes #327)
  • Don't compile the regexes for the compiler until they are really needed (speeps up startup)
  • Support for new compilers: android-GCC MW, powerpc-EABI (patch by unknown person)
  • Added more common options to clang, gcc, msvc
  • parsing Gfortran v5.* compiler messages in new v5.* format; option -fopenmp should be applied at compiler and linker command line
  • Applied patch to make Cygwin compiler work with recent Cygwin installations
  • Debugger:
  • Mark the GDB attach to process command to be a continue command
  • Remove squirrel based pretty printers - users are supposed to use the gdb-python-pretty-printers
  • Disable the Examine memory menu item for child or special (function args and local variables) watches
  • Make it possible to examine the memory of non-pointer variables like structs
  • Make it possible to examine the memory of a watched variable using the contect menu in the watchs windwo
  • Truncate the value when displaying the watches tooltip
  • Fix crash in the disassembly windows
  • Fix parsing of shortened strings
  • Make the source code in mixed mode to be treated as comments by the asm lexer
  • Save the Mixed mode setting from the Disassembly dialog
  • Examine memory dialog remembers the size to dump
  • Fix parsing of backtrace produced by newer CDB's
  • Make if possible to debug 32bit program with CDB 64bit
  • Don't call EditorLinesAddedOrRemoved twice for split editors
  • Don't print a warning when the current compiler is set to "No compiler" and the active debugger is set to "Target's default"
  • Set print elements limit to the default for gdb, using unlimited has proven to be dangerous
  • Fix gdb watch parsing error when there is a repeating sequence just before a closing brace '}'
  • Fix issue #254 - make it possible to use the stop button for the CDB debugger
  • SDK:
  • autotools: Try to fix building with newer boost
  • Prevent sending EVT_MOUSE_CAPTURE_LOST while opening a context menu in wxScintilla
  • Allow the user to discard old config file if it fails to load
  • Return false if there are errors reading a xml file with tinyxml
  • Fix crash when reading truncated config file
  • Make sure we show an error message box when we cannot save the config file
  • Move the wizard files to the correct folder when making bundle
  • Fix blurryness when making a bundle
  • autotools: Add OSX bundle making support
  • autotools: Fix compilation using autotools on OSX
  • Fix ProjFile::Rename to correctly add the new file to m_ProjectFilesMap
  • script bindings: Don't crash when trying to add wxString and something that is not a wxString
  • Speed up project loading for large projects (projects with many files or many targets)
  • FileManager: Write directly to symlinked files (wx30 only, ticket #276)
  • autotools: Modernize our build system
  • osx: Build all plugins as dynamic libraries
  • osx: Fix plugins location
  • Remove homemade static_assert and use the real thing
  • Add additional tests to MacrosManager to determine if a newer project has been activated.
  • Linux (autofoo): Try to use system provided squirrel, astyle, tinyxml (based on Fedoras unbundle-patch)
  • Fix issue #358 - Remove additional flags from pkg-config files
  • c++11: Use unique_ptr instead of auto_ptr
  • c++11: Remove our nullptr implementation and some other tr1 classes
  • osx: Fix launching in terminal when the executable path contains characters that need to be escaped
  • batch: Fix crash when batch building, because the autofitting accesses null pointer
  • c++11: Code::Blocks now requires a C++11 capable compiler
  • Use more proper types in some places
  • script binding: Log messages with any buffer size (hack, patch by unknown person)
  • Do not add a cmd.exe in front of NUL when replacing macros
  • Remove all breakpoint related functions from EditorBase
  • Remove all bookmark functions from EditorBase - they are not needed there, just in cbEditor
  • applied patch to remove and sync macro prefixes
  • Fix a bug in configmanager.cpp which can lead to undefined behaviour. Wrong combination of std::map::erase and iterators
  • Scripted wizard:
  • Apply YWX additions (GetWizardScriptFolder, FillContainerWithSelectCompilers,AppendContainerWithSelectCompilers,FillContainerWithChoices,AppendContainerWithChoices)
  • Improve Code::Blocks plugin wizard
  • Add support for 3.1 in the WxWidgets wizard
  • Fix images to be 32x32 and be transparent (fixes ticket #314)
  • Added FLUID and SDL2 templates (patch by unknown person)
  • Add new templates to automake build-system
  • Added Java wizards for fun
  • Added qt5 and improved qt4 wizard (patch by unknown person)
  • Added arduino and msp430 wizards (patch by unknown person)
  • Added SDL2 wizard (patch by unknown person)
  • Added wizard for D language (patch by unknown person)
  • Applied (modified) patch by stahta01 to relax wizards when searching for library files to link against, see: http://forums.codeblocks.org/index.php/topic,20730.msg142215.html#msg142215
  • SpellChecker:
  • Add (Fedora-)path for dictionaries.
  • Support Unicode path names
  • Better support short forms like "doesn't"
  • Pumped hunspell lib to more recent version to allow adding additional / multiple dictionaries
  • Some status messages to the user to track down if something goes wrong
  • UI:
  • Remove ads extension when saving newly created files on wxGTK
  • Fix status bar flickering when scrolling the editors
  • Make sure that menu items in the Project menu are correctly disabled
  • Notify the user that there is running compilation during quit and ask if he/she wants to stop it
  • Make sure that menu items in the context menu in Projects tab are correctly enabled/disabled
  • Clean up the UpdateUI behaviour of the File menu items
  • Remove 'Save All', 'Save all projects' and 'Close all project' menu items from the File menu
  • Add update ui processing for the File -> Properties menu item
  • Add 'Enable both' and 'Disable both' menu items in the Options submenu for the files in the project tree
  • Replace the cbMessageBox with AnnoyingDialog shown when there is config write error. This makes it possible to retry the saving of the config file
  • Do not loose changes when clicking twice the same target in ProjectOption dialog
  • lexer: Add PowerShell script support
  • Fix redraw problem on ubuntu because freeze/thaw are used in a wrong way
  • Move the open containing folder setting to the environment dialog
  • Fix open containing folder on linux
  • editor: Fix middle click copy/pasting when using wx2.8
  • editor: Revert some commits related to copy and pasting on wxGTK (9420, 6883, 5185)
  • Update the info window after a plugin is uninstalled
  • editor: Insert new line below and above current line without indentation
  • Do not loose settings when re-ordering targets in the project options dialog
  • When removing files from a project, sort the files in the selection dialog.
  • Always hide the "auto generated" text for files that do not belong to a project
  • Make it possible to edit all targets in the Select Target dialog
  • editor: Select word at cursor if there is nothing selected and the 'Select next occurrence' command is executed
  • editor: Make the UpdateUI behaviour for 'Select next occurrence' and 'Select skip to next occurrence' to be a bit more logical
  • editor: Fix bug in the Select Skip Next command when using it on the first selection
  • Add the current position of the cursor in the status bar
  • Preserve open editors per target/project
  • lexer: Added few new keywords to Fortran lexer
  • Fix crashes at startup due to undefined behaviour in wxPropGrid
  • Remove explicit sizing and leave that to the sizers for controls in CodeStat settings, DoxyBlocks settings and Editor settings
  • printing: Fix printing splitted windows and improve the restoration of gutter and line numbers
  • Limit the number of targets visible in the menu to lower number to try to fit them on screen
  • Implement Select target menu item that shows an incremental select dialog (#ticket 478)
  • Fix read-after-the-end-of-array bug when a project has more than MAX_TARGETS number of targets in it
  • Use separate up/down buttons for the search dirs tab instead of a spin buttin
  • Use separate up/down buttons for the linker libs list instead of a spinbutton
  • Make the GotoFile to try calculate a column width based on its content, so everything fits in the column
  • GotoFunction: Make the dialog re-sizable
  • Set the focus to the cancel button in the about dialog to enable closing with escape to work on wx28 on linux
  • Add configuration option to make focusing the first build error an option
  • Make env settings dialog resizeable on Windows
  • GotoFile: New goto file dialog which uses virtual list which makes it possible to have 50-100k elements in it without visible slowdowns
  • Replace case insensitive with case sensitive checking when the user changes a virtual target name
  • Speed up goto file opening for large projects
  • Make editor and environment settings resize correctly (fixes ticket #467)
  • Better align widgets vertically in the EditPath dialog
  • Use wxStdButtonSizer to make buttons more consistent
  • Sort the elements in the tree, so they are consistent
  • Fix an out-of-bounds read in the new GetUserVariableDialog
  • Specify min size for the text ctrl in the EditPath dialog, so it is a bit more user friendly
  • Use bitmap buttons for buttons in the EditPath dialog
  • Replace flexgridsize with simpler boxsize in edit path dialog and fix the control expansion
  • Set HiDPI aware to false for C::B on Windows with HiDPI monitors (HiDPI support in wx starts from wx31+), should resolve some layout issues
  • Allow macros in project notes. Press J to do the replacement (patch by unknown person)
  • Properly restore the line number settings in the editor after printing
  • Add dialog for global variables to "Edit Path" dialog
  • Fix incorrect usage of size_t
  • Add multiple select in the "Copy to..." dialog in Search Directories
  • Disable the Copy to buttons in the Build options dialog if nothing in the list is selected, because these operations do nothing in this case
  • Add multiple select in the "Copy selected to" dialogue
  • Fix default buttons in most dialog broken after the change to use wxStdDialogButtonSizer
  • Fix SF Ticket #386 Parallel builds arbitrarily limited to 100.
  • Apply modified SF ticket #66 Patch for "Goto Function" enhancement. Thanks Bat.
  • editor: Enable folding for newly created files (partly fixes ticket #366)
  • editor: Enable switching between header and implementation for templates (.tpp;.tcc . <-> .h;.hpp).
  • Use a listbox instead of choice for the list of variables in the global variables dialog
  • Updated the cc tooltip colours after the settings have changed
  • Fix sorting of virtual folders when there is an empty one
  • Clarify the menu item names for splitting the editor
  • show project/workspace file name and target title in title of batch window
  • lexer: Added autotools, cu and inno setup lexers (patch by unknown person)
  • editor: Apply patch #71 - Wrap around when reaching the last bookmark in an editor
  • Correct template title not to use illegal characters (patch by unknown person)
  • Allow to rename virtual folders via menu (patch by unknown person)
  • Select highlighting scheme from status bar for convenience (patch by unknown person)
  • Apply patch #80 - prevent asking for closing the workspace in batch builds
  • Applied patch by frithjofh w/ some refactoring for the search/replace dialog (see http://forums.codeblocks.org/index.php/topic,20849.msg142364.html#msg142364)
  • Remove (new) from the name of the watches window
  • fixed wrong message in batch builds on errors
  • Use the app window in cbGetSingleChoiceIndex and cbGetTextFromUser as parent when nullptr is passed
  • Replace calls to wxGetTextFromUser with a custom function that allows sizing and proper placement (also add missing PlaceWindow calls when the wxTextEntryDialog is used)
  • Replace calls to wxGetSingleChoiceIndex with a custom function that allows sizing and proper placement
  • Limit the vertical resizing of the EditPath dialog
  • Use a std dialog button sizer in the GDB's breakpoints dialog
  • Remove strangely looking SetSize call, remove the static line widget from Compiler flags dialog
  • Rename the OK button to Close in the configure tools dialog
  • Remove a panel and a flexgridsizer from the compiler flags dialog
  • Make the edit path sizable
  • Replace box sizers with std dialog button sizers where possible, also expand the sizers
  • Expand the std button sizers in order to make the dialogs look better on wxGTK
  • Show file in the project tree command should show the Management tab if it is closed
  • disable saving / loading editor layout by default (due to a bug)
  • make loading/restoring project/editor layout an option
  • Replace '&' with '__' in the xrc file for the edit tools dialog (fixes ticket #321)
  • Change description of $$(macros) to $(macros) in the configure add dialog
  • wx3:
  • Fix assert when loading files and the global enconding setting is set to default
  • Fix assert when closing the application during long compilation
  • Memory dump window has wrong proportion on windows
  • Fix assert when executing Build -> Errors -> Next error and there is no error in the list
  • Fix the highlight language button in the status bar
  • Fix assert when pressing the auto-detect button in the compiler settings
  • Always disable symbol browser in such builds to prevent crashes
  • Fix compilation with latest wx master
  • Fix assert on startup in IncrementalSearch
  • Fix assert due to the same labeled property added to the wxSmith's property grid for wxStdDialogButtonSizer
  • Fix some alignment asserts reported for some of the dialogs
  • Fix assert when calling wxSetWorkingDirectory with an empty path
  • Fix two asserts in the AVR wizard
  • Fix lots of asserts when batch building (there are some left though)
  • Fix assert when the current target uses "No compiler" (fixes ticket #315)
  • Fix asserts when wizard icons are no 32x32 pixels big (fixes ticket #314)
  • Fix an assert in ToDo plugin
  • Fix assert when deleting a compiler
  • Fix assert when the search mask in the Find/Replace dialog is empty (fix formatting of the code around)
  • Fix the ValueTooltip autosizing. It was disabled for wx29, but should work in all wx3.0, because my patch should be in them
  • ProjectOptionsManipulator:
  • Added modified/bug-fixed patch by bluehazzard: Add possibility to change compiler
  • Bug-fix for erroneous message when user cancels dialog
  • Bug-fix for some UI logic (enabling/disabling applicable controls)
  • Query the user to save all projects at end for convenience
  • Show summary of operation done at end
  • Mark project files modified if they are changed
  • AStyle:
  • Fix config option label - swapped of and #
  • pump: update of ASTYLE plugin to fix bug #493 AStyle crashes in svn build rev 11033
  • make Mozilla style preview work correctly
  • Fix bug in settings dialog "Break logical conditions..."
  • Fix a typo in the setting dialog.
  • Fix spelling - parentheses is the correct word
  • Fix issue #352
  • CppCheck:
  • Support for XML log file format v1 and v2 (v1 will be obsolete soon)
  • Allow macros in command line parameters provided through settings
  • Added support for Vera++ (https://bitbucket.org/verateam/vera)
  • Add PATH to cppcheck executable if required before the call
  • wxSmith:
  • Add wxSpinCtrl alignment styles
  • Fix drawing artefacts when built with wx3.0
  • Don't write characters in generated/altered files when C::B is built with wx3.x
  • Fix crash, when closing wxs-file and a sub-property is selected; see: http://forums.codeblocks.org/index.php/topic,21893.0.html
  • Improve compatibility with wx3.x by adding some new events and removing events that aren't supported
  • Sort generated includes and forward declartion to prevent random changes to the source files when the hash function changes
  • Fix the resizing of the ArrayStringEditor dialog
  • Make it handle minsize corretly for wxSplitter
  • fix assert with wx3.0, due to doubled properties in some sizeritems.
  • introduced settings wrt to controlling translation and style of translation code (wxT(), _T()...) globally
  • move wxMathPlot and it's counterpart wxSmithPlot in wxContribItems and wxSmithContribItems.
  • Other/various:
  • abbreviations: Applied patch to fix abbreviations target is missing in some project files
  • abbreviations: Fixed bug in with non-alpha-numeric character abbreviations
  • cb_share_config: Added simple "export all" functionality for easy backup of all config stubs to a backup folder
  • cbp2make: Added (further improved) cbp2make by mirai-computing due to project seems dead otherwise
  • CodeStat: Fix assert in the progress update
  • cscope: Fix hang of cscope when given a missing file
  • help: allow to search for keywords also on CPlusPlus.com
  • DoxyBlocks: Clean up the UI a bit
  • DoxyBlocks: Filter out comment strings in the parameter documentation
  • HexEditor: Change the label of the OK button to Find
  • HexEditor: Limit vertical resizing of the search dialog
  • HexEditor: Fix text misalignment when selecting numbers in the editor
  • IncrementalSearch: wx3 compatibility-fix
  • ProjectImporter: Better handling for more recent VC workspaces / project files (patch by unknown person)
  • SourceExporter/NassiShneiderman: Make sure only one File -> Export menu is created no matter which plugin is created first
  • SourceExporter: Fix undefined behaviour
  • ThreadSearch: Add option to disable/enable the autosizing of log columns (fixes #324, thanks Sergey Bezgodov)
  • ThreadSearch: Fix infinite filesystem traversal when there are cyclic symlinks present
  • todo: Display count of list item
  • todolist plugin: some code improvements by frithjofh
  • Valgrind: Quote the path to the xml file if needed - makes the plugin work when the project is located in a path with spaces
  • Updates to external libraries:
  • move astyle (plugin) out of beta into v3.0 release
  • updated exchndl (crash handler) to v0.8.2
  • updated exception handler to v0.8.1
  • updated wxPDFDoc library to recent GIT version to resolve licensing issues
  • updated exchndl (crash handler) DLL to v0.8.0
  • updated library to v0.9.5 for better wx30 compatibility

New in Code::Blocks 16.01 Rev 10695 (Jan 28, 2016)

  • Compiler:
  • Do no operate empty compiler options
  • Improve compiler detection for Intel compiler suite
  • Correct remaining compiler settings regex conditionals for GCC 5
  • Correct some regular expressions for compiler settings
  • Support for -m32 and -m64 compiler switch
  • Support for -std=c99 switch
  • MSVC: Support for Multi-threaded Debug Runtime Library, fixed non-debug switch
  • gcc and clang : support -std=c++14
  • Add support for multi-line error messages for gfortran
  • Add "no-rtti" and "no-threadsafe-statics" to "c++ - only flags"
  • fixed bug #52: "You can't change the number of parallel processes while building!" message shown in error (https://sourceforge.net/p/codeblocks/tickets/52/)
  • correct static library command for clang
  • Correctly delete multiple selected search directories (fixes ticket #151)
  • Add support for gcc for ADI blackfin
  • Added missing part of implementation to support resource compiler options
  • Applied patch by LETARTARE so misc. compiler events also provide the source ID of the wx event that caused the compiler operation
  • Added support to disable dependency checks for #includes (intended ONLY for on C/C++ compilers!)
  • Add support for dedicated resource compiler options
  • Fix the clear button in the Search directories tab (partially revert r7569)
  • Try to fix the wrong autosize problem
  • Save in the config the setting of the Fit automatically menu item shown in the build messages window context menu
  • Add propgrid to the compiler flags dialog
  • Rate limit build message column auto fit frequency to reduce excessive overhead when builds produce thousands of messages
  • Add support for the soft CPUs lm32, lm8 and zpu
  • Resolve bug 19021, new compiler flags created from the per-project settings dlg are not saved to running memory.
  • Fixed linking to object files directly as described here: http://forums.codeblocks.org/index.php/topic,19256.0.html
  • Remember the choice of the user for QuoteNeeded function
  • Fix crash when using *No compiler* for building projects
  • Make building/cleaning custom makefile projects more verbose, so users can have a chance to see what commands are executed
  • Single file compilation: fix a crash if user selects a wrong target
  • Fix memory leak at every call of CompilerGCC::DoSwitchProjectTemporarily
  • We want to clear the "Build messages", but not clear the "Build log"
  • Better logging for the CompileFile method
  • CompileFile for the correct target
  • Fix crash when building single file and the compiler for the selected target is invalid
  • Fix deprecated commandline-options for clang; add needed linker options; check for colliding options; modified patch of Rahul Sundaram (Fedora maintainer)
  • Detect and show general error (e.g. commandline error with clang)
  • Code Completion:
  • fix a re-entry crash in CC when calling compiler to get compiler/platform parameters
  • avoid calling a compiler from within CC that does actually not exist (avoids debug messages)
  • Tell parser internal threads to abort when project is closed.
  • method "GetTokenBaseType": make use of C++ casts and wxIsspace in favor of comparison to space only (could also be a tab or alike)
  • parser - reverted part of commit r10230 to fix regression in parsing of 'if' condition.
  • parser - fixed handling of assignment within for loop.
  • parser - fix for function pointer parsing with assignment.
  • fix bug #224 Duplication in documentation tooltip
  • do not reset the recorded macro expansion stack when it exceed the limit.
  • Apply patch SF #199 suppression of the multiasterisk comments
  • fix bug #16 remove the __attribute__(xxx) in function arguments
  • fix a bug that GetBaseArgs() stop on an inner comma char.
  • when reading the function argument, add space after inner ')'
  • fix bug that the * or & sign is removed in the inserted text
  • Fix #210 "&" and "*" are differently parsed in the CC's parser
  • add a space between '*/&' and the next token when reading parentheses
  • remove the macro replacement UI part in the CC's setting dialog
  • support macros in local scope (patch contributed by huki)
  • updated ComputeCallTip to remove macro replacement
  • handle comma char in ParserThread (patch contributed by huki)
  • fix variable parsing with "=" or "[]" (patch contributed by huki)
  • fix a bug that calculate the preprocessor directive exceeds the EOL.
  • fix a bug that in Parserthread, the token after #undef is already expanded.
  • use the macro expansion stack, this avoid expanding the used macros. Set the macro expansion stack limit value to 5, since I think 5 is enough.
  • massive code remove about user defined macro replacements(include the UI parts). We don't need them any more. part 1
  • remove the user token replace rules load and save functions, we don't need them if we fully expand macros.
  • when expanding function like macros, the actual parameter doesn't exists, thus the expansion failed, we need to reset the m_Lex, so that the caller don't get wrong token. Here is an example:
  • skip the [] brace when reading the var list.
  • since the macro replacement is already done inside the GetToken() function, so no need to check the macro usage.
  • return "==" "=!" "=" as a single token in the Lex() function.
  • handling the pattern "A B = f();", since we now skip the right hand side of assignment in ParserThread class.
  • CC and CCTest: handle the skip assignment and ternary operator in ThreadParse::DoParse() function, not Tokenizer::SkipUnwanted() function, this can handle skipping of {} correctly, especially when handling wx's Event handler macros.
  • fix SF #198: document parsing error with doxygen block comment.
  • apply jat1's patch(modified) to handle the template alias.
  • fix SF #158 Code completion fails with the "using Alias = Type" syntax in C++11.
  • apply #178 patch for element access functions belonging to STL containers.
  • SF ticket 175, solve typedef declarations in class templates.
  • fix SF ticket 41 CC can`t parse defines with Doxygen single-line comment.
  • fix bug #137 Code completion - code without "using namespace" - don't shows class members.
  • Apply the same fix as the one for compiler variables to the CC options
  • fix #143 Code completion fails with function-try blocks.
  • include *.hh, *.hxx and *.h++ for parsing by default
  • fix ticket #145 Code completion ignores parameters of catch-clauses.
  • fix ticket #154 Code Completion problem with some wx classes.
  • parser - fix support for typedef pointer.
  • support for function pointer arrays.
  • fix compiler predefined macros collection under Linux.
  • avoid adding #defines to the parser that are not supported by the platform (same as r10183 but for compiler options)
  • should hopefully fix broken colouring for mixed platform projects (e.g. one project with targets for Linux and Windows)
  • fix MSVC processor architecture detection for more recent MSVC compilers
  • avoid scanning for include folders of compilers/project/targets not supported by current platform (can be toggled trough settings, default is ON)
  • fix calling package scripts on platforms where these are not supported and may cause a freeze
  • fix handling of struct pointer typedef.
  • work around a failure when handling stringize operator.
  • fix infinite loop when recursive macro expansion reaches max account.
  • Fix infinite loop when traversing headers and there are loops caused by symlinks (ticket #14)
  • do not save the macro usage tokens in the token tree.
  • update typedef'd func pointer calltip.
  • SDK: ccmanager: when m_CallTips get updated, also update the iterator. Fixes crash reported here http://forums.codeblocks.org/index.php/topic,20489.0.html
  • fix ticket #130(Bug in RMB click -> Open include file). The second parameter of the function NormalizePath() should be a directory, not an absolute file path.
  • handling stringize operator ('#') when expanding macros.
  • handling __declspec (xxx) in ParserThread::DoParse() function. Move handling __attribute__ keyword to the switch case statements.
  • code simplified. Use the ReplaceMacroUsage() function to handle macro expansion, since it can handle both function like macro expansion and object like macro expansion. If ReplaceMacroUsage() return true, it means m_TokenIndex is rewind, so we need to continue the loop.
  • fix handling of conditional preprocessor directives.
  • fix a bug that CodeCompletion's setting don't get saved when C::B closed.
  • handle the "__declspec" qualifier when parsing the class definition, this qualifier is skipped as the same way as handling "__attribute__" qualifier.
  • fix a bug in Tokenizer::CalcConditionExpression(), when checking whether a token is a macro usage, the length of the token should be larger then 0, not 1.
  • fix bug when handling "##" operator in macro expansion.
  • disable the sanity check when expanding the macro usage, this try to work around an issue reported here: http://forums.codeblocks.org/index.php/topic,19661.msg134291.html#msg134291. We still have a expansion limit to avoid the infinite loop.
  • Apply patch by Huki, which merges function handling and updates macro handling
  • code re-factoring for CodeCompletion plugin and CCTest projects, class ParserBase was now in its own parser_base.h/cpp files, thus remove parserdummy.cpp(this file was used to supply the class ParserBase implementation for CCTest project). ParserCommon::EFileType ParserCommon::FileType() function was moved to parser_base.cpp.
  • Apply patch by Huki, this improved parsing support for func ptr, also add some comments about how to parse the pattern "AAA BBB(...);"
  • Apply patch to improved calltips support for macro and typedef, add documents for Tokenizer::SplitArguments() function.
  • skip the C++ style comment correctly if reading doxygen style document is enabled, thus partially fix the bug: https://sourceforge.net/p/codeblocks/tickets/41/, the synchronization issue about the Token and the document still exists yet.
  • apply patch by Huki, these mainly fix two things:
  • 1) Nested unnamed (struct or union) within unnamed: all the members should be invokable from the parent class or struct.
  • 2) Show tooltips for members of unnamed / enum within class invoked directly (also for nested cases).
  • call SmartIndentPlugin->OnCCDone() when CC is done through the event system
  • call SmartIndentPlugin->OnCCDone() when CC is done
  • apply patch by Huki. Don't skip successive opening or closing brackets
  • apply patch by Huki. In DoParse(), when parsing "else" we try to eat the arguments. It breaks support for "else-if" (we will end up eating the "if"), and anyway there is no need to skip anything after "else"
  • apply Huki's patch to fix Tokenizer issue. Fixed undo token behavior when macro replacement involved.
  • add a new CC replacement rule: XXXXX -> @, and document the ReplaceMacro() function. The new rule triggers the tokenizer to switch to macro replacement mode, thus a macro definition can be looked up in the token tree.
  • fix a bug in splitting macro's actual arguments. For arguments, parentheses within each argument must balance; a comma within such parentheses does not end the argument. See the related document here https://gcc.gnu.org/onlinedocs/cpp/Macro-Arguments.html
  • apply patch by Huki. When a virtual target is selected, collect the defines for all child targets. Eg., in the CB project, if the "All" virtual target is selected we should collect defines from all sub-targets(scintilla, etc).
  • the workspace changed event does sent when user try to close the application, so fix the wrong comments description there. At this time, a NULL project pointer will be returned from the GetActiveProject() function, thus we don't need to update the GUI.
  • apply patch by Huki. Speed up canceling the ongoing parser, if a parser is going to die, we don't need to clean up the temporary tokens of the parser before its death.
  • apply Huki's patch to fix a dead lock issue. This is bug fix for crash when trying to cancel the ongoing project parsing (to reparse, quit CB, etc). Easiest way to reproduce is to select "Project -> Reparse current project" twice successively (or once before the initial parsing has finished). It's in fact a mutex deadlock.
  • apply Huki's patch, it is a small bug fix in nativeparser.cpp, NativeParser::ParseLocalBlock(). The function ParseLocalBlock() is only supposed to be run for function blocks(bodies), but it's actually run for any kind of code block (classes, etc). So for example if the user clicks on a class declaration, the entire class block will be parsed as if it's a local block and several token info (such as the line index) will be overwritten. To fix it a check is added.
  • the editor sends cbEVT_EDITOR_MODIFIED event when it gets modified, but cbEVT_EDITOR_MODIFIED is not the correct event to trigger reparsing of the current editor buffer, because cbEVT_EDITOR_MODIFIED is only sent once the cvEditor::m_Modified is set from false to true. Thus, adding a space character will cause such event and cause unnecessary reparsing. We already have an Code Completion option: Update parser when typing, if it is enabled, it will trigger the reparsing in Editor Event Hook handler.
  • Apply Huki's patch, it fix several problems when CC handles tilde character '~' before a token:
  • fix potential crash-candidate (I had a crash here on close with wxWidgets dynamic aui-branch)
  • Fix crash when creating new file from the wizard and there is a default code to be added to the file
  • Find declaration of a class constructor now goes to the correct constructor functions, not the class definition.
  • fix a bug that we don't get code suggestion list for a function's parameter such as: "void foo_2(Msg const& msg)". The reason for the bug is that when we try to get the base type name for the variable Token "Msg const& msg", we wrongly get the "const". The expect value should be "Msg".
  • show constructor args in documentation popup
  • improve constructor calltips
  • committed missing changes in ccoptionsdlg
  • made the option for CC simpler: Either you choose documentation with all (good) consequences or not (probably fixes http://forums.codeblocks.org/index.php/topic,18991.msg130116.html#msg130116)
  • show formatted args of methods, if docs helper is disabled in the CC options
  • this is an improvement to Huki's cc_includes_parsing.patch. When recursive parsing of cpp/h files, we need to release the locker on each recursive call, so the parser does not hold the locker for a very long time, the GUI will not hang. The header files in the project do not be added to the BatchParse any more, since it will mass the bool Parser::Parse(const wxString& filename, bool isLocal, bool locked, LoaderBase* loader) function a lot, if the header file is marked as assigned in the TokenTree, it will not be parsed immedially when Parser::Parse() is called.
  • Handle _attribute__ keyword when parsing.
  • improvement of the parser on handling enums.
  • fix a bug in the one parser for the whole workspace mode. When a workspace contains many projects, if a project's files were already parsed by previous projects and the macros string is empty, then this project don't actually assign a parsing task to the thread pool, thus there is not ParserEnd event emitted, so we have no way to start parsing for the next project. The general logic are below:
  • Remove the :: at the end of classes/enums/namespaces in the CC toolbar
  • add sanity check for function like macro expansion, both the formal and actual arguments should exist and their count should match also, this try to fix a bug reported here http://forums.codeblocks.org/index.php/topic,18824.msg129092.html#msg129092
  • added support for "noexcept" while parsing and for doxygen, based on a patch from here: http://forums.codeblocks.org/index.php/topic,18533.msg128778.html#msg128778
  • improve support of constructor call tips
  • show template formals and immediate ancestors in class tooltips
  • CCManager (new):
  • defer showing calltip to next event loop in attempt to fix crash on race condition
  • Make the call tips wrap around
  • enable colour configuration of tooltips (patch by scarphin)
  • allow overloaded calltip navigation by arrow keys (patch by darmar; modified)
  • allow tooltips to be shown via only keybindings (no mouse dwell)
  • remove unused variables, those variables and their associated UI parts are now controlled by CCManager in SDK(See revision 10055). The case_sensitive option now follows the global settings in CCManager, so once a Parser is created, this option can't be changed unless the project get reopened.
  • add configuration options for main CC behaviours
  • fix crash candidate: delay canceling call tips when C::B loses focus
  • add support for single-page call tips (TODO: add controlling dialog config option)
  • invalidate cached active ccPlugin when user changes language on the active file
  • support asynchronous display of CC documentation popups
  • better support memory of user's selection of dynamic changing overloaded calltips (used in FortranProject)
  • implement long term recall of user prefered overloads in calltips
  • fix display update when scrolling through calltips on Windows
  • allow codecompletion plugins to (optionally) register their set of "interesting" characters that launch calltip and codecomplete requests
  • cbCodeCompletionPlugin: add control parameter to prevent CCManager from displaying calltips during a tooltip request
  • support multiline calltips
  • re)implement highlight of active parameter in calltip (changes cbCodeCompletionPlugin API)
  • show calltips on seperate pages, TODO: fix highlighting active parameter
  • when highlighting a token in a tooltip, take into account word boundaries
  • documentation popup, dynamically size width while visible if more space becomes available (because the autocomplete popup becomes narrower)
  • documentation popup, show to left of the autocomp list if it would otherwise go off the edge of the monitor
  • do not autolaunch tooltips for dwell events far in the whitespace margin
  • intercept stc scroll events on Windows and forward to autocomp/documentation popups to allow scrolling them with the mouse wheel
  • force invalidation of (call)tip popup when changing because Windows sometimes does not
  • fix layout of documentation popup on Windows
  • prevent documentation popup from displaying off the edge of the current monitor
  • use surrounding context when starting the autocomp popup as the default selection
  • do not cancel calltip during refresh (reduce flicker)
  • utilize buffered CCTokens for autocomp
  • sdk: add default implementation for cbCodeCompletionPlugin::DoAutocomplete()
  • partially) manage autocomp images
  • recalculate calltip on undo and autocomp select/cancel
  • improve hiding logic for documentation popup
  • hide tooltip on scroll
  • wx)scintilla: send SCN_AUTOCCANCELLED event on autohide (no matches in autocomp popup)
  • implement documentation popup
  • take control of autocomp box: token round trip (part 3; complete)
  • take control of autocomplete sorting (with optional priority sort)
  • hook back in preprocessor autocomp
  • take control of autocomp box: autolaunch (part 2)
  • take control of some parts of autocomp box (part 1)
  • swap tooltip interface for generic token retrieval
  • update calltip on caret move
  • implement calltip autolaunch
  • take control of some parts of calltips
  • handle editor tooltips
  • Debugger:
  • Fix issue with watches window column auto-sizing (fixes ticket #153, patch by sbezgodov)
  • Improve experience with 64bit builds on windows and wx2.8
  • Better auto-sizing in the CPU registers dialog
  • Fix infinite loop when parsing watches generated by Python pretty printers
  • Fix parsing gdb locals/arguments when the values contain escaped double and single quotes
  • Add support for executing additional shell commands when using GDB
  • Add flag to enable/disable loading of .gdbinit
  • Expand macros in the Additional GDB commands
  • Disable deleting of Locals and Function arguments watches with the Delete key
  • Improve logging, while trying to interrupt the debuggee
  • Try to detect when the terminal couldn't be started and print an error instead of entering annoying loop
  • Remove --disable-factroy switch when starting gnome-terminal, because it has been removed in 3.10
  • Rework RunNixConsole to be even simpler, the old version always printed an error message and return the pid of the sleep command
  • Make it possible to translate "Program Console"
  • Determine console pid from ps-command, returns either the same as we have now (e.g. xterm) or the pid of the sleep-command and works therefore also with newer gnome-terminals
  • Make it possible to enter new watches with the keyboard only in wx>=29
  • The focus parameter controls if the editor for the property will get the focus, which is not what we want
  • New plugin: Project Options Manipulator:
  • support replacements of (existing) custom vars, based on patch #253 by bluehazzard
  • fixed a bug when operating linker libs
  • fixed a bug when operating resource compiler path's
  • allow to limit scope of operations to specific target types (allows e.g. to add an option to executable targets only)
  • fixed some UI glitches and wx debug warnings therefore
  • added support to replace in options (making use of new API)
  • honour option "Contains" for "add" and "remove" option correctly
  • should be pretty much feature complete now :-)
  • support resource compiler options
  • add support to remove project files that are not assigned to a target
  • implemented search for "equals" and "contains"
  • fixed bug that "search not" was not working for linker options
  • implemented search/add/remove of resource include dirs
  • implemented search/add/remove of custom vars
  • made the result window bigger
  • implemented search/add/remove of linker libs
  • implemented search/add/remove of include and lib folders
  • added new plugin: ProjectOptionsManipulator
  • wxSmith:
  • remove deprecated and never used Shadow and Bezel related code from wxsGauge.*
  • applied patch #102 wxSmithPlot plugin fix by wekn eve iknvwnv
  • fixed bug as explained here: http://forums.codeblocks.org/index.php/topic,20607.0.html
  • do not return wxALIGN_NOT for empty-flags, because xrc-handlers does not recognize it, use wxALIGN_LEFT instead, because it's internally the same.
  • allow wxALIGN_CENTER (2d-centered) in sizeres again, as it is handled differently in wxWidgets
  • align-flags with wxEXPAND are still forbidden, because wxEXPAND will be ignored in this cases in wx3 and this will break layout.
  • enable setting min and max size for sizers.
  • fix wxSizerFlagsProperty, vertical align is not allowed inside vertical sizers, horizontal align is not allowed inside horizontal sizers, wxEXPAND is not allowed together with alignmenta nd breaks layout in most recent wxWidgets.
  • fix warnings about deprecated font-enums; add setter- abd getter-functions for wxFontStyle, wxFontWeight and wxFontFamily to wxsPropertystream
  • Fix bug in wxSmith
  • AStyle:
  • fixed saving some options did not work, based on patch #183 by Li Minggang
  • fixed resource wrt complaints
  • major improvement to astyle plugin: make it fully (options-) compatible with v2.05.1
  • removed obsolete astyle options (no longer working correctly)
  • added new astyle options and formatters
  • fix SourceForge Ticket #103, change "Gnu" to "GNU" in the label.
  • revert r9575 (apply formatting delta to editor) due to buggy implementation.
  • when formatting text, only mark as modified lines that actually changed
  • FileManager:
  • disable drag and drop in the tree if browsing a commit state of a version controlled folder
  • correctly resolve path to item when displaying version controlled path in changes only mode
  • improves support for displaying status icons representing the changes in the working copy or a particular commit when browsing version controlled directories. Also improves robustness when viewing the mercurial log
  • retrieve only relative paths when showing changes to a directory under version control
  • adds checkbox to view only changed files from the last commit in a version controlled directory. Also fixes a couple of bugs with mercurial repo browsing and some issues reported by blauzahn at http://forums.codeblocks.org/index.php/topic,19961.msg136598.html#msg136598
  • support for showing only commits with changes to a particular file
  • fixed crash if setting a folder to root which is under version control and where the VCS executables could not be run
  • show changed files only' -- flattens the tree of a directory under version control and shows only the files that have changed (currently only works for the working copy and still need to prune some of the right click menu options and disable drag n drop)
  • missing space in git log command
  • adds support for viewing diffs and browsing the history of a version controlled folder (currently supports GIT, SVN, BZR and HG).
  • adds support for providing git status decorators (clunky because we need a more complete set of status codes for modern VCSs)
  • Corrects labels for status decorator settings in default.conf for HG and BZR (they were reversed).
  • fix crash when right click beside the tree when nothing from the tree is selected.
  • HeaderFixupPlugin:
  • applied patch #235: Partial STL completion by Morwenn
  • fixed #123 HeaderFixup: use istream/ostream directly Move Edit
  • Help:
  • Always search in all man help root directories, not just the active one for the currently selected help file
  • Update man search dirs, when the user changes the settings of the plugin
  • Sort the result for the man page viewer
  • Append the language of the manual page at the end of the link
  • Fix looking up symbolic linked man pages in gz files (bug #19155)
  • Fix looking up symbolic linked man pages in gz or bz2 files (bug #19155)
  • KeyBinder:
  • handle Ctrl-- and Ctrl-+
  • Reverted parts of 9836 to 9764. User secondary defined keys were not being rebound on reload of a project. Will work to resolve problem
  • Make the plugin use the new events
  • SpellChecker:
  • check C++ raw strings like the other strings
  • replace hardcoded character set with unicode compatible calls, improves checking accuracy in utf8 comments
  • activate OnlineSpellChecking for VHDL block comments and strings and for verilog strings
  • update hunspell to version 1.3.3 (only used on MSW)
  • update language rules for checkable styles
  • do not check spelling of doxygen keywords
  • Wizard:
  • Fix the ARM wizard to show a proper list of compilers
  • Make it possible to create target wizard, without the need to add BuildTarget panel
  • Make it possible to get or set the value from a wxComboBox
  • Modify the ComboBox APIs to work with wxChoice or similar controls
  • Add API for filling a wxChoice control with filtered compilers list (removed some code duplication, too)
  • OpenCV project wizard improvement for MinGW target, it first try to detect whether a release version of OpenCV library exists, if not, try detecting whether a debug version exists.
  • ClassWizard:
  • applied patch by scarphin to fix & issue with member vars in new class wizard
  • applied patch by (?): Support for "scope" in class wizard
  • class wizard: only add include dir, if it is not empty
  • ToolsPlus:
  • Fixed memory leak as described here: http://forums.codeblocks.org/index.php/topic,20221.0.html
  • Move cursor after typing text in the tools output window
  • Add context menu on output pages and add entry to "close inactive tool pages".
  • Use the same font as for editors in the toolsplus output window
  • Improve input handling in the output window by only passing through regular key strokes (arrow keys etc will let the user navigate the window instead of sending messages to the running process)
  • DoxyBlocks:
  • Use ConfigManager do determine the config-folder.
  • Strip default menu keybindings that conflict core C::B shortcuts
  • Browse Tracker:
  • Remove debugging msg from release target.
  • Fix incorrect scintilla margin marker usage
  • Better resolution of Jump line recording
  • Add modifed user contrib tool bar
  • SmartIndent:
  • HDL: do correctly unindent architecture", "entity" and "configuration".
  • HDL: tidy up formating when CC finished
  • HDL: do correctly unindent "end function" and "end procedure".
  • Unindent "end block" correctly in VHDL mode
  • base next line indentation on the last non-empty line
  • handle (some) smart indentation for embedded languages (PHP, JavaScript, etc) within HTML
  • CppCheck:
  • Add support for macros in the path of the cppcheck executable, clean up the code a bit
  • Fix the text control in the config panel
  • Add support for #defines
  • NassiShneiderman:
  • Fix issue #124 Match diagram colors to editor colors Edit
  • enhancement of the Cparser (Fixes issue #125)
  • Add a menu entry to allow creating diagrams from selected text (Fixes issue #126)
  • EditorTweaks:
  • Add menu item for controlling if the whitespace characters should be visible
  • New option to enable laptop friendly keyboard shortcuts
  • Aligner: Add shortcut to repeat the last align operation
  • Other Plugins:
  • EnvVar: Make the fix from r10309 be conditionally compiled only for non wxMSW2.8 builds
  • EnvVar: Apply the same fix as the one for compiler variables to the env var settings
  • Todo plugin: fix SourceForge Ticket #96, ToDo List plugin does not ignore */ if it is on the same line.
  • todo plugin: disable refresh the list on double click. When user double click on a todo list item, it will move the caret to the source location, since the source file is already parsed, we don't need to parse it again.
  • cb_koders: Fix for non working ohloh search (ohloh was koders is now openhub/BlackDuck)
  • Thread Search Plugin: fix thread safety issue in ThreadSearchEvent class.
  • IncrementalSearch-plugin: hide border of internal text-control and place it more left in the combo-control; layout was ugly on windows
  • OccurrencesHighlighting: small fix in #ifndef-ed code
  • CodeSnippets - Remove edit & search CB duplicate code. Get back to a sane implementation.
  • Updated 3rd party libs:
  • pumped zlib lib to v1.2.8 to address security issues
  • pumped bzib2 lib to v1.0.6 to address security issues
  • pumped (wx)Scinitlla to v3.53, finally bringing the "HEX" lexers to the core
  • astyle update to v2.0.6pre (required due to license change)
  • pumped character encoding detection to recent Mozilla releases
  • hunspell lib: Update to v1.3.3 for security fixes and to fix crash with Korean keyboard
  • Targeting wxWidgets 3.0 and 64 bit builds:
  • wx3.0: Fix "Fit toolbars" and "Optimize toolbars".
  • wx30: Hopefully fix the capture mouse assert once and forever (ticket #248)
  • wx30: Fix assert for calling EndModal twice in the compiler flags dialog
  • scintilla: Fix issue #231 - don't allocate new ids every time a timer is created or for every editor
  • wx30: Fix assertion when using arrow keys in a cbTreeCtrl
  • wx30: Fix an assert when the project is modified externally and the user clicks on an editor (fixes issue #186)
  • compiler: Fix wx30 asserts when trying to execute empty make commands (fixes issue #219)
  • wx30: Fix issue #221 - don't try to access deleted notebook pages
  • wx30: Fix an assert in the CPU registers dialog
  • wx28: Fix assert that the parent menu parameter is NULL
  • do not use wxALIGN_NOT, because it can not be parsed by xrc-handler of wxWidgets unfortunately.
  • KeyBinder - Incorporate wx3.0 negative menu id's. Old key definitions from wx2.x cannot be transfered to wx3.x.
  • DragScroll - Avoid SIGFPE in wx3.0 mouseWheel event
  • wx3: Re-implement the wxArrayString::Item and wxColour::IsOk in the squirrel bindings (fixes ticket #194)
  • wx3: Fix another assert when deleting the last target in the Project -> Properties dialog
  • wx3: Fix an assert in ThreadSearch when calling EnsureVisible and the previous results are cleared
  • wx3: Fix issue #185: Assertion in popup menu
  • wx3: Fix an assert and possible crash when deleting targets from a project.
  • wx3: Fix an out-of-bounds assert when there are no files in the list
  • Temporary (?) remove wxTreeList from wxContribItems and wxSmithContribItems for wx30-builds to avoid a a name conflict, because a trelistctrl is part of wx >= 2.9.3
  • wx3: Fix assertion because of wrong types passed to the printf like wxString::Format
  • wx3: Fix assert in the code that shows the include file completion
  • wx3: Fix assert when opening the Open file list panel
  • wx3: Alignment fixes to avoid asserts and broken layout
  • SpellChecker-plugin: wx3 fix warning assert because of incorrect iCCP-color
  • KeybinderPlugin: fix wx30 assert when calling wxString::Last on empty string
  • Add dummy editor to watchesdialog to fix assert in wx3.0
  • Fix warnings about deprecated font-enums with wx3.1
  • wx30: occurrence-highlight: Fix crash when adding the selection to the list of permanently highlighted string
  • wx30: Fix a crash, because of wrong usage of wxPaintDC in non-EVT_PAINT handler
  • Misc:
  • assign CRTL+P to the "Print" command by default (why wasn't this the case in the first place?!)
  • fixed serious bug #249 Custom build commands broken by nonsensical quotes (macros handling)
  • fixed several further candidates for the same bug in other file macros
  • applied patch #147 'Add file(s)' doesn't account for all generated files for all target's compilers by scarphin
  • new version of crash handler (exchndl): more resiliency against truncated PE files and log message when loading symbols
  • SDK: add many DLLIMPORT or EVTIMPORT decorations for class definition and function declarations.
  • cbAuiNotebook: only save tab-layout of the files belonging to the project in a project-layout file; save all tabs in a workspace-layout file (as before)
  • cpProject: do not try to load non existing files; should fix issue with automagically split editors, if some source-files do not exist, but have fileOpen set to true.
  • editor: Make it possible to override the whitespace markers colour
  • ui: Limit the vertical resizing of the EditBreakpoint dialog
  • ui: Make 'Project dependencies' and 'About plugin' dialogs to fit their content
  • SDK: Add two new events that are fired when the workspace is closed
  • unix: Add Generic Name in the Desktop file (fixes ticket #200)
  • SRC: fix tickets #207 Codeblocks crashes when right click toolbars.
  • fixed issue as described here: http://forums.codeblocks.org/index.php/topic,20459.0.html
  • support for windows 10
  • ui: Better multi monitor support for non windows system (rework the code to use wxDisplay instead of native APIs)
  • editors: Make 'Close all' and 'Close all except' context menu commands to work a bit better when there are multiple tab controls
  • scripting: Expose wxArrayString::SetItem method, so people can modify the contents of a wxArrayString
  • scripting: Add initial implementation of regression testing of the scripting bindings
  • Lexer: add lexer configuration for Google Protocol Buffer definitions
  • editor: Display just the name of the file by default in the editor's notebook
  • Lexer: highlight C++ raw strings like the other strings
  • EditPairDlg: Make sure it is impossible to enter invalid values for keys
  • build_options: Make it possible to delete any compiler variable (fixes ticket #161)
  • watches: Detect if the OnPropertySelected is called for the unselected property This is a recent change in wxtrunk and it causes assertions and probably crashes).
  • reverse behaviour on CTRL+mouse wheel to be consistent with other major apps and wx trunk, see here: https://sourceforge.net/p/codeblocks/tickets/21
  • context menu search (CTRL + right click in editor): removed obsolete google code search, added StackOverflow and CodeProject search
  • Addr2Line: support for 64 bit crash logs -> keep in mind to also use a 64bit addr2line util (from 64bit GCC/MinGW compiler) in that case
  • final and override back in the lexer for colorcoding
  • introduced new API to cbProject/cbTarget: ReplaceXXX[Option/Dir] which replaces an option w/o changing the order of the options list
  • editor: applied (modified) version of patch https://sourceforge.net/p/codeblocks/tickets/155/
  • re-organised editor settings to make the grouping more logical
  • issue at least a warning if th wizard could not load an XRC resource file
  • Don't open file passed on a command line more than once (fixes ticket #133)
  • Addr2Line: fixed that path to "addr2line" command is changed with replace operation (in case both, MinGW and the devel folder share one root)
  • script_plugin: Fix creating multiple menus from a script plugin.
  • avoid conflicts in portable mode, if user datapath and global datapath are in the same folder;
  • Updated C++ lexer keywords for more correctness
  • Linux: Use standard-conform paths for config- and data-folders.
  • Do not use data_path_global for user-data when C::B starts in portable mode.
  • Fix assert failure clicking "Double click on tab..." environment option (wrong type given to XRCCTRL)
  • Better (?) merge of panes, if multiple projects are loaded, that are not in a workspace;
  • search: prevent lag/freeze if search logs a match contained on a long (1000+ chars) line
  • wxScintilla control: fix the caret blink issue, see http://sourceforge.net/p/codeblocks/tickets/92
  • Log version information at startup, so users can see what version are they trying to run even if there is a crash before the ui shows up
  • editor: Add menu commands for searching the selected text without opening the find-replace dialog. Fix for ticket #72
  • lexer: added BibTex lexer configuration files
  • fix an issue with the new editorpane-layout saving/restoring, where the layout was not recreated, when the default workspace was automatically opened on application startup.
  • improve command line handling so plugins can receive commands from the command line
  • Add versioning to project and workspace layout files.
  • Do not save read-only files. Use file-attributes of original-file while saving.
  • editor: When setting the read-only icon, check also whether an editor has the read-only flag set internally.
  • editor: Mark editor tabs of readonly files with an icon
  • make the check for externally modified files configurable, useful for slow network shares (default is on)
  • Save notebook layout in project- and workspace-layout files (and load it from there).
  • cbEditor: url detection: format regex to improve readability (no functional change), strip trailing periods and commas from detected url
  • IncrementalSelectListDlg: pull filename prefix matches to the top - for example, "sty" puts "Style.cxx" above "cbstyledtextctrl.h"
  • added registry lexer
  • removed *.reg file extension from properties lexer
  • vhdl lexer config: differ between comments and doc comments
  • C::B: send wxEVT_SCI_CLIPBOARD_PASTE event to allow clients to change clipboard data
  • fix for bug #36 Path slashes in project file flip on save between windows and nix
  • issue a warning (info window) if the user tries to access a member of a global variable that has not been defined (GCV is defined, user-defined member not)
  • issue a warning (to debug log) if include folders evaluate to empty values due to invalid macro usage, for example
  • sdk: Add split/unslit editor events
  • scripting: Add function to convert a compiler name to compiler id in the CompilerFactory binding
  • SmartIndent: handle (some) smart indentation for embedded languages (PHP, JavaScript, etc) within HTML
  • fixed several crash candidates with EditorColourSet while hunting a crash bug
  • issue an error if creating crash log report fails under Windows
  • better resource descriptions under Windows
  • sdk: fix a bug in cbThreadPool class which is a regression of rev2480. The loop number for the function call m_semaphore->Post() should be limited by both the idle threads and the task queue's size.
  • sdk: reset the member variable cbThreadPool::m_taskAdded to false after sending the cbEVT_THREADTASK_ALLDONE event, otherwise, this variable is never set to false once it was set to true.
  • sdk: Linux, support open containing folder with file selected
  • ui: Don't switch to the project's pane in the notebook, when an editor is activated and the option to show the file in the tree is enabled (apply modified patch #3556)
  • annoying-dlg: Make it possible to specify an id different from the caption of the dialog (style fixes here and there)
  • sdk: add CoffeeScript lexer
  • sdk: add JavaScript lexer
  • cbEditor: use middle 1000 lines (instead of first 1000) as context for indent style auto-detect
  • editor: swap header/source, if nothing else worked, search for auto-generated by file
  • syntax highlight: Fix bug for Bash language, where the Scalar's background couldn't be set to default
  • ui: Modify the 'Save current perspective' dialog to offer to save to the name of the current perspective instead of the default one
  • applied fix to get rid of install plugin errors under Windows
  • new command line option --user-data-dir= to specify an alternative directory for user settings and user installed plugins
  • editor: Add keywords for ruby 1.9, this fixes the Ruby lexer
  • editor: Respect the value specified in the lexer xml for sample, use the name of the language as fallback
  • fix possible memory leaks in ProjectAddTreeNode
  • allow to clean a single object file within a project tree from project manager
  • Remove main menu accelerators for Cut, Copy, Paste and Select All because they interfere with the system default accelerators for those actions in focused widgets on Linux (and probably OSX too).
  • fixed crash for batch builds
  • lexer: add C++ doxygen keywords param[in] param[out] and param[in,out]
  • fix possible memory leak in NewFromTemplateDlg
  • applied (modified) patch #3493: Use standard (if set) when adding GCC built-in defines
  • fixed several possible NULL pointer accesses in projectmanagerui
  • ignore GIT and Mercurial folders as well when recursively adding files
  • file properties: count statistics language independantly
  • editor: recognize more stl headers as C++ for syntax highlighting
  • ui: Switch to the Projects page, during the execution of the "Show file in tree" command
  • sdk: Don't ask for saving a project twice, while closing workspace (patch #3523)
  • editor: Cancel any calltips or code-completion lists, when the users scrolls the editor

New in Code::Blocks 13.12 Rev 9501 (Jan 3, 2014)

  • General:
  • Provide a UI, where almost all color settings can be changed. Allow more colors to be customized.
  • Improve the UI for editing "Editor syntax highlight themes".
  • Improve multi monitor support for the info window popup.
  • Several bug fixed with the Global compiler variables.
  • Fix bug "Ticking any checkbox in the File properties dialog cause the file to be made read-only".
  • Allow more strings to be translated.
  • Improvements/bugfixes to the Find/Replace feature.
  • Improvements to the annoying dialog.
  • Add two more terminal presets: xfce_terminal and terminology.
  • Improvements/bugfixes for "Start here page".
  • Improvements to the editor - new commands, fixes to old commands, etc.
  • Make strip trailing blanks to preserve active line of active editor (fix bug #18845) .
  • Try to make visible all toolbars, when a toolbar is shown/hidden and add menu option to fit and optimize the toolbars.
  • Improve "swap header/source" command by adding a case-insensitive search as fallback.
  • Compiler:
  • All default compiler options (flag checkboxes, regexes, file extensions, etc) are stored in XML.
  • Optional) warning messages if multiple compiler options are unwise to use together (but still legal).
  • Automatic disabling of mutually exclusive compiler options.
  • Options to add, edit, and remove compiler flag checkboxes through the GUI.
  • Compiler options are saved back to XML if they are modified (in /CodeBlocks/compilers); the resulting files can be shared.
  • Dynamic loading of pure XML defined compilers (simple auto-detection routines available).
  • Automatically filter C and C++ exclusive flags.
  • New compiler interfaces defined for: LLVM Clang, IAR ARM, Keil C51, and IAR ICC8051.
  • Add registry based autodetection of TDM-GCC.
  • Make the gcc compiler be a bit more robust, when making static libraries.
  • Don't clear logs before run.
  • Code Completion:
  • Fix several crashes.
  • Fix several parsing bugs.
  • Add pseudo semantic highlight feature - recognises class members and styles them differently (disabled by default).
  • Don't place the calltip outside of the editor window (this should be modified to not place it outside the monitor, instead).
  • Don't place the calltip over the cursor.
  • Debugger:
  • The locals and function arguments have been reimplemented.
  • Bug fixes for parsing watches.
  • Allow the user to control which watches should be updated automatically and which shouldn't.
  • Allow breakpoints to work, when using C::B under Wine
  • Updated third party components:
  • pumped astyle lib to v2.0.4 final
  • pumped (wx)scintilla to v3.3.5
  • pumped wxPDFDoc to 0.9.4 (includes many changes related to wx29)
  • pumped underlying squirrel scripting lib from v2.2.4 to v2.2.5 (stable)
  • Plugins:
  • Abbreviations: Add support for multiple languages, fixed some bugs.
  • AStyle: Applied patch #3478: Add line breaking option to AStyle
  • DoxyBlocks: Support projects located in path with spaces or other strange characters. Bug fixes.
  • EditorTweaks: Bug fixes, add features
  • Header Fixup
  • Incremental Search: Avoid conflict in indicators. Add search history with configurable length.
  • (New) Occurrence Highlighting: Move occurrence highlighting code from cbEditor into a plugin.
  • Smart Indent: Enable on entire C-language family.
  • Spell Checker: Fixed bugs. Improve handling of missing dictionaries.
  • Thread Search: Fixed bugs. Improvements to the UI.
  • ToDo: Several improvements.

New in Code::Blocks 12.11 Build 8549 RC1 (Nov 14, 2012)

  • Resolved Fixed:
  • cbPlugin API change: replaced pure virtual functions with empty implementations, removing the necessity for every plugin to implement them, regardless of actual need.
  • SmartIndent: default brace and selection brace completion implementation for all languages (thanks to Alpha)
  • EditorTweak: bug fix - some options were not saved correctly. Also tidies up EditorTweaks config names (warning: this breaks previously set EditorTweaks settings)
  • cbplugin: fix missing return value and increase SDK version
  • applied patch #3324: Add colour selection warnings and errors in Enviroment->View (for dark schemes)
  • applied patch #3342: Honour compile priority during parallel build
  • improved sorting of project files by weight
  • applied (modified) patch #3323: Abbreviations auto-complete
  • applied patch #3250: Remove an extra item separator in right click menu of CC
  • applied (modified) patch #3356: Fix: DLL Template + win32gui dialog template for manifests
  • applied patch by dmoore/darmar to enable multiple CC to easily handle files of certain type
  • added "IsProvciderFor" API to (CC) plugins for that purpose
  • pumped (wx)Scintilla to v3.2.3
  • fixed some lexers (partially on behalf of alpha)
  • support for debugger "During startup program exited with exit code 0xABCD" abort criteria
  • CC: fixed freeze bug, described here: http://forums.codeblocks.org/index.php/topic,17046.0.html
  • adjust the size of an old window session to current display on start-up
  • raise auto-detect compiler windows so it is top-most on start-up of C::B
  • print what compilers cause auto-detection to be shone in the debug log (for reference)
  • applied patch #3355: EditorTweaks: Aligner - Auto
  • applied patch #3354: EditorTweaks: buffer caret position
  • applied patch #3359: A little patch to enable the use of windows help collections