codelite 2.0 (build 3365) is officially released.
This release is a major release which introduces many major changes improvements in various areas of codelite:
- Windows packages now includes GCC4.4.0 + GDB7.0 and optionally wxWidgets2.8.10 compiled with GCC4.4.0
- Code Compeltion - 'External Symbols' is no longer needed, CC is faster and smarter
- Debugger - Major parts of the debugger plugin have been re-written to provide one of the best GDB front end available
- UI: the traditional 'Output Pane' has been replaced with a slicker look
- UI: use the 'Finder' to locate various resources/classes/structs in the workspace from a single search bar
- Local Preferences - set preferences per workspace / project
- Build System: use pre-compiled headers in your code to reduce compilation time
- Build System: add N regular expressions to allow codelite to detect more errors (e.g. link errors)
- New Welcome Page
- Many bug fixes
The complete change log (minus non interesting commit logs):
Enjoy!- Fixed crash: Remove Virtual Directory hangs on "" BUG#2847625
- cppcheck tab now uses larger font on Mac
- Better typedef/templates subtituations (it is done until there are no either matches)
- Fixed: inserting } right after typing { will insert an additional } and will indent incorrectly
- CppCheck: when processing is done, the a "Done" message is added
- CppCheck: closing workspace will now clear the view
- Debugger: hitting ENTER in the memory pane address text field, will now re-evaluate the expression
- Editor: Deleting an opening brace of type '[' or '(' will delete the matched brace as well. This is true only if the matched brace was inserted by codelite, in addition, you must have 'Auto complete matched braces' option set to ON (from settings -> editor)
- auto-complete-braces: codelite will add automatically add close brace ')' only if the next character is a whitespace one
- qmake plugin: if the .ui has a file association with qt's designer, it will be opened by the designer
- Toggle all panes now restores the panes to the exact size and location
- replaced the output view with a new style control
- cppheck: user will get a message box notification incase no errors were detected
- Icons update
- ASCII Viewer: it will now only refresh the view if the view is visible
- updated Gizmos plugin toolbar and icons
- Updated CPP lexer with the correct description of the various comment styles (Bug#2866345)
- Added 'batch' files lexer
- External Tools: each tool now also add a new menu entry under the 'Plugins | External tools' menu
- Changed virtual folders context menu entries: Add new item -> add new file and Add Existing Item -> Add an Existing File
- Copy / Select all is now feasilble from the output pane tabs: build, errors, find results, replace results, output and debug
- Copy/Paste/Select All now works for the 'Quick Find' bar (aka "Incremental search")
- Added new 'Stop search' button in the 'Find Results' tab to allow user to quickly stop the current search
- Fixed: Importing files into a project from directory will no longer remove the tags from the database of the imported project
- Fixed: codelite will no longer crash when double clicking an entry in the 'call stack' tab which does not have line/file information
- Changed the 'Welcome Page' layout
- ReventlyOpenedWorkspaec/Files: if the file does not exist, it will be removed from the list
- Fixed: FR#2864874: Recent workspace
- Changed the 'quick find' text control to be rich text2, this allows the user to delete words by holding the CTRL + BACK key (this is now feasbile with the regular text control on Windows)
- Added new plugin events: wxEVT_SETTINGS_CHANGED whcih is fired when the editor settings dialog is dismissed with OK or Apply was pressed, wxEVT_EDITOR_CLICKED fired when user clicks inside editor with the mouse l-button (this helps the plugin to detect that the editor gain focus by user action)
- Added new 'Quick Finder' to the 'Output View Control Bar' which allows quick search for various items through the IDE (classes/structs/workspace file/functions/typedef/macros/unions) - the Quick Finder is enabled disabled through the new 'Docking Windows' options from Settings | Editor | Docking Windows
- New: User can configure to dismiss the Output Pane when he clicks inside the Editor (configurable through: Settings | Editor | Docking Windows)
- Enabling the 'Highlight word' from the toolbar, while there is an active selection, that selection will he hightlighted in the current editor
- QuickFinder: Added toolbar button to quickly display it (default accelerator Ctrl-Shift-Y)
- QuickFinder: The quick finder can be dismissed by hitting ESC key while it has the focus
- QuickFinder: The quick finder can be toggled from the little drop down arrow on the left side of the ooutput view control bar
- Fixed: Subversion: once a conflict is detected, codelite will keep prompting for conflict state after each SVN operation
- changed the 'show quick finder' toolbar entry to be toggled tool
- CScope: Applied patch to allow the following:
. recreate the symbols database on demand
. re-use the database so the search is *much* faster
. added option to 'find this global definition' (original patch by Stefan Roesch)
- Added a try/catch around offending code in teh debugger plugin which on some rare cases throws C++ exception and terminates the application
- Subversion: show status will no longer will check for the .svn directory, but instead will let the svn commanline do the work for it
- Improved wxWidgets project wizard which includes support for various options and settings - patch by Michal (aka Marfi)
- set the default key accelerator for QuickFinder to Ctrl-Y (configurable from Settings | Keyboard Shortcuts)
- CScope tab now selects teh matched results (similar to find in files)
- QuickFinder: common edit keyboard shortcuts now works for it (Ctrl-X/C/V/A)
- updated the update.bat script to copy gizmos files to the correct path
- Quick Finder : 'Select Symbol' dialog now has a standard 'Ok/Cacnel' buttons
- Quick Finder : (MAC) Fixed: hitting ENTER now opens the selected item (when focus is on 'OK" button)
- Quick Finder : (MAC) Fixed: when the text control of the quick finder gains the focus the color is set back to WINDOWTEXT color
- Changed the fold margin width to 12pixels
- patched various scripts to support running them with multi-lang svn shell
- Fixed: patch for commandlist serialisation (debugger) by DavidGH
- Fixed: 'recently opened workspace/files' the order of the display is now correct (DavidGH)
- All message boxes launched from the main frame are now parented to it, this will prevent them to appear behind the main frame (DavidGH)
- CScope: Applied patch to allow cscope plugin to auto-locate the cscope exe, in addition a settings options (Plugins | CScope | Settings) to allow user to specify the path to cscope
- Simplified the cscope detection code
- CScope: when double clicking an entry in the cscope tab, codelite will now properly select it in the editor (there were some cases where the entire line was selected rather than the searched word)
- code refactored in the CompilerRequest class
- Fixed: missing 'order by' in the TagsDatabase::GeTagsByKindAndFile method
- Fixed: when clicking 'save all' there are cases where codelite sets a new active editor instead of the current active one
- Applied patch by DavidGH to save commandlist of the debugger
- fixed: incase codelite terminates, codelite_indexer will go down as well
- Fixed: code-completion now works for variables with right side const (const char *const variable;)
- Fixed minor regression in CC from last commit
- incase codelite terminated un-expectedly, codelite_cppcheck will exit as well
- Fixed: Project plugins' data will no longer append empty line at the end
- added 'ifndef' to context completion keywords
- Fixed: a severe 'Page Fault' error done by codelite_indexer / codelite_cppcheck due to recent 'Is Alive' changes. This error could cause the system to ran out of virtual memory size
- Added UI to the 'Tags' options dialog to support adding parser include paths
- removed all 'external tags' code
- removed SymbolView plugin from the main workspace
- codelite now uses a single database for symbols
- TagEntry is now a POJO class with no knowledge of the underlying database
- Removed un-needed file
- Fixed: removed unneeded free which caused crash on Linux
- Minor CC performance improvments
- fixed assertion on debug build when using the setters/getters dialog
- Improved IsTypeAndScopeExist and IsTypeAndScopeContainer methods by 300%
- Improved TagsStorageSQLite::GetTagsBYNameAndParent() by 300% faster
- code-completion is now significantly faster (times x4)
- Code cleanup: removed un-needed files and parts of code which are no longer used
- Fixed assertion on debug build when dismissing the 'quick outline' dialog with keyboard
- Various UI changes: CC box now uses the tooltip colours, changed the tab look to be less fency and more suitable to various themes
- the parse thread now will also parse system include files when parsing a workspace
- Fixed: custom notebook will hide the tab container when there are no tabs visible
- Fixed: event conflict IDs
- fixed: in some cases the number of tags were not consisted in the database due to codelite_indexer restart
- added missing include <cstdio>
- codelite will now autoamtically prompt the user when the databse was truncated due to schema version changes and will offer to retagg the workspace
- codelite will add the default WX/MinGW paths to the parser search paths (only of the WX/MinGW were installed using the codelite-WX-mingw package)
- Minor performance improvements in CC
- fixed all packaging scripts to remove obsolete files
- reduced the time to collect the files that are not part of the workspaec and needs parsing to 0-1 seconds (on a project with over 1K files)
- Moved the file parsing / crawling to be part of the main thread and intergrated with the workspace files
- added *.tcc to the list of valid C files
- added new class which allows codelite to detect common include paths
- changed to commit interval to per 50 files, this increases speed of the parsing process
- increased plugin API version to 200
- Added a 'Parser include paths' dialog. codelite will now detect common paths and will suggest to add to them the parser's include path (this is done in startup)
- Fixed Include Path locator on Linux
- improved usability of the new tags settings dialog: when a path is removed from the parser, codelite will remove their tags as well frmo the database. In addition, when adding a path, codelite will trigger an incermental retagging of the workspace
- changed tab's radius to be '0' on GTK since there is a problem with drawing rounded-rectangle on GTK with ubuntu 9.04
- Added two more pre-processors to the default pre-processor list of codelite parser
- added max query results limit to 5000
- recreate database now attempts to deelte it first otherwise it wll drop the tables and re-create them
- Added option to add an exclude-directory for the 'include file' locator from the Tags Settings dialog
- Added a status message when the item found for code-completion exceeds the maximum allowed (defaulted to 5000)
- When breakpoint hit, and it is inside a folded code, codelite will un-fold the code (DavidGH)
- added option to disable the 'hide-output-pane-view-when-editor-clicked' if the displayed tab is the 'Debug' (DavidGH)
- when adding new class to a 'src' directory, the header file will be placed into the 'include' directory (DavidGH)
- fixed output parsing for the debugger to work properly with gdb7.0 (DavidGH)
- Drag and drop item in the file view now works fine when the source is dropped on top of a file in the target virtual folder (DavidGH)
- Debugger: if gdb fails to set a breakpoint (due to various reasons) a new button will show up in the 'Breakpoints' tab, 'Set Pending' by clicking it, codelite will interrupt the debuggee and re-apply it. If it succeeded, the button will dissappear and a the breakpoint will appear in the editor. Otherwise, no marker is set and the button remains
- some typo fixes
- updated gdb script to limit the number of items displayed in vector to 10
- Fixed: the code-completion box will hide iteself when a single selection entry is made
- (Mac only) inactive tabs are made darker
- Added 'Version' attribute to the codelite.xml this wll allow codelite to override the settings of the user based on differences in major version
- Added support for multi-selection in the 'File View' - user can now DragNDrop multiple items, delete multiple items and other functionalities (DavidGH)
- Debugger logging can now be turned on and off while debug session is ON (DavidGH)
- fixed: codelite will no longer append trailing whitepspaces to CDATA content (this will fix the annoying trailing NEWLINE added to .project files, as well as the debugger.xml settings)
- Fixed regression: Link Editor now works
- added some checks in the code to avoid crashing scenrios
- in some cases the 'excluded directories' were not ignored as they should have
- include file locator will now properly locate wxwidgets
- added missing includes
- Windows: Moved codelite to use GCC4.4.0
- All windows packages (which includes MinGW), will now bundle MinGW4.4.0 (gcc4.4.0)
- Fixed assertion on Winodws when used the 'Go Home/Collapse All' toolbar buttons of the workspace tab (due to recent move to multiple selection tree)
- Fixed: possible crash when codelite exits (CppCheck tried to restart after the plugin was deleted)
- Add new menu entry to the 'Workspace' menu: retag workspace 'full' and 'quick'. Full means that the codelite will drop the database tables before the retag process starts, while quick mean that codelite will perform incremental tagging which will retag only files which were modified since they were last retagged
- Added new option to the 'File Explorer' tree: Tags > Add this directory to the parser exclude / include path
- codelite will not add an already existing path from the file explorer tree to the parser exclude/or search path
- Added close button to the 'output view control' search bar
- Applied patch to avoid empty message box in some scenarios
- Fixed compiler warning
- upgarded to cppcheck 1.38
- changed the 'Settings > Editor' event ID to wxID_PREFERENCES, this will make sure that this menu item will appear under the correct place under wxMac
- Debugger: limited the string output to 200 chars (configurable from Debugger Settings dialog)
- added calls to 'wxTheApp->Yiedl()' when displaying wxBusyInfo dialog
- removed custom splash screen and moved to wx native one
- Mac default settings are now aligned with Unix/Linux ones
- added new 'async process class' which will eventually replace the old 'cl_process' code
- Changed the interface to the debugger so the 'IDebuggerObserver' will only exposes single debuggerUpdate() method which accepts DebuggerEvent
- Fixed: in some cases codelite starts as small application (when not shutdown properly)
- Plugins will no longer link against wxpropgrid
- GDB plugin no longer uses 'synchronous' commands, only ASYNC commands
- Some code cleanup in the gdb plugin
- Adjusted debugger to handle wide char strings better (gdb 7.0)
- Debugger: codelite will try to evaluate the expression under the cursor when attempting to show its content, (e.g. hovering var_name in clss.var_name, codelite will evaluate clss.var_name)
- Debugger: codelite will mark the code he is requesting tip from the debugger with little grey rectangle around the text
- Debugger: filtered some spam messages from gdb7.0
- added file icon association on Mac
- debugger: added support for variable objects
- Debugger: Updated code to use new 'Display Variable' dialog
- Increased dwell interval to 500 from 250 ms
- removed errors printed to stderr
- added caption to the quick watch dialog on all OSs
- Debugger: new tooltip is now positioned at the cursor
- Updated default commands for various types (wxString, wstring, string & qstring)
- New tip now shows up at the cursor
- Added code to allow codelite to perform upgrade to the debugger/plugins XML settings
- AsciiViewer will now de-reference char*/wchar_t*/wxChar*/QChar*
- Added new option to the debugger output parser to include whitespace in the tokens, this allows using the parser as 'prettifier' for gdb output
- AsciiViewer now pretifies gdb output for wide chars
- Debugger: new quick watch dialog now sets the focus to the tree control by default
- debugger: updated parser grammar to support Mac's GDB output
- Fixed mac issues with new tooltip not displaying properly
- Changed the default background colour of the debugger tooltip to use the default colour
- Debugger: 'Watches' tables now uses the new 'Display Variable' dialog
- Debugger: watches window now uses the same 'GDB MI' clean up code to make the output 'prettier'
- Removed flicker when moving the mouse near open/close brace OR when highlight word feature is ON under GTK with Ubuntu9.10
- Debugger: d-clicking an 'expandable' entry in the 'watches' table will now places the display variable dialog in the centre of the screen
- Debugger: the new tooltip now also expands when a label is selected (no need for double click)
- Debugger: Removed faked nodes ('public', 'protected' and 'private') from the 'Display Variable' dialog/tip
- Debugger: 'Locals' now uses table instead of tree. This new method is much more stable and accurtate than the previous one used. d-clicking on an item, will automatically show the 'display variable' dialog with the item de-referenced
- Debugger: New 'locals' view now also displays the function arguments
- Debugger: avoid spamming 'Continuing..' in the debugger tab
- Debugger: Locals view: Modified items are marked in 'Red'
- Debugger: grammar changed to match Mac syntax for locals output
- Incrememntal search: holding shift while hitting ENTER, will search backward
- Applied patch to load workspace tags faster incase all options are selected (basic_sf)
- Debugger: UI changes to the Debugger Settings dialog
- Debugger: Added new option in the 'Locals' view to select betwee click/double-click for exploring selected entries
- Fixed: Debugger warning on .gdbinit (linux)
- Fixed: desktop icon now has exe permission
- Changed the way the debugger plugin accepts its input from the gdb executable to use reader thread in the background
- added some additional logging info to the debugger
- FileView multiple selection is now optional and configurable from the 'Workspace' tab toolbar as toggle button
- Fixed: File View: right click menu (context menu) now also makes sure that the item being right-clicked is in focus
- rmeoved un-needed files
- import files from directory: it now uses a new control which allows to select directories, it also remembers the last import path between sessions
- fixed crash when using wx2.9 and selecting item in the tree
- Fixed: function calltip now works properly for objects allocated on the stack (e.g. MyClass cls( <-- constructor calltip will now show here)
- Fixed: codelite will not try to find function tip for C++ keywords which followed by '(' (open brace)
- Fixed: casting were badly handled in some scenarios by the code completion
- New: added the ability to save/load group of tabs on demand via the 'File' menu
- New: editor perfernces can now be set per project/workspace level. By default, the preferences will be taken from the project level, if non exist, they will be taken from the workspace level, if non exist the global level (i.e. from what the user set at Settings -> Editor)
- Renamed the 'Settings -> Editor' menu entry to 'Settings -> Global Editor Preferences' (dialog title was modified as well)
- Wrapped the managed build commands with the platform shell, this was done to allow running several commands with the '&&' operand. As a result, codelite now runs the 'PreBuild', 'PrePreBuild' and the actual command each on different command this assures us that the pre-build commands are running and completed *before* the build started even when using multi-core (-jX) option of the GNU Make
- Folded lines are no longer marked with black underline (FIF, Build, Tasks)
- Fixed: BUG#2896487: Reloading workspace will now save the current open tabs before reloading it
- codelite now supports N regular expressions for detecting compiler warnings / errors (patch by Jeremie aka jfouche)
- Debugger: Locals view will now auto-expand variables which are defined under the 'PreDefined' types
- Build system: USER Settings for the next version WILL BE REPLACED BY CODELITE due to internal changes
- Changed the layout of the 'Debugger Settings' dialog
- 'Enable Debugger Logging' is now available from the debugger tab from the output pane
- Debugger: add new option to set the number of elements GDB will print for arrays (including strings)
- Debugger: evaluating items using the 'PreDefined Types' under the 'Locals' tab is now configurable from the 'Debugger settings' dialog
- Adjusted codelite version to 2.0.XXXX
- Copy/Paste/Select All keyboard shortcut + menu / toolbar accelerators now works from the 'Output Pane' tabs + ASCII Viewer window
- Removed limitation on 'keyboard shortcuts' it can now accepts all the keys on the keyboard (BUG#2897477)
- wxMac now also uses the custom output view control bar button rather than the default 'Toggle Buttons'
- removed line numbers from Debugger tab
- Fixed configure so it will no longer allow plugins to incude files from LiteEditor directory
- Build System: Added support for pre-compiled header from the 'Compiler' tab in the project settings. Simply set the name of the pre-compiled header and codelite will do the
rest
- Project Settings: Added new 'Browse Button' to the 'Select program to debug / run' field
- Fixed minor compilation error
- Local workspace/project preferences are now kept on a local copy of the workspace <WorksapceName>.workspace.<User>
Eran