MW

Tag php

Recent Posts

KDevelop 4.2.3 Released (June 27, 2011)

Hey all!

I wanted to quickly notify you all about the availability of KDevelop 4.2.3, you can download it here:

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

Most people should be fine with waiting for updated packages from their distributor though.

To read the full release notes and take a look at the changelog, please visit the project website:

http://kdevelop.org/kdevelop/kdevelop-423-released

Many thanks to the contributors, for making this release possible

continue reading...

Markdownify Tests and PEAR Text_Diff (April 01, 2011)

Yes, I’m finally gearing towards the release of my html2text.php successor, dubbed Markdownify. I’m using exessive testing and utilize the MDTest suite to find potential regressions etc. I’m really enjoying to program little CLI scripts with PHP, it just works like a charm.

Here’s an example of how my test suite currently looks like:

alt text

To the left is the original input (HTML), in the middle you find the generated Markdown and to the right HTML again - but now generated via PHP Markdown by Michel Fortin. The pretty colors mark changes between the two HTML versions. I use PEAR Text_Diff for this and a little of my own code. But since all of the existing diff engines for Text_Diff took ages for the Markdown Documentation (~400 lines afair), I wrote a Text_Diff engine which utilizes [shell_exec](http://www.php.net/shell_exec)() and GNU diff. This is blazingly fast and works like a charm! You can get the source code over at pastebin.org. Also take a look on the feature request I made. Dunno if this was the correct place for that…

continue reading...

KDevelop 4.0.2 and KDevelop 4.1 Beta 1 released (September 24, 2010)

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:

continue reading...

Final days of Quanta GSOC 2010 (August 04, 2010)

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.

continue reading...

KDevelop 4.0.1 released (July 21, 2010)

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

    * Milian Wolff: don't emit documentJumpPerformed when nothing changed
    * Milian Wolff: prevent infinite loop when url gets saved and triggers loading of new language plugin
    * Milian Wolff: fix ${selection} in snippets
    * Milian Wolff: properly handle manual document switches in context browser toolbar
    * Milian Wolff: fix: make it possible to activate repository in singleclick mode
    * Andras Mantia: Really load (and use as a replace source) the global ui.rc file, not the local one.
    * Milian Wolff: properly add codecompletion to existing documents
    * Mantia Andras: Enable select all/copy in the frame widget.
    * Mantia Andras: Propagate shortcuts setting to all the opened editor views.
    * Andreas Pakulat: Fix accessing of temp-files for windows.
    * Milian Wolff: properly handle unterminated strings in comments, fixes code completion after those
    * Milian Wolff: properly remove watcher to prevent crashes in smartrange dtor
    * Andreas Pakulat: Also set CMAKE_INSTALL_RPATH
    * Andreas Pakulat: Make sure kdevplatform is properly linked
    * Milian Wolff: put snippets completion items at end of list
    * Milian Wolff: fix clearComments for unterminated comments
    * Nicolás Alvarez: Create Class: Refresh move button state when a list item is removed too.
    * Nicolás Alvarez: When moving items in Create Class inheritance list, update selection.
    * Nicolás Alvarez: Update move up/down buttons when selection changes in inheritance list.
    * Milian Wolff: prevent endless recursion
    * Nicolás Alvarez: Change "Stop Jobs" icon from dialog-close to process-stop.
    * Andreas Pakulat: Fix documentation for the .desktop files
    * Milian Wolff: don't go into edit-item mode on doubleclick or single click
    * Niko Sams: Fix crash when closing kdevelop with running debug session
    * Niko Sams: Fix crash that can happen during shutdown with an active debug session
    * 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.
    * Milian Wolff: properly escape dot before git folder
    * Andreas Pakulat: End the namespace before the macros.
    * Jonathan Schmidt-Dominé: Fixed syntax-errors in ibrowsableversioncontrol.
    * Milian Wolff: add a \c where appropriate, add missing dot
    * Andreas Pakulat: Add some api dox how to get at plugins and load them properly.
    * Andreas Pakulat: Use the complete url of the active document.
    * Milian Wolff: make snippet invalid when name contains spaces
    * Milian Wolff: allow anything non-space in snippet's code completion model
    * Eike Hein: Meet HIG rules about alignment in forms.
    * Milian Wolff: make QuickOpen look like a proper menu/dropdown
    * 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.
    * 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.
    * Hugo Pereira Da Costa: Keep vertical size policy unchanged when embedding KLineEdit inside toolbar.
    * 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.
    * 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/
    * Andreas Pakulat: Increase minor version.
    * Andreas Pakulat: Remove kross from subdirs list
    * Bertjan Broeksema: Port away from deprecated KLibLoader::self to KPluing loader.
    * Bertjan Broeksema: Initialize members in the right order.
    * Bertjan Broeksema: Clean up
    * Bertjan Broeksema: Fix warning and clean up.
    * Bertjan Broeksema: Fix a compile warning related to deprecated hash_map.
    * Bertjan Broeksema: Fix a bunch of trivial compile time warnings.
    * Milian Wolff: fix LGPL file as proposed by TZander
    * Milian Wolff: fix compile when ifDebug is enabled
    * Niko Sams: Debugger: Only switch back to code area if there is an active MainWindow.
    * Volker Krause: build with -pedantic
    * Andreas Pakulat: Don't crash if dynamic_cast fails.
    * Thomas McGuire: Fix progress popups being transparent.

continue reading...

Quanta GSOC midterm evaluation (July 08, 2010)

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.

continue reading...

KDevelop PHP Advancements: Namespaces and Error Recovery (June 24, 2010)

Hi there,

just a quicky before I head off to bed and go on a short vacation the next few days:

PHP support in KDevelop now has support for the first PHP 5.3 feature, namely namespaces. I’m still convinced that the syntax sucks pretty bad in PHP’s implementation of namespaces but well, my hands are tight and I had to support it. Anyhow, with PHP master you shouldn’t get syntax errors anymore when using namespaces, but instead proper code completion, syntax highlighting and context information… Well, full blown DUChain integration :)

