SF.net SVN: geany-plugins:[1323] trunk/geanygendoc/src

colombanw at users.sourceforge.net colombanw at xxxxx
Sat May 1 17:46:41 UTC 2010


Revision: 1323
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1323&view=rev
Author:   colombanw
Date:     2010-05-01 17:46:41 +0000 (Sat, 01 May 2010)

Log Message:
-----------
GeanyGenDoc: Support for global environment overrides

Add a global environment to allow overrides and additions to the
filetype-specific environments. This is useful e.g. to set a "insert
since" property that will apply to all filetypes, an this without
modifying filetypes themselves.

Modified Paths:
--------------
    trunk/geanygendoc/src/ggd-plugin.c
    trunk/geanygendoc/src/ggd-plugin.h
    trunk/geanygendoc/src/ggd.c

Modified: trunk/geanygendoc/src/ggd-plugin.c
===================================================================
--- trunk/geanygendoc/src/ggd-plugin.c	2010-05-01 17:46:12 UTC (rev 1322)
+++ trunk/geanygendoc/src/ggd-plugin.c	2010-05-01 17:46:41 UTC (rev 1323)
@@ -82,6 +82,7 @@
 gchar      *GGD_OPT_doctype         = NULL;
 gboolean    GGD_OPT_save_to_refresh = FALSE;
 gboolean    GGD_OPT_indent          = TRUE;
+gchar      *GGD_OPT_environ         = NULL;
 
 
 
@@ -151,6 +152,7 @@
   ggd_opt_group_add_string (plugin->config, &GGD_OPT_doctype, "doctype");
   ggd_opt_group_add_boolean (plugin->config, &GGD_OPT_save_to_refresh, "save_to_refresh");
   ggd_opt_group_add_boolean (plugin->config, &GGD_OPT_indent, "indent");
+  ggd_opt_group_add_string (plugin->config, &GGD_OPT_environ, "environ");
   conffile = ggd_get_config_file ("ggd.conf", NULL, GGD_PERM_R, &err);
   if (conffile) {
     success = ggd_opt_group_load_from_file (plugin->config, conffile, &err);
@@ -480,7 +482,31 @@
   ggd_opt_group_set_proxy_gtktogglebutton (plugin->config, &GGD_OPT_indent,
                                            widget);
   gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
+  /* environ editor */
+  widget = gtk_frame_new (_("Global environment"));
+  ui_widget_set_tooltip_text (widget, _("Global environment overrides and "
+                                        "additions. This environment will be "
+                                        "merged with the filetype-specific "
+                                        "ones."));
+  {
+    GtkWidget *scrolled;
+    GtkWidget *view;
+    GObject   *proxy;
+    
+    scrolled = gtk_scrolled_window_new (NULL, NULL);
+    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+                                    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+    gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled),
+                                         GTK_SHADOW_IN);
+    gtk_container_add (GTK_CONTAINER (widget), scrolled);
+    view = gtk_text_view_new ();
+    proxy = G_OBJECT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)));
+    ggd_opt_group_set_proxy (plugin->config, &GGD_OPT_environ, proxy, "text");
+    gtk_container_add (GTK_CONTAINER (scrolled), view);
+  }
+  gtk_box_pack_start (GTK_BOX (box), widget, TRUE, TRUE, 0);
   
+  
   gtk_widget_show_all (box);
   
   return box;

Modified: trunk/geanygendoc/src/ggd-plugin.h
===================================================================
--- trunk/geanygendoc/src/ggd-plugin.h	2010-05-01 17:46:12 UTC (rev 1322)
+++ trunk/geanygendoc/src/ggd-plugin.h	2010-05-01 17:46:41 UTC (rev 1323)
@@ -55,6 +55,7 @@
 extern gchar     *GGD_OPT_doctype;
 extern gboolean   GGD_OPT_save_to_refresh;
 extern gboolean   GGD_OPT_indent;
+extern gchar     *GGD_OPT_environ;
 
 
 GGD_END_PLUGIN_API

Modified: trunk/geanygendoc/src/ggd.c
===================================================================
--- trunk/geanygendoc/src/ggd.c	2010-05-01 17:46:12 UTC (rev 1322)
+++ trunk/geanygendoc/src/ggd.c	2010-05-01 17:46:41 UTC (rev 1323)
@@ -236,6 +236,11 @@
     
     env = get_env_for_tag (ft, setting, tag_array, tag);
     ctpl_environ_merge (env, ft->user_env, FALSE);
+    if (! ctpl_environ_add_from_string (env, GGD_OPT_environ, &err)) {
+      msgwin_status_add (_("Failed to add global environment, skipping: %s"),
+                         err->message);
+      g_clear_error (&err);
+    }
     comment = parser_parse_to_string (setting->template, env, &err);
     if (! comment) {
       msgwin_status_add (_("Failed to build comment: %s"), err->message);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list