Hi everyone,
I have been using Geany for quite some years now and really happy with it. This times I am learning Python3 and, of course, use Geany for that purpose.
The way Geany autocomplete symbols does not completly fill my needs and I wanted to try geany-jedi-complete plugin [0] but install fails with the following output :
### g++ -c src/preferences.cpp -O2 -fPIC `pkg-config --cflags geany` -std=c++0x -I./geany-complete-core/include -o lib/src/preferences.o In file included from /usr/include/geany/editor.h:28:0, from /usr/include/geany/document.h:32, from /usr/include/geany/build.h:27, from /usr/include/geany/geanyplugin.h:37, from ./geany-complete-core/include/geanycc/cc_plugin.hpp:23, from ./geany-complete-core/include/geanycc/geanycc.hpp:25, from src/preferences.cpp:22: src/preferences.cpp: In member function ‘virtual GtkWidget* geanycc::PythonCompletionFramework::create_config_widget(GtkDialog*)’: /usr/include/geany/gtkcompat.h:81:11: error: invalid conversion from ‘gpointer {aka void*}’ to ‘GtkWidget* {aka _GtkWidget*}’ [-fpermissive] NULL) ^ /usr/include/geany/gtkcompat.h:83:3: note: in expansion of macro ‘compat_gtk_box_new’ compat_gtk_box_new(GTK_ORIENTATION_VERTICAL, (homogeneous), (spacing)) ^ src/preferences.cpp:122:24: note: in expansion of macro ‘gtk_vbox_new’ GtkWidget* vbox = gtk_vbox_new(FALSE, 5); ^ geany-complete-core/Makefile.core:39: recipe for target 'lib/src/preferences.o' failed make: *** [lib/src/preferences.o] Error 1 ###
OS : GNU/Linux openSUSE Leap 42.3 Geany : 1.29 (Gtk 3.20) Package geany-devel is installed as well as other plugin build-time dependencies.
Does anyone have an idea about how I can solve it ?
Beside that, if some other experimented Python developpers using Geany has any advice on how I can configure it specifically for Python I would take it :) (I have already set build options).
Thank you in advance.
Regards,
On 2017-09-21 01:59 AM, sogal wrote:
Hi everyone,
I have been using Geany for quite some years now and really happy with it. This times I am learning Python3 and, of course, use Geany for that purpose.
The way Geany autocomplete symbols does not completly fill my needs and I wanted to try geany-jedi-complete plugin [0] but install fails with the following output :
### g++ -c src/preferences.cpp -O2 -fPIC `pkg-config --cflags geany` -std=c++0x -I./geany-complete-core/include -o lib/src/preferences.o In file included from /usr/include/geany/editor.h:28:0, from /usr/include/geany/document.h:32, from /usr/include/geany/build.h:27, from /usr/include/geany/geanyplugin.h:37, from ./geany-complete-core/include/geanycc/cc_plugin.hpp:23, from ./geany-complete-core/include/geanycc/geanycc.hpp:25, from src/preferences.cpp:22: src/preferences.cpp: In member function ‘virtual GtkWidget* geanycc::PythonCompletionFramework::create_config_widget(GtkDialog*)’: /usr/include/geany/gtkcompat.h:81:11: error: invalid conversion from ‘gpointer {aka void*}’ to ‘GtkWidget* {aka _GtkWidget*}’ [-fpermissive] NULL) ^ /usr/include/geany/gtkcompat.h:83:3: note: in expansion of macro ‘compat_gtk_box_new’ compat_gtk_box_new(GTK_ORIENTATION_VERTICAL, (homogeneous), (spacing)) ^ src/preferences.cpp:122:24: note: in expansion of macro ‘gtk_vbox_new’ GtkWidget* vbox = gtk_vbox_new(FALSE, 5); ^ geany-complete-core/Makefile.core:39: recipe for target 'lib/src/preferences.o' failed make: *** [lib/src/preferences.o] Error 1 ###
OS : GNU/Linux openSUSE Leap 42.3 Geany : 1.29 (Gtk 3.20) Package geany-devel is installed as well as other plugin build-time dependencies.
Does anyone have an idea about how I can solve it ?
Beside that, if some other experimented Python developpers using Geany has any advice on how I can configure it specifically for Python I would take it :) (I have already set build options).
Thank you in advance.
C++ doesn't allow implicit cast from void* to other pointer type, so you have to cast it explicitly:
auto vbox = static_cast<GtkWidget*>(gtk_vbox_new(FALSE, 5));
Regards, Matthew Brush
Le 21/09/2017 à 07:31, Matthew Brush a écrit :
On 2017-09-21 01:59 AM, sogal wrote:
[…] try geany-jedi-complete plugin [0] but install fails with the following output :
### g++ -c src/preferences.cpp -O2 -fPIC `pkg-config --cflags geany` -std=c++0x -I./geany-complete-core/include -o lib/src/preferences.o In file included from /usr/include/geany/editor.h:28:0, from /usr/include/geany/document.h:32, from /usr/include/geany/build.h:27, from /usr/include/geany/geanyplugin.h:37, from ./geany-complete-core/include/geanycc/cc_plugin.hpp:23, from ./geany-complete-core/include/geanycc/geanycc.hpp:25, from src/preferences.cpp:22: src/preferences.cpp: In member function ‘virtual GtkWidget* geanycc::PythonCompletionFramework::create_config_widget(GtkDialog*)’: /usr/include/geany/gtkcompat.h:81:11: error: invalid conversion from ‘gpointer {aka void*}’ to ‘GtkWidget* {aka _GtkWidget*}’ [-fpermissive] NULL) ^ /usr/include/geany/gtkcompat.h:83:3: note: in expansion of macro ‘compat_gtk_box_new’ compat_gtk_box_new(GTK_ORIENTATION_VERTICAL, (homogeneous), (spacing)) ^ src/preferences.cpp:122:24: note: in expansion of macro ‘gtk_vbox_new’ GtkWidget* vbox = gtk_vbox_new(FALSE, 5); ^ geany-complete-core/Makefile.core:39: recipe for target 'lib/src/preferences.o' failed make: *** [lib/src/preferences.o] Error 1 ###
OS : GNU/Linux openSUSE Leap 42.3 Geany : 1.29 (Gtk 3.20) Package geany-devel is installed as well as other plugin build-time dependencies.
[…]
C++ doesn't allow implicit cast from void* to other pointer type, so you have to cast it explicitly:
auto vbox = static_cast<GtkWidget*>(gtk_vbox_new(FALSE, 5));
Indeed, but the root cause is likely that the plugin was never tested with GTK3, which might suggest it might have some issues with it, or at least need some polishing.
Cheers, Colomban
Hi,
Le vendredi 22 septembre 2017 à 11:52:44, Colomban Wendling a écrit :
Le 21/09/2017 à 07:31, Matthew Brush a écrit :
On 2017-09-21 01:59 AM, sogal wrote:
[…] try geany-jedi-complete plugin [0] but install fails with the following output :
### g++ -c src/preferences.cpp -O2 -fPIC `pkg-config --cflags geany` -std=c++0x -I./geany-complete-core/include -o lib/src/preferences.o In file included from /usr/include/geany/editor.h:28:0, from /usr/include/geany/document.h:32, from /usr/include/geany/build.h:27, from /usr/include/geany/geanyplugin.h:37, from ./geany-complete-core/include/geanycc/cc_plugin.hpp:23, from ./geany-complete-core/include/geanycc/geanycc.hpp:25, from src/preferences.cpp:22: src/preferences.cpp: In member function ‘virtual GtkWidget* geanycc::PythonCompletionFramework::create_config_widget(GtkDialog*)’: /usr/include/geany/gtkcompat.h:81:11: error: invalid conversion from ‘gpointer {aka void*}’ to ‘GtkWidget* {aka _GtkWidget*}’ [-fpermissive] NULL) ^ /usr/include/geany/gtkcompat.h:83:3: note: in expansion of macro ‘compat_gtk_box_new’ compat_gtk_box_new(GTK_ORIENTATION_VERTICAL, (homogeneous), (spacing)) ^ src/preferences.cpp:122:24: note: in expansion of macro ‘gtk_vbox_new’ GtkWidget* vbox = gtk_vbox_new(FALSE, 5); ^ geany-complete-core/Makefile.core:39: recipe for target 'lib/src/preferences.o' failed make: *** [lib/src/preferences.o] Error 1 ###
OS : GNU/Linux openSUSE Leap 42.3 Geany : 1.29 (Gtk 3.20) Package geany-devel is installed as well as other plugin build-time dependencies.
[…]
C++ doesn't allow implicit cast from void* to other pointer type, so you have to cast it explicitly:
auto vbox = static_cast<GtkWidget*>(gtk_vbox_new(FALSE, 5));
Indeed, but the root cause is likely that the plugin was never tested with GTK3, which might suggest it might have some issues with it, or at least need some polishing.
Thanks to both of you for answering. Matthew : Thank you, replacing the line with your suggestion worked and I have been able to compile and install it successfully. Colomban : I guess you're right too, the plugin seems to load sucessfully but does not produce any effect. In cases where it should, I only see a thin line instead of the completion window. I will open an issue on Github.
Thank you again.