What is wrong with this GTKSourceView syntax highlighting code?

[email protected] ("Bruno Cassol")
Newsgroups php.gtk.general
Message-ID <[email protected]>
I'm runnig this simple PHP-GTK2 code to highlight PHP source code,
based on this article:
http://www.php-gtk.eu/code-snippets/extending-gtksourceview-widget

The problem is that the GTKSourceView widget stops doing correct
highlight if you type some invalid PHP code then correct it.
I installed PHPGTk2 in WIndows XP using this Gnope installation:
http://www.gnope.org/download.php

Why does it stops hightlting  syntax?
The code follows:


<?php
error_reporting(E_ALL);

class EditWidget extends GtkSourceView {
	protected $buffer;
	protected $lang;
	protected $mime_lang;

	function __construct()
	{
		parent::__construct();

		# default lang
		$this->mime_lang = 'text/x-php';
		$this->set_lang($this->mime_lang);

		$this->buffer = new GtkSourceBuffer();
		$this->set_buffer($this->buffer);

		$this->set_show_line_numbers(true);
		$this->set_show_line_markers(true);

		$this->buffer->set_language($this->lang);
		$this->buffer->set_highlight(true);
	}

	protected function set_lang($mime_type) {
		$lang_manager = new GtkSourceLanguagesManager();
		$this->lang = $lang_manager->get_language_from_mime_type($mime_type);
	}

	public function load_file($file) {
		if (!file_exists($file))
			return false;

		$lines = file_get_contents($file);

		$this->buffer->begin_not_undoable_action();
		$this->buffer->set_text($lines);
		$this->buffer->end_not_undoable_action();
		return true;
	}
}






// Create our windows, centered, with scrollbars and the EditWidget
class App extends GtkWindow
{
	protected $scrolled_win;
	protected $edit_widget;

    function __construct()
    {
        parent::__construct();

		$edit_widget = new EditWidget();
		$edit_widget->load_file(__FILE__);
    	$scrolled_win = new GtkScrolledWindow();
		$scrolled_win->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
		$scrolled_win->add_with_viewport($edit_widget);
		parent::add($scrolled_win);

		parent::set_title("GtkSourceView Syntax Highlight");
        parent::set_size_request(600,480);
		parent::set_position(Gtk::WIN_POS_CENTER);
        parent::connect_simple('destroy', array("Gtk", 'main_quit'));
        parent::show_all();
    }
}

new App;
Gtk::Main();

?>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.