Furthermore I just introduced the first few error recoveries in PHP that should make the situation a bit better when you work on a broken file. Up until now any parse error resulted in a file with no advanced PHP features at all until you fixed that parse error. Now it should at least skip parse errors in code segments between braces (classes, functions, conditionals, namespaces, …). It can be much improved of course, and I’ll do just that next week.

continue reading...

KDevelop Webdev plugins merged into Quanta GIT (June 14, 2010)

Quick note:

I’ve just merged all webdevelopment related plugins except PHP & PHP-Docs into Quanta git. You can get them all in one place now by cloning Quanta: http://gitorious.org/kdevelop/quanta

Since I also moved all halfworking plugins to UNPORTED (they don’t get installed), you should be fine by just installing all of Quanta to get the plugins. If you only want one of them, going into it’s subfolder and building it standalone should hopefully still work though.

In other notes: Thanks to Ruan Styrdom for starting work on a PHP formatter plugin for KDevelop. It uses phpStylist and it’s already somewhat working. Awesome :)

/me is off to more GSOC hacking, bye

continue reading...

GSOC: Revive Quanta+ Brand for KDE 4 (April 28, 2010)

Yay I got a GSOC slot :)

So I hope I don’t have to introduce myself anymore to you guys. Instead I’ll show you what I’ve planned to do over the summer:

Motivation for Proposal / Goal:

Back in KDE 3 times, Quanta+ was one of the reasons for me to use KDE. In my eyes it was the IDE for web development out there, and I loved to use it. Sadly it’s bitrotting nowadays without a finished KDE 4 port. That, combined with the fact that more and more distributions drop all KDE 3 packages, makes the need for a port more urgent than ever.

Implementation Details:

Thankfully, KDevelop 4 is nearing it’s first release and the KDevplatform is mature enough nowadays. This means that during summer I shall finish the port of Quanta+ to KDevplatform and supply it with all the plugins required for a proper webdevelopment IDE. My goal is it to provide a proper IDE for PHP webdevelopment. In more detail:

  • make Quanta+ 4 compile
  • remove obsolete plugins or code parts in Quanta+
  • port required plugins to KDevplatform structure
  • polish PHP plugin, including XDebug support
  • polish Script Execute plugin
  • polish CSS plugin
  • get a first working version of a XHTML/XML plugin, if time allows even with HTML (SGML) support
    • support autocompletion
    • support inline validation
    • support documents that use multiple languages (XML, PHP, CSS, JavaScript) at the same time
  • polish the UI/Workflow for Webdevelopment
    • hide KDevelop/C++ specific actions
    • add templates for common PHP frameworks
  • if time allows, get a rough support for JavaScript (at least Outline for functions)

continue reading...

progress in PHP support for KDevelop (January 20, 2010)

Hey everyone. Been some time since I last blogged… I want to take the chance to give you all a bit of overview over the last changes in the PHP plugin for KDevelop:

Performance Improvements

I spent quite some time profiling various aspects of the PHP plugin, be it parsing and DUChain building over to (just yesterday) code completion. I’m confident to say that I found (and removed) quite a few bottlenecks, making the plugin much more comfortable to use.

I’m really blown away time over time again by valgrind & KCachegrind… What would we do without these tools?

Documentation

An (imo) very strong point for using KDevelop for PHP programming is it’s seamless support for documentation. Be it the “simple” inline documentation in the Declaration Tooltips or the extended integration of the remote PHP.net docs. But these past days I improved our generator for the inline documentation of built-in PHP language constructs considerably:

  • add documentation for function/method parameters
  • add @since where appropriate
  • fix some missing declarations or bugs, esp. some that where part of SPL

continue reading...