On 14-04-24 11:35 PM, Matthew Brush wrote:
On 14-04-24 09:44 PM, Pavel Roschin wrote:
I'm played with GeanyPy plugin and faced with a problem.

Here is the source code I created to get current document from sidebar:

    def press(self, widget, event, data=None):
        if event.button != 2:
            return
        mod, it = widget.get_selection().get_selected()
        doc = mod.get(it, 2)[0]

According to sidebar.c, mod.get(it, 2) should return pointer to Document.


This isn't supported/recommended to do in either Geany plugin API or
GeanyPy, but see below.

But Python doesn't know that this is document and doc variable in this
example has type GPointer. How can I access to this document from
python plugin?

P.S. I tried to use ctypes.cast, no success. Currently I'm addressing
document
with a file path but it is a hack and isn't working for symlinks.


If you really want to, maybe try to call the C function
`Document_create_new_from_geany_document()` (in
src/geanypy-document.[ch]) which is used by GeanyPy internally, but
should be callable somehow from Python.


... Unless all you want to do is get the current/active document, in which case just call `geany.document.get_current()` from Python.

Cheers,
Matthew Brush

_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel

Reply via email to