Sunday, January 28, 2007

KDevelop 3.4 has been released

KDevelop 3.4 has been released, bringing many new features to KDE's Integrated Development Environment. The first major release in over a year closes more than 500 bugs.

KDevelop 3.4.x Features
  • Improved Qt4 support
    • Specify Qt installation dir upon project creation
    • Properly open the right designer for .ui files
    • Call the right qmake in qmake projects
    • Use Qt4 style includes
    • New Options for Qt4's QT variable in the project configuration
    • Handle Qt4 resource files in QMake Manager


  • Improved QMake Manager
    • New Parser which doesn't replace the project file contents
    • Parses and displays the Qt4 buildsystem properly
    • Scopes
      • Display Scopes as tree nodes in the Overview
      • Add/Remove all types of Scopes (simple, Function and Include's)
      • Excluding files inside a scope is much easier
      • Support for disabling subprojects inside scopes, including proper display in the GUI

    • File Handling
      • Support of relative filenames
      • Support for file paths containing variables

    • Supports Subproject that are outside of the top-project dir
    • Support for all documented and a couple of undocumented QMake Features
      • Supports SUBDIRS = somename, somename.subdir = the_real_dir
      • Supports SUBDIRS = somefile.pro

    • New and Fixed Build options
      • Run qmake recursively
      • Dist-Clean
      • Build File



  • Improved debugger
    • Brand-new memory viewer
    • Project is automatically rebuilt with starting debugger
    • Variables widget
      • Reliably work in presence of shadowed variables
      • New "format" menu, supporting extra "binary" and "character" formats, with keyboard shortcuts for each format.
      • Keyboard shortcut for deleting watches.

    • Stack widget
      • The content is now split in columns
      • Stack frames are fetched incrementally, allowing to debug programs stuck in infinite recursion.

    • Breakpoints improvements
      • Breakpoint types renamed for clarity
      • Watchpoints are now always set on address, not expression
      • On watchpoint hit, a message box is shown
      • Breakpoint conditions are correctly reloaded from session file
      • Breakpoints added manually are shown in breakpoint list too
      • Address breakpoints now work

    • GDB output window allows to filter out "internal" commands.
    • Face lift for "attach" dialog. Now it has search line.
    • Fixes
      • Never disable the "Interrupt" action
      • Specify gdb location using full executable name, not just directory

    • Uses GDB MI interface for faster and more robust operation.


  • Improved Ctags support
    • It is now possible to have multiple tag files active at the same time, making it possible to do lightning quick searches in external sources.


  • Improved UI
    • Simple IDEAl UI mode is now the default
      • It's faster and has less bugs
      • Takes less screen estate
      • The viewspace can be split, allowing KDevelop to show files side by side.
      • IntelliJ IDEA - alike toolview keyboard navigation (with <alt+1>, <alt+2>, etc.)
      • Better keyboard navigation and focusing



  • Improved Code Reformatting
    • Less bugs (updated to AStyle 1.19)
    • Support for all AStyle options
    • Improved option settings dialog
    • Global and per project settings
    • Format multiple files at once


  • C++ Support
    • switch header/implementation
      • works inside the single file
      • works correctly with methods with typedef'ed return values
      • works with constant functions
      • aware of using directives when locating the functions from the namespace

    • Persistant Class Store (Code Completion databases)
      • KDE class importer correctly finds kdelibs location
      • Qt4 class importer added
      • autodetected paths now overrideable

    • code hinting
      • status bar shows the type of the expression under the cursor

    • c++ parser
      • Modify the parser to extract comments from the code, attach them to corresponding items, and store them into the AST
      • Fix a case where the cpp parser suddenly ate all RAM when facing macro-heavy files

    • code model
      • make the code-model and repository store more information like templates and comments, and provide them.
      • the code-model now completely works with nested classes that are forward-declared in one file, and completely declared in another(file-groups are managed now, and code-model-items that are physically from one file, can now be attached to another, so some search-functions had to be improved).

    • code completion
      • is much more reliable
      • was rewritten in big parts
      • works within template-classes
      • works within functions of classes that are imported by using-directives
      • can parse much more complex expressions and can easily be extended to understand additional operators(using an abstract operator-class)
      • supports class-templates, function-templates, and even implicit template-instantiation for function-templates
      • evaluates all types in the completion-entry-list and shows their template-processed(real) types
      • calltips and the completion-list show the corresponding comments
      • the completion-entry-list now shows the members sorted by their access-rights, and shows a note behind members that are protected/private
      • Fixes the bug of KDevelop crashing while completing a class which has itself as base-class and a few other little bugs

    • new context-menus that evaluate the expression under the cursor and allow to browse the code and the code-model using all types and variables involved
    • new class wizard
      • bug fixes
      • creation of headers only



  • Class View and Navigator
    • Add function-name-highlighting to the class-view and navigator
    • Make the navigator provide an own KCompletion so it is possible to write function-names without scope and get them completed
    • Restore ClassView state after refresh. The ClassView will now no longer close after each successful build


  • QuickOpen
    • Arbitrary parts of the scope can now be used as a filter while searching for classes or functions
    • Quick open class has an additional selection dialog for cases when more than one class with given name exist


  • Ruby Support
    • Rails application template
    • The parser recognizes classes in the modules
    • Use irb as a shell
    • Fix documentation TOC links so they work correctly for Rails and QtRuby
    • Use the Run menu option to start WEBrick.
    • the parser
      • recognizes "self.method"
      • does not loop in certain cases



  • PHP Support
    • New PHP Parser / code competition
    • Fix bugs in the php support language that cause some crashes


  • Konsole
    • Does not syncs with the active document dir anymore


  • Grep (Find in Files)
    • Define more filetypes (incl. ruby) to search within
    • allow pattern to be a regular expression


  • Outputviews
    • Support for Intel Fortran Compiler and Portland Group's PGI Fortran compiler (pgf90/pgf95)


  • Application Wizard
    • Uses utf8 for created files - no encoding problems anymore


  • Valgrind integration
    • Use the environment variables as set in the run options


  • Misc
    • Add toolbar and menu entry for "Goto Last Edit Position"
    • Improved support for encodings
      • KDevelop will now obey the selected encoding in the File Open dialog
      • The OpenWith plugin now offers all available encodings in "Open As"
      • The encoding for each open file is saved with the session, and will be used to open that file the next time the project is loaded
      • Default encoding can be set per project in the Project Options - this will be the default when opening a file
      • File Open encoding will default to the open project's default

    • Moved plugin selection dialog out of project setting dialog and into main menu Settings menu and made it profile-based
    • Use profile engine to specify the default plugin set for a freshly created or imported project
    • Honor the UI Designer embedding setting



Packages are available for Kubuntu and openSUSE with unofficial builds for several others on the download page

No comments:

Post a Comment