kde Syndicate content

» KDevelop 4.1 Beta 2 will be omitted, stay tuned for Beta 3

Tue, 09/21/2010 - 14:42

Hey everyone.

I was on a spontaneous trip last week and missed the Beta 2 release. Apol took over but my instructions where not clear enough and the packages where totally screwed up (the tags pointed to code in master, no the 4.1 branch).

I’m in the process of fixing things up and will create tarballs for Beta 3 and announce it to packagers later today.

Lets hope the actual release for users out there can happen later this week.

Sorry again, bye.

» Highlighted Backtraces on BKO

Mon, 09/20/2010 - 19:05

Hello everyone, the “I can syntax highlight everything” guy speaking again :)

Yeah, I couldn’t sleep well after I put colors on Dr Konqi. I also did the same for Kate, if you did not notice it. There is a new GDB Backtrace syntax highlighting file for it, giving you the same pleasant experience you are now used to from Dr Konqi. Awesome.

But well, lets admit it: What use are these two for bug triaging? Visit any crash report on bko and you are left to plain old black-on-white… Stone-age stuff, lets put it on LSD, shall we not? I propose: The GDB Backtrace highlighter GreaseMonkey userscript!

Bug reports, feedback, pizza & beer all welcome :)

PS: How is GreaseMonkey for Konqueror coming along, anyone working on that? Does someone know whether Chrome or Opera could be made to work with this?

PPS: We could also install this script directly on BKO, but I fear it might be a tad bit slow, esp. for huge backtraces.

PPPS: Attached backtraces should be setup to be opened in Kate :)

» Beware of KDevelop Master and KDELibs 4.5.1 or lower

Wed, 09/08/2010 - 17:57

Hey all,

please don’t use KDevelop master with KDELibs 4.5.1 or lower. Katepart in that version misses a crucial commit that makes KDevelop crash. It is fixed for 4.5.2. In the meantime you have on of the following options:

  1. Build kate from sources
  2. Switch to the stable branches, i.e.: KDevplatform 1.1, KDevelop 4.1, PHP 1.1, …
  3. wait for the 4.5.2 release

bye

» KDevelop 4.0.2 and KDevelop 4.1 Beta 1 released

Sun, 09/05/2010 - 19:13

Good news everyone, this time in a double feature!

I’m happy to announce the availability of two new additions to the KDevelop release family:

KDevelop 4.0.2 stable release

Lets begin with the boring part: We have released KDevelop 4.0.2, together with KDevplatform and the PHP plugins. You can find the sources here:

http://download.kde.org/download.php?url=stable/kdevelop/4.0.2/src/

This is a bugfix only release and everyone is urged to upgrade as soon as possible. Users should wait for their distributions to provide packages for them. The tarballs contain changelogs if you are interested what happened since 4.0.1. Or read them online:

Note: This is (most probably) the last release in the 4.0 branch. We don’t have enough manpower to handle more than one stable branch. Which makes me come to the second part of this mail:

KDevelop 4.1 Beta 1 experimental release

We are very happy to publish KDevelop 4.1 Beta 1, which will be the branch we are concentrating on in the next time. You can find the sources here:

http://download.kde.org/download.php?url=unstable/kdevelop/4.0.80/src/

This is a preview release. We are gratefully welcoming any testers and feedback to polish it further for the final 4.1 release which will probably happen around mid October. Please put the reports on the usual places, e.g. http://bugs.kde.org. If you are interested in the (quite long) list of changes, look into the tarballs again for an extensive git changelog. If you just want a few highlights: Git Support Plugin, External Script Plugin, general polishing, CPP support improvements, lots of bug fixes, UI polishing, performance improvements, … you name it :)

For the fun of it, here the list of commits changes for 4.1 (imo far too big to show anything useful):

Thanks as always to the KDevelop team for making this possible and to the users for giving us valuable feedback.

Bye

PS: Sorry that I forgot to announce this yesterday or even Friday, as I initially planned. Well, weekends are such a nice time to go outside and enjoy life :)

» Short GSOC 2010 Note

Sun, 08/22/2010 - 17:50

Hey all,

before I go on a short one-week vacation, I wanted to leave you a short note about the outcome of my GSOC, where I tried to revive the Quanta+ brand.

First up, I passed, many thanks to my mentor Andras Mantia. But well, it’s not like I got that for free. In a first estimation I did about 500 commits to Quanta, PHP and KDevplatform in the last three months. So I hope you all agree that I deserve the Google money :)

But lets talk about what I planned to achieve and what I actually achieved:

  • the XML/HTML plugin is working quite well but is still requiring lots of polishing
  • the browser preview plugin is supposedly being worked on by another studen in Brazil, I’m awaiting her first results and will polish it together with her.
  • you still cannot rename tags and automatically rename the close tag as well or similar
  • the multilang branches have imo nice API additions and seem to work reasonably well. At least my test cases of CSS inside HTML worked fine for me

Anyhow, on one hand I’m personally satisfied with what I achieved code wise, esp. looking at the diffs and knowing how many iterations some of the multilang structures required. On the other hand I had hoped to achieve much more. A first alpha release of Quanta is really not visible to me in the near future.

But, and here I make a promise I do intend to keep: I won’t desert Quanta. Quite the contrary. KDevelop will probably keep my main focus, but I do intend to improve Quanta, esp. merge the multilang branches into KDevplatform for example. My intended time plan contains a note to merge multilang after the movingrange branches into KDevplatform 1.2. Lets see how that works out.

The XML plugin I will definetly continue to polish and make it work as good as possible. Even now it is helpful for more than just web developers: I personally already rely on it when working on Kate language files for example. So there is a personal desire to have it working as good as possible, even though I don’t do much/any web development these days.

Bla bla bla, enough rambling and dumping my thoughts. Lets close this up by saying: Have a nice week, cya soon, hopefully well rested and ready to kick some more code lines :)

Bye

» Dr Konqi now with colors (Updated)

Fri, 08/20/2010 - 18:19

Hey there :)

As I announced on the kde-core-devel mailing list, I planned to improve Dr Konqi for a long time, as for me as a developer it is an invaluable tool. Well, yesterday I sat down and implemented the first two things which I wanted for a long time:

Scroll to KCrash

Once the backtrace got loaded, Dr Konqi will automatically scroll to the line that contains [KCrash Handler]. No need to find that manually anymore. Awesome :)

Colors!

Yeah, you should know that I as a KDevelop user and developer am addicted to syntax highlighting. That’s what I did for Dr Konqi as well now:

So anyone using KDEBase trunk will now have a shiny Dr Konqi :) Feedback appreciated, esp. whether more or less should be highlighted. I personally found it overly colorful when I also highlighted pointer adresses (ignore the bug in that outdated screenshot). What do you think?

Anyhow, thanks to George Kiagiadakis for helping me find my way through Dr Konqi sources and accepting my feature additions.

Update

I put some more feedback into reality: Fixed width font, null pointers are bold and in addition common functions that lead to exits are now highlighted in red (i.e. qFatal, __assert_fail and abort):

» Final days of Quanta GSOC 2010

Wed, 08/04/2010 - 01:38

Hey everyone,

as the pencils down for this years GSOC is approaching I thought it’s time to write another blog entry to notify the world about my current status.

These past weeks (boy, the time flies…) I’ve mostly spent on hardcore KDevplatform internals. Especially getting multiple languages in a single document working was not easy. I knew it would be the most time consuming and most demanding aspect during these three months, but also by far the most important. I’m confident to say now: I’m nearly there. All projects we put into the KDevelop repository have now a multilang branch in their team clones. And if you look at e.g. the KDevplatform multilang branch or the Quanta multilang branch you hopefully agree that I didn’t slack off too much. I just wasted some time to find the right approach, often by implementing one just to find out it was not practicable.

Thanks (once again) to the help of David Nolden I’m now on the right track. Finally :)

When you use the multilang branches (note: you’ll have to use them everywhere as they contain binary incompatible changes to the master branches), you should already get proper DUChain integration for CSS inside HTMLs <style> tags, which is what I used for testing purposes. I’ve just pushed the required changes to get code completion work properly as well.

This is all still in a quite rough stage and needs lots more work but it proves that I’m getting there. Once this is done I can continue to polish the CSS and XML language plugins, as well as finally writing a “preview HTML” plugin, as this was probably the most requested plugin from back then.

Looking at my tentative timeline for GSOC, I’m afraid to say that I didn’t get to do all of it. But I’m quite proud of what I achieved and hope you all agree that my time was well spent on Quanta. I won’t stop working on it probably after GSOC, quite the contrary. I still hope to release at least some alphas this fall and maybe get it into beta state in winter. What about a Quanta 4.0 release in spring 2011? Who knows :)

Bye

» Spotlight: Kate Scripting

Tue, 07/27/2010 - 00:51

Hey ho everyone.

Dominik asked me to blog about a feature in Kate that is still (sadly!) pretty unknown and seldom used: Kate Scripting. As you should know you can script KatePart completely via JavaScript. As those articles explain, it’s rather simple to write functions and put them into a file to have them reusable. But what for those write-use-throwaway kind of cases, where you simply need to get a job done quickly and don’t want to go through the overhead of writing some full fledged, documented, action-binded, localized script?

Utility Functions and why JavaScript rocks

Note: Neither map nor filter will be shipped with 4.5 to my knowledge, sorry about that. But you can still use the each helper (see below) to achieve the same with a bit more typing…

Take a look at utils.js on current git master: http://gitorious.org/kate/kate/blobs/master/part/script/data/utils.js

Put a special note on the helper functions map, filter and each and how they are used to implement e.g. rmblank, [rl]trim and the other functions. Cool eh? And the best part, you can reuse them directly from inside KatePart to get a job done:

mail-style quoting

Lets assume you write an email or use something like Markdown or Textile and want to quote. You’ll have to prepend a few lines with the two chars ‘> ‘. Instead of copy’n’pasting like a maniac do this instead and save yourself some breath:

  1. press F7 to open the Kate command line
  2. write e.g. map "function(l) { return '> ' + l; }"
  3. execute

Note: When you don’t have anything selected, the whole document will get “quoted”.

remove lines that match a pattern

This is something everyone needs to do sooner or later, happened quite a few times to me already. I bet vim has some esoteric command I cannot remember and emacs has something like C-x M-c M-butterfly. But with Kate most users only see search & replace and forfeit to the command line. Well, now it’s again a good time to use the command line:

  1. press F7 again
  2. write e.g. filter "function(l) { return l.indexOf('myNeedle') == -1; }"
  3. execute

Now all lines that contain ‘myNeedle’ will get removed. Sure, this is “verbose” but assuming you know JavaScript it’s actually quite easy, expendable and - best of all - good to remember. At least for me, YMMV.

shortcuts

For simple cases I’ve now introduced a shortcut way of doing the above, that saves you even more typing, but is limited to simple evaluations like the ones above. If you need something fancy, you’ll have to stick to the type-intensive way. Aynhow, here’s the shortcut version of the two scripts:

  1. map "'> ' + line"
  2. filter "line.indexOf('myNeedle') == -1"
the guts: each (interesting for users of KDE 4.x, x < 6)

Both of the above are implemented using the each helper I introduced even before KDE 4.4 afair. If you are using KDE 4.5 and want to do one of the above, a bit more typing is required:

  1. for map, you write something like this:
    each "function(lines) { return lines.map(function(l){ /** actual map code **/ }); }"
  2. for filter you do the same but replace map with filter:
    each "function(lines) { return lines.filter(function(l){ /** actual filter code **/ }); }"
Conclusion

You see, it’s quite simple and powerful. I really love map-reduce and how easy it is to use with JavaScript. Hope you like it as well.

PS: I actually think about making it yet even easier, by allowing some syntax like this: map '> ' + line or filter line.indexOf('myNeedle') == -1, must take a look on how hard it would be (beside the need for extensive documentation, but hey we have the help command in the Kate CLI, who can complain now? :) Implemented

Bye

» KDevelop 4.0.1 released

Wed, 07/21/2010 - 16:28

Good news everyone!

I’m happy to announce the availability of our first patch level release for KDevelop 4. You can get it and the related packages from:

http://download.kde.org/download.php?url=stable/kdevelop/4.0.1/src/

This is a bugfix only release and everyone is urged to upgrade as soon as possible. Below you find a list of changes that went into this release.

Users should wait for their distributions to provide packages for them.

Thanks to the KDevelop contributors for making this possible and to the users for giving us valuable feedback.

PS: I hope to release a second patch level release in a month, assuming we find more to fix.

Bye

KDevplatform 1.0.1 Changelog
  1. * Milian Wolff: don't emit documentJumpPerformed when nothing changed
  2. * Milian Wolff: prevent infinite loop when url gets saved and triggers loading of new language plugin
  3. * Milian Wolff: fix ${selection} in snippets
  4. * Milian Wolff: properly handle manual document switches in context browser toolbar
  5. * Milian Wolff: fix: make it possible to activate repository in singleclick mode
  6. * Andras Mantia: Really load (and use as a replace source) the global ui.rc file, not the local one.
  7. * Milian Wolff: properly add codecompletion to existing documents
  8. * Mantia Andras: Enable select all/copy in the frame widget.
  9. * Mantia Andras: Propagate shortcuts setting to all the opened editor views.
  10. * Andreas Pakulat: Fix accessing of temp-files for windows.
  11. * Milian Wolff: properly handle unterminated strings in comments, fixes code completion after those
  12. * Milian Wolff: properly remove watcher to prevent crashes in smartrange dtor
  13. * Andreas Pakulat: Also set CMAKE_INSTALL_RPATH
  14. * Andreas Pakulat: Make sure kdevplatform is properly linked
  15. * Milian Wolff: put snippets completion items at end of list
  16. * Milian Wolff: fix clearComments for unterminated comments
  17. * Nicolás Alvarez: Create Class: Refresh move button state when a list item is removed too.
  18. * Nicolás Alvarez: When moving items in Create Class inheritance list, update selection.
  19. * Nicolás Alvarez: Update move up/down buttons when selection changes in inheritance list.
  20. * Milian Wolff: prevent endless recursion
  21. * Nicolás Alvarez: Change "Stop Jobs" icon from dialog-close to process-stop.
  22. * Andreas Pakulat: Fix documentation for the .desktop files
  23. * Milian Wolff: don't go into edit-item mode on doubleclick or single click
  24. * Niko Sams: Fix crash when closing kdevelop with running debug session
  25. * Niko Sams: Fix crash that can happen during shutdown with an active debug session
  26. * Andras Mantia: Avoid calling emitResult() in failed case. internalJobDone() is called anyway, and that calls emitResult(). The problem is: when the error message is shown, the eventLoop is reentered, the job is deleted. The emitResult() call after tries to use the deleted job -> crash. This might be only a workaround, but fixes bug 229557 (and its duplicates), bug 227823, bug 232444, 227584.
  27. * Milian Wolff: properly escape dot before git folder
  28. * Andreas Pakulat: End the namespace before the macros.
  29. * Jonathan Schmidt-Dominé: Fixed syntax-errors in ibrowsableversioncontrol.
  30. * Milian Wolff: add a \c where appropriate, add missing dot
  31. * Andreas Pakulat: Add some api dox how to get at plugins and load them properly.
  32. * Andreas Pakulat: Use the complete url of the active document.
  33. * Milian Wolff: make snippet invalid when name contains spaces
  34. * Milian Wolff: allow anything non-space in snippet's code completion model
  35. * Eike Hein: Meet HIG rules about alignment in forms.
  36. * Milian Wolff: make QuickOpen look like a proper menu/dropdown
  37. * Hugo Pereira Da Costa: Fixed setting of maximum height for button and stack so that expander arrow pixmap is not trunkated when small font is used.
  38. * Hugo Pereira Da Costa: Removed unnecessary calls to "setAutoFillBackground(true)". this allows main window background gradient (if any) to be painted right. (like in e.g. oxygen, bespin). Does not affect other styles.
  39. * Hugo Pereira Da Costa: Keep vertical size policy unchanged when embedding KLineEdit inside toolbar.
  40. * Hugo Pereira Da Costa: Rotate back icon so that it is still painted horizontally even for vertical buttons Use option->iconSize to decide which pixmap must be rotated.
  41. * Hugo Pereira Da Costa: This patch modifies the painting of sidebar vertical toolbuttons so that - the button frame is painted "non-rotated" - only the text is painted rotated. This fixes how buttons shadows are rendered. Screenshot at http://www.flickr.com/photos/hugo-oxygen-icons-org/4584572966/sizes/o/
  42. * Andreas Pakulat: Increase minor version.
  43. * Andreas Pakulat: Remove kross from subdirs list
  44. * Bertjan Broeksema: Port away from deprecated KLibLoader::self to KPluing loader.
  45. * Bertjan Broeksema: Initialize members in the right order.
  46. * Bertjan Broeksema: Clean up
  47. * Bertjan Broeksema: Fix warning and clean up.
  48. * Bertjan Broeksema: Fix a compile warning related to deprecated hash_map.
  49. * Bertjan Broeksema: Fix a bunch of trivial compile time warnings.
  50. * Milian Wolff: fix LGPL file as proposed by TZander
  51. * Milian Wolff: fix compile when ifDebug is enabled
  52. * Niko Sams: Debugger: Only switch back to code area if there is an active MainWindow.
  53. * Volker Krause: build with -pedantic
  54. * Andreas Pakulat: Don't crash if dynamic_cast fails.
  55. * Thomas McGuire: Fix progress popups being transparent.
KDevelop 4.0.1 Changelog
  1. * Milian Wolff: fix overflow in CMakeFunctionArgument::unescapeValue
  2. * Andras Mantia: Remove some conflicting shortcuts from the katepart.
  3. * Milian Wolff: fix: allow incr as identifier, it's not the ++ token after all
  4. * Milian Wolff: don't crash on nullptr type in getPointerTarget
  5. * Milian Wolff: fix shouldStartCompletion when writing a path in a #include, inserted is not only a single char
  6. * Milian Wolff: don't crash when getContainerType does not find a declaration for the identified type in the given topcontext
  7. * Andreas Pakulat: Fix opening files with relative path.
  8. * Andreas Pakulat: Set CMAKE_INSTALL_RPATH to lib-installdir
  9. * Andreas Pakulat: Make sure kdevplatform is properly linked
  10. * Milian Wolff: use canonicalFilePath as absoluteFilePath might lead to problems when resolving relative includes in symlinked directories
  11. * Nicolás Alvarez: Fix another possible leak
  12. * Nicolás Alvarez: Fix memory leak in CMakeListsParser::readCMakeFile.
  13. * Milian Wolff: don't advance over EOF, might lead to invalid tokens and crashes
  14. * Aleix Pol: Prevent calling a null pointer.
  15. * Aleix Pol: Add proper support for the Break command.
  16. * Andreas Pakulat: Don't try to open a non-existing file.
  17. * Milian Wolff: make __volatile__ a synonym for volatile
  18. * Milian Wolff: don't recurse into the same class in typeutils::getMemberFunctions
  19. * Esben Mose Hansen: Find build directory even in root CMakeLists.txt
  20. * Milian Wolff: fix uses in argument lists of pure virtuals
  21. * Esben Mose Hansen: Use config mode as fallback if no module is found, and set package_DIR in all cases where a module was not found
  22. * David nolden: Turn an assertion into a warning BUG: 236411
  23. * Niko Sams: Remove support for building the whole extragear/sdk.
  24. * Kovarththanan Rajaratnam: Remove FindCppUnit.cmake now that the CppUnit plugin no longer exists
  25. * Kovarththanan Rajaratnam: Remove FindCheck.cmake now that the Check plugin no longer exists
  26. * Andreas Pakulat: Increase version number
  27. * Niko Sams: Quote variable expressions correctly.
  28. * Milian Wolff: set invalid range on final location of problem when include path resolver found more paths than the build manager
  29. * Andreas Pakulat: Fix kdevelop app icon for windows.
  30. * David nolden: Use a mutex to prevent setupStandardMacros() and setupStandardIncludePaths() from being called multiple times at the same time, preventing a crash. BUG: 236434
  31. * Bertjan Broeksema: Fix compile warnings related to deprecated hash_map
  32. * Andreas Pakulat: Also search for qmake-qt4
KDevelop-PHP 1.0.1 Changelog
  1. * Milian Wolff: fix compile
  2. * Milian Wolff: remove includebuilder
  3. * Milian Wolff: support $a->{$...}
  4. * Milian Wolff: dont fail parsing on $c::func(); or $c::const; BUG: 244076
  5. * Milian Wolff: fix use builder in static member arrays
  6. * Milian Wolff: remove obsolete cmake file that never got run in the first place
  7. * Milian Wolff: fix build of stable, we don't depend on kdevelop-pg-qt there
  8. * Milian Wolff: fix logic to find already up-to-date files in the parsejob
  9. * Milian Wolff: don't start include parsejob when there is already a background parsejob for that file, should prevent deadlock
  10. * Milian Wolff: invalidate declaration done in method body when it got added to class body
  11. * Milian Wolff: don't search in parent contexts for variables
  12. * Niko Sams: Improve implementation helper: don't add return statement for void functions
  13. * Niko Sams: Fix implementation helper for static methods
  14. * Niko Sams: increase version number
  15. * Niko Sams: Remove support for building the whole extragear sdk.
KDevelop-PHP-Docs 1.0.1 Changelog
  1. * Milian Wolff: remove cmake_minimum_required, obsolete (due to KDE requirement) and breaks build when po files are included
  2. * Niko Sams: Remove support for building the whole extragear sdk.

» Quanta GSOC midterm evaluation

Thu, 07/08/2010 - 22:24

Hey there!

Midterm evaluations for GSOC are coming up and Andris Mantia, my mentor I finally met at Akademy, asked be to blog about what we already have in Quanta. Because there is a lot and most of you are not aware of that. And to be honest it’s actually too much to put into a single blog post, so I hope to do more of a series of blog posts showing off some features.

Quanta 4 is not Quanta 3

Anyhow, I fear that a disclaimer is in place, for all of you who are desperately looking forward a KDE4 version of Quanta. The thing is, I cannot, nor do I want to, port Quanta from KDE3 times as-is to KDE4. Instead I build on top of the KDevplatform that is also used for KDevelop and KTechlab. By sharing the basic code it gets much easier to maintain Quanta in the future. This decision brings two things with it:

  1. We get an awesome library to built new stuff on top, making things like the new PHP which is already much more advanced than anything from KDE3, actually plugin possible.
  2. We don’t have all features from Quanta 3 or if we have, they might look and work differently. This also means that you won’t be able to take your Quanta 3 workflow without changes over to Quanta 4.

Some examples for the last part, that also sheds some light on our (== KDevelop team) preferred way of designing the IDE:

First and foremost, dialogs are evil. There, I said it. I doubt I’m the only one here and there are actually many other KDE applications following this mantra. Afaik Aurelien from Gwenview is trying to make it the first app in KDE without any modal dialogs. Go for it dude! What does that mean for Quanta? You might remember that Quanta 3 had lots and lots of dialogs. You could change attributes of HTML tags via dialogs, you could insert code via dialogs. In Quanta 4 this wont be the case, at least I won’t write these dialogs. Instead I concentrate on kickass code completion, which should make these dialogs obsolete.

  • offer context sensitive code completion, e.g. only tags that are valid at the given cursor position or attributes that fit into the given tag under the cursor
  • directly insert tags with all required attributes
  • make it possible to trigger a file-selection dialog in e.g. src="..." or similar attributes from within code completion (there’d be a ‘select file…’ code completion item)

In my opinion every dialog that created or changed code can be replaced by code completion. And if you use it, it’s much faster to write and change code. You don’t have to grasp a new magic modal dialog and find the attribute you want to change. Instead you simple select it, CTRL + Space for code completion and insert the stuff you want.

existing Quanta 4 features

So much for the design ideas in Quanta4, now lets talk about what we already have now in Quanta4. For the uninitiated, you can find the source code at http://gitorious.org/kdevelop/quanta. You will need KDevplatform, KDevelop-PG-Qt and QJSON to get all plugins built.

Also another note is in place here: Even though I have the GSOC and spent lots of time on Quanta, the features I describe below wouldn’t exist if not for the help and work of others. Most notably Niko Sams (PHP, CSS, Execute Browser, Execute Script, XDebug, Crossfire, …), Ruan Strydom (XML/SGML, PHP formatter) and all the other guys happily hacking away at KDevplatform and it’s core plugins and libraries.

PHP

For those that never heard about the work Niko and me put into the PHP language support plugin for KDevelop, you have quite a lot of catching up to do :) I’m too lazy to reiterate everything, if you are interested, read my blog posts: http://milianw.de/tag/php

But frankly, you should instead just try it out. We released PHP together with KDevelop 4.0 and most distros should package it. I still actively work on it and e.g. just brought in some PHP 5.3 features (namespaces) the other day.

To list just a few things we have:

  • state of the art code completion
  • inline syntax checking and error reports
  • context browsing
  • inline documentation and PHP.net integration

If you thought Quanta 3 was good for PHP development, try this, really :)

Ah and before I forget that: Niko also wrote a plugin that integrates XDebug: http://nikosams.blogspot.com/2010/02/kdevelop-xdebug-php-debugger.html

CSS

Here I think I can simply link to Nikos blog posts explaining and showing off his CSS language support plugin:

http://nikosams.blogspot.com/2010/01/kdevelopquanta4-css-language-support.html
http://nikosams.blogspot.com/2010/02/css-language-support-update.html

As you can see once again: When using and implementing the tools in KDevelop properly for a language you get insanely good code completion and context sensitive help plus some browsing utilities. Very handy indeed, and once again (imo) better than what we had in Quanta 3.

Once we have proper multi language support in a single file, expect more goodness from my side, I only added more inline previewing, e.g. for colors.

XML

This is by far the largest surprise for me. Ruan Strydom, a South African, announced at one day - out of the blue - that he is working on a XML language support plugin for KDevelop. And he did a quite good job at it. I’ve been helping out there the last weeks and fixed bugs and added a few features, but it’s still mostly his work. It is already quite useful, as it parses the XSD or DTD that is used in your document and based on that offers you context sensitive code completion and context browsing. It also works somewhat for SGML, e.g. HTML and is quite handy.

There is still quite a few things to do here, e.g. report errors about invalid attributes, tags, etc. pp (currently only real XML syntax parse errors are reported).

Snippets and External Scripts

In Quanta 3, custom toolbars and the actions in them where apparently quite popular. In KDevelop and hence Quanta as well, this is currently handled differently, yet the features should be the same, if maybe with a different workflow. See e.g. http://milianw.de/blog/snippets-in-kdevelop-kate on how snippets work, and http://milianw.de/blog/kdevelop-externalscript-plugin for external scripts.

These should (hopefully, if not please report) give you all the features you had with user actions in Quanta 3. Putting these actions into toolbars is not there and I frankly don’t see the huge need for it that would make up for the huge time I’d had to spent on it to get that working again.

The future and call for feedback

So as you can see, Quanta is not dead, but got very much revived. I hope to get our beloved webdevelopment IDE up and running next year at latest, if possible with a few first test releases this year. Anyhow, back to GSOC:

It’s currently midterm and I already achieved a lot, in the next weeks I will definitely spent my time in getting proper multi language support in a single file up and running. That would then finally make it possible to have proper context browsing and code completion in e.g. a template that includes CSS, PHP and HTML. Also the inline HTML preview from Quanta 3 is needed to be ported / reimplemented. But I might be missing things, which makes me conclude this overlong blog post with a call to old Quanta 3 users:

What features are you missing above from Quanta 3?

Please write one comment per feature and then do “+1” kind of comments to get a basic vote here. That way I can see on what features I have to concentrate on to get Quanta 4 up and running.

Bye