Hi Eckhard.
On Thu, 2008-06-26 at 15:06 +0200, Eckhard M. Jäger wrote:
> i developed several plugins for gEdit and i like to update now my
> Language Reference plugin
> to support new features of Evince:
> http://my.opera.com/area42/blog/gedit-language-reference-plugin
>
> For that I'd like to get the actual selected words or the word where
> the cursor is located.
> I didn't know how to get it. Please, can someone tell me how?
Here is a rough doctest that illustrates how to work with the cursor,
and how to get the selected text (which is just two lines of code)
To work with the text of a Gedit.Document, you need to use the API
of the underlying object, the GtkTextBuffer. Assuming the user
selects [The text I selected] from this paragraph.
The plugin can get the document from the window or view:
>>> document = window.get_active_document()
>>> document
<Document object at ... (GtkSourceBuffer at ...)>
The cursor at the insert 'mark' in the GtkTextBuffer.
>>> cursor_iter = document.get_iter_at_mark(document.get_insert())
>>> cursor_iter.get_offset()
159
The cursor_iter can be moved forwards an backwards. True or False
is returned upon success.
>>> cursor_iter.forward_cursor_position()
True
>>> cursor_iter.get_offset()
160
>>> cursor_iter.forward_cursor_position(3)
True
>>> cursor_iter.get_offset()
163
>>> cursor_iter.backward_cursor_position()
True
>>> cursor_iter.get_offset()
162
>>> cursor_iter.backward_cursor_positions(3)
>>> cursor_iter.get_offset()
159
The current selection can be retrieved using get_selection_bounds().
>>> (start_iter, end_iter) = document.get_selection_bounds()
>>> selected_text = document.get_text(start_iter, end_iter)
>>> selected_text
'The text I selected'
--
__C U R T I S C. H O V E Y_______
Guilty of stealing everything I am.
Attachment:
signature.asc
Description: This is a digitally signed message part