Skip to content

Blackarrow 

KDevelop4: New Class Wizard

Sunday, 23 November 2008
I've been pretty inactive in development recently for a few reasons (I got engaged, then I had a nasty fall from my road bike due to a tyre blowout). I was impressed by the great work that David Nolden continues to do for kdevelop, particularly the behind-the-scenes improvements which make using the program bearable. However as we know it's the new features which are the most 'bloggable'... Read More

KDevelop 4: User Interface

Monday, 21 July 2008
Another leap forward in KDevelop version 4 is the interface. We've tried to make it both highly flexible (to fit most people's requirements) and reliable (kdev3 suffered from a difficult to maintain ui library, prior to a simplified rewrite), and the current state is pretty good (certainly better than kdev3). Features include: Read More

KDevelop 4: A New Era

Monday, 14 July 2008
I've decided to write a series of blogs detailing the work that has gone on behind the scenes for KDevelop version 4, the new IDE that is now 3 years in the making. Like KDE4, KDevelop has seen much work on essential internal mechanisms (much like the pillars of KDE), the power of which will become evident over the next year or so. Progress has been great recently, with the hackathon we had in Munich earlier this year, productive SoC projects and several more/new developers becoming active again, it's looking like we can expect to be releasing a pretty solid beta within about a month. The other developers and I use kdevelop daily to work on kdevelop 4, including writing code; version control; building, executing, debugging, and valgrinding programs; navigating the project with quick open, find in files (grep), etc. Read More

KDevelop - UI revolution

Monday, 14 April 2008
I'm currently at the KDevelop sprint at the Trolltech offices in Munich, Germany. We had a productive weekend of talks to bring everyone up to speed with the current state of KDevelop, and while what's going on under the hood is very exciting, it currently suffers from a kluged together, buggy and incomplete UI. For the first day of the programming several of us are working on improving the user interface, and it's making progress slowly but surely. Stay tuned for a screenshot / screencast when we have it looking just right :) Read More

On holidays again!

Sunday, 12 November 2006
I've made it to my second lot of annual leave this year, so I've bought a nice shiny new digital SLR (the Sony a100) and am going to Japan for two weeks for a holiday. Read More

KDevelop threading: progress update

Wednesday, 6 September 2006
So, the last two days I've been concentrating on introducing locking into the definition-use chain which I've been writing for KDevelop. I've taken quite a coarse-grained approach, with one lock for each document's chain, and with separate object local locks each time that an object can reference another object that is on a different chain. Read More

KDevelop and multi-threaded programming

Monday, 4 September 2006
As part of the definition-use chain work that I have been doing for KDevelop, yesterday I wrote a browser for each document's chain. There was just one catch... none of the chain is protected for multithreaded access at the moment. Read More

Summary of last fortnight's hacking on KDevelop

Sunday, 3 September 2006
Firstly, thanks to clee for adding me to the Planet. When I left Trysil I planned to blog more often, and now you too can read about it :) Read More

Breakthroughs in programming

Friday, 18 August 2006
Yesterday I did some more work on KDevelop's c++ parser, specificially the definition-use chain (duchain). This was in response to some bugs that were being revealled by using it as the basis of advanced code highlighting. Read More

KDevelop language support progress

Wednesday, 16 August 2006
For those of you who might not be aware, KDevelop v4 is starting to take shape, at least behind the scenes. For some time now we have had Roberto's new c++ parser in the code base but not doing very much. Then Matt and Adam worked hard on improving project management support (including native support for CMake) and the background parser / code model, so now we have a functional code model (even if not in the final state). Read More

The Hack all the way Back

Friday, 7 July 2006
So, for me the KDE four core meeting in Trysil has finished today. It was an amazing experience, meeting people for the first time and seeing what we could do when we concentrated (most) all of our efforts on improving KDE4. Read More

Trysil Day 2 - Planning Meeting

Monday, 3 July 2006
This evening in Trysil we had a long meeting to discuss goals for KDE 4.0, both generally and specifically. Topics covered did not contain many surprises, most issues were already covered in the planning documents already existing in the wiki and svn. Prioritising our time is of course important, and in rough descending order they were thought to be: Read More

KDE 4 library development

Thursday, 23 March 2006
Well, it's been ages since I've blogged - generally I feel that code speaks louder than blogs :) However, I think it's time to do some catching up. Currently the rest-of-kde porting is proceeding after the massive KAction changes I recently committed to kdelibs. Now that the snapshot carries the changes too, it's starting to get heaps of testing, which is so far standing up pretty well (only a few bugs reported to date, the significant bug already fixed). Read More

More KTextEditor

Wednesday, 3 March 2004
Being on holidays certainly gives you time to reflect on what new features you'd like in your text editor :) I've come up with something which I hope will help make using a text editor a better experience by providing more assistance to the user... input filtering. It came to me when I was thinking of cleaner ways to do code templates. At the moment, I think you have to use a keyboard shortcut to insert code templates? Anyway, this will make it easier for the 3rd party app developer to e.g. respond to "for " and insert a template. It will also make immutable text a possibility, something requested in a comment to my last blog. In fact it will make it possible to enforce valid structure on a document, though I personally think that would be too restrictive. Immutable text could be appropriately highlighted, and the cursor could move around it in a logical manner, so that the for ( ; ; ) { } template could be navigated more easily. Other ideas on the go are improved text navigation eg. easier use of code folding (previews of folded code? auto-expand modes?) and the ability to add a custom widget to the top and/or bottom right-hand corners. I've also decided to improve the idea I had for syntax highlighting by giving each text range a "state" variable, and associate a specific highlighting style to a state, then the developer just has to change the state of a range to make it look different. I'm also taking requests for whatever text decorations you'd like to see available in the next kate - I'm thinking of borrowing some ideas from css, just let me know which ones you think would be useful. Furthermore, I'm planning to extend on code completion by adding syntax highlighting to the dropdown, expanding the info presented, allowing several different filtering and sorting rules (eg. by inheritance; by access (public/protected etc); alphanumerical; and hiding / disabling completions which don't fit the current context), and integrating (somehow - ideas?) summary documentation for the highlighted method. My flight calls, gotta go... someone should sponsor KDE developers going on long-haul international flights so they can hack from business class! Economy is way too cramped... Read More

The Future of KTextEditor

Thursday, 26 February 2004
I've been working on something pretty big for katepart for a while now, but it's just struck home how widely applicable this new idea will be for apps utilising the KTextEditor api. The whole thing started when I was looking for a way to enable custom programmatic syntax highlighting. I first implemented a smart cursor which retained its relative location while the text around it was edited; then extended this into a pair of smart cursors to define a "range" of text. These objects give forth plenty of useful, convenient signals, such as changed(), moved(), etc. This looked like a promising way of implementing custom HL. Yesterday, it struck me how these smart cursors could replace most of the clumsy mechanisms used today to interface with text editors. As it stands, most 3rd party apps like KDevelop, Quanta etc. all maintain an externally parsed version of the document's buffer. This is not only inefficient, but the hooks to enable on-the-fly parsing (rather than delayed / background parsing) are not there, so there is always some lag time with the parsed versions. Here's how I envisage this new interface would work: Read More