static void on_doc_activate(G_GNUC_UNUSED GObject * obj, G_GNUC_UNUSED GeanyDocument * doc,
		G_GNUC_UNUSED gpointer user_data)
{
	g_return_if_fail(doc != NULL && doc->file_name != NULL);

	gprj_sidebar_update(FALSE);
}
static void on_project_close(G_GNUC_UNUSED GObject * obj, G_GNUC_UNUSED gpointer user_data)
{
	gprj_project_close();
	gprj_sidebar_update(TRUE);
	gprj_sidebar_activate(FALSE);
	gprj_menu_activate_menu_items(FALSE);
}
static void on_project_open(G_GNUC_UNUSED GObject * obj, GKeyFile * config,
		G_GNUC_UNUSED gpointer user_data)
{
	gprj_project_open(config);
	gprj_sidebar_update(TRUE);
	gprj_sidebar_activate(TRUE);
	gprj_menu_activate_menu_items(TRUE);
}
static void on_project_dialog_confirmed(G_GNUC_UNUSED GObject * obj, GtkWidget * notebook,
		G_GNUC_UNUSED gpointer user_data)
{
	if (g_prj)
	{
		gprj_project_read_properties_tab();
		gprj_sidebar_update(TRUE);
	}
}
static void on_doc_open(G_GNUC_UNUSED GObject * obj, G_GNUC_UNUSED GeanyDocument * doc,
	    G_GNUC_UNUSED gpointer user_data)
{
	g_return_if_fail(doc != NULL && doc->file_name != NULL);

	/* tags of open files managed by geany*/
	if (gprj_project_is_in_project(doc->file_name))
		gprj_project_remove_file_tag(doc->file_name);

	gprj_sidebar_update(FALSE);
}
void plugin_cleanup(void)
{
	if (geany_data->app->project)
	{
		gprj_project_close();
		gprj_sidebar_update(TRUE);
	}

	gprj_menu_cleanup();
	gprj_sidebar_cleanup();
}
static void on_doc_close(G_GNUC_UNUSED GObject * obj, GeanyDocument * doc,
		G_GNUC_UNUSED gpointer user_data)
{
	g_return_if_fail(doc != NULL && doc->file_name != NULL);

	//tags of open files managed by geany - when the file gets closed, we should take care of it
	if (gprj_project_is_in_project(doc->file_name))
		gprj_project_add_file_tag(doc->file_name);

	gprj_sidebar_update(FALSE);
}
static void on_project_save(G_GNUC_UNUSED GObject * obj, GKeyFile * config,
		G_GNUC_UNUSED gpointer user_data)
{
	if (!g_prj)
	{
		/* happens when the project is created */
		gprj_project_open(config);
		gprj_sidebar_update(TRUE);
		gprj_sidebar_activate(TRUE);
		gprj_menu_activate_menu_items(TRUE);
	}

	gprj_project_save(config);
}