The open source, cross platform, free C, C++ and Fortran IDE

Code::Blocks

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe

Code::Blocks 16.0.1

  -  32.89 MB  -  Open Source
  • Latest Version

    Code::Blocks 20.03

  • Operating System

    Windows XP / Vista / Windows 7 / Windows 8 / Windows 10

  • User Rating

    Click to vote
  • Author / Product

    Yiannis / External Link

  • Filename

    codeblocks-16.01-setup.exe

  • MD5 Checksum

    68c0930c16c1c4418bcc82daf9f01d47

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system. Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Code::Blocks 16.0.1.


For those interested in downloading the most recent release of Code::Blocks or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Code::Blocks 16.0.1 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

What's new in this version:

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. and 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
- 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
- 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.
- 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
- 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
- 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
- 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

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe