Revision: 2084 http://geany.svn.sourceforge.net/geany/?rev=2084&view=rev Author: eht16 Date: 2007-12-01 09:53:36 -0800 (Sat, 01 Dec 2007)
Log Message: ----------- Remove obsolete SVNdiff plugin, use the VC Diff plugin. Add option for amount of characters to trigger symbol completion. Add document_find_by_filename to the plugin API.
Modified Paths: -------------- trunk/ChangeLog trunk/geany.glade trunk/plugins/Makefile.am trunk/plugins/makefile.win32 trunk/src/editor.c trunk/src/editor.h trunk/src/geany.h trunk/src/interface.c trunk/src/keyfile.c trunk/src/plugindata.h trunk/src/plugins.c trunk/src/prefs.c
Removed Paths: ------------- trunk/plugins/svndiff.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/ChangeLog 2007-12-01 17:53:36 UTC (rev 2084) @@ -2,6 +2,13 @@
* src/templates.c: Avoid inclusion of PHP tags in PHP function descriptions. + * plugins/Makefile.am, plugins/svndiff.c: + Remove obsolete SVNdiff plugin, use the VC Diff plugin. + * geany.glade, src /editor.c, src/editor.h, src/geany.h, + src/interface.c, src/keyfile.c, src/plugindata.h, src/plugins.c, + src/prefs.c: + Add option for amount of characters to trigger symbol completion. + Add document_find_by_filename to the plugin API.
2007-11-30 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
Modified: trunk/geany.glade =================================================================== --- trunk/geany.glade 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/geany.glade 2007-12-01 17:53:36 UTC (rev 2084) @@ -6050,12 +6050,65 @@ </child>
<child> - <widget class="GtkHBox" id="hbox6"> + <widget class="GtkTable" id="table14"> <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">2</property> <property name="homogeneous">False</property> - <property name="spacing">12</property> + <property name="row_spacing">3</property> + <property name="column_spacing">12</property>
<child> + <widget class="GtkSpinButton" id="spin_symbollistheight"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Number of rows to display in the autocompletion list.</property> + <property name="can_focus">True</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> + <property name="numeric">True</property> + <property name="update_policy">GTK_UPDATE_ALWAYS</property> + <property name="snap_to_ticks">False</property> + <property name="wrap">False</property> + <property name="adjustment">9 1 99 1 10 10</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label205"> + <property name="visible">True</property> + <property name="label" translatable="yes">Characters to type for completion:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> <widget class="GtkLabel" id="label173"> <property name="visible">True</property> <property name="label" translatable="yes">Rows of symbol completion list:</property> @@ -6074,16 +6127,19 @@ <property name="angle">0</property> </widget> <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> </packing> </child>
<child> - <widget class="GtkSpinButton" id="spin_symbollistheight"> + <widget class="GtkSpinButton" id="spin_symbol_complete_chars"> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Number of rows to display in the autocompletion list.</property> + <property name="tooltip" translatable="yes">The amount of characters which are necessary to show the symbol auto completion list.</property> <property name="can_focus">True</property> <property name="climb_rate">1</property> <property name="digits">0</property> @@ -6091,12 +6147,14 @@ <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">10 1 99 1 10 10</property> + <property name="adjustment">9 1 99 1 10 10</property> </widget> <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options"></property> </packing> </child> </widget> @@ -6208,7 +6266,7 @@ <property name="n_columns">2</property> <property name="homogeneous">False</property> <property name="row_spacing">3</property> - <property name="column_spacing">12</property> + <property name="column_spacing">0</property>
<child> <widget class="GtkEventBox" id="eventbox1"> @@ -6264,28 +6322,6 @@ </child>
<child> - <widget class="GtkCheckButton" id="check_open_encoding"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">This option disables the automatic detection of the file encoding when opening files and opens the file with the specified encoding (usually not needed).</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Use fixed encoding when opening files</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">False</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="y_options"></property> - </packing> - </child> - - <child> <widget class="GtkLabel" id="label_open_encoding"> <property name="visible">True</property> <property name="label" translatable="yes">Default encoding (existing files):</property> @@ -6306,8 +6342,8 @@ <packing> <property name="left_attach">0</property> <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options"></property> </packing> @@ -6331,12 +6367,34 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> <property name="x_options">fill</property> <property name="y_options">fill</property> </packing> </child> + + <child> + <widget class="GtkCheckButton" id="check_open_encoding"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">This option disables the automatic detection of the file encoding when opening files and opens the file with the specified encoding (usually not needed).</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Use fixed encoding when opening files</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">False</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> </widget> <packing> <property name="padding">0</property>
Modified: trunk/plugins/Makefile.am =================================================================== --- trunk/plugins/Makefile.am 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/plugins/Makefile.am 2007-12-01 17:53:36 UTC (rev 2084) @@ -10,7 +10,6 @@ classbuilder_la_LDFLAGS = -module -avoid-version htmlchars_la_LDFLAGS = -module -avoid-version export_la_LDFLAGS = -module -avoid-version -svndiff_la_LDFLAGS = -module -avoid-version vcdiff_la_LDFLAGS = -module -avoid-version autosave_la_LDFLAGS = -module -avoid-version filebrowser_la_LDFLAGS = -module -avoid-version @@ -22,7 +21,6 @@ classbuilder.la \ htmlchars.la \ export.la \ - svndiff.la \ vcdiff.la \ autosave.la \ filebrowser.la @@ -35,7 +33,6 @@ classbuilder_la_SOURCES = classbuilder.c htmlchars_la_SOURCES = htmlchars.c export_la_SOURCES = export.c -svndiff_la_SOURCES = svndiff.c vcdiff_la_SOURCES = vcdiff.c autosave_la_SOURCES = autosave.c filebrowser_la_SOURCES = filebrowser.c @@ -44,7 +41,6 @@ classbuilder_la_LIBADD = $(GTK_LIBS) htmlchars_la_LIBADD = $(GTK_LIBS) export_la_LIBADD = $(GTK_LIBS) -svndiff_la_LIBADD = $(GTK_LIBS) vcdiff_la_LIBADD = $(GTK_LIBS) autosave_la_LIBAD = $(GTK_LIBS) filebrowser_la_LIBADD = $(GTK_LIBS)
Modified: trunk/plugins/makefile.win32 =================================================================== --- trunk/plugins/makefile.win32 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/plugins/makefile.win32 2007-12-01 17:53:36 UTC (rev 2084) @@ -45,7 +45,6 @@ demoplugin.dll \ classbuilder.dll \ export.dll \ - svndiff.dll \ vcdiff.dll \ autosave.dll \ filebrowser.dll
Deleted: trunk/plugins/svndiff.c =================================================================== --- trunk/plugins/svndiff.c 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/plugins/svndiff.c 2007-12-01 17:53:36 UTC (rev 2084) @@ -1,390 +0,0 @@ -/* - * svndiff.c - this file is part of Geany, a fast and lightweight IDE - * - * Copyright 2007 Frank Lanitz <frank(at)frank(dot)uvena(dot)de> - * Copyright 2007 Enrico Tröger enrico.troeger@uvena.de - * Copyright 2007 Nick Treleaven nick.treleaven@btinternet.com - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* SVNdiff plugin */ -/* This small plugin uses svn to generate a diff against the current - * version inside svn.*/ - -#include "geany.h" -#include "support.h" -#include "plugindata.h" -#include "document.h" -#include "filetypes.h" -#include "utils.h" -#include "project.h" -#include "pluginmacros.h" - -PluginFields *plugin_fields; -GeanyData *geany_data; - - -VERSION_CHECK(27) - -PLUGIN_INFO(_("SVNdiff"), _("Plugin to create a patch of a file against svn"), VERSION, - _("The Geany developer team")) - -static int find_by_filename(const gchar* filename) -{ - guint i; - - for (i = 0; i < doc_array->len; i++) - { - if (doc_list[i].is_valid && doc_list[i].file_name && - strcmp(doc_list[i].file_name, filename) == 0) - return i; - } - return -1; -} - -/* name_prefix should be in UTF-8, and can have a path. */ -static void show_output(const gchar *std_output, const gchar *name_prefix, - const gchar *force_encoding) -{ - gchar *text, *detect_enc = NULL; - gint idx, page; - GtkNotebook *book; - gchar *filename; - - filename = g_path_get_basename(name_prefix); - setptr(filename, g_strconcat(filename, ".svn.diff", NULL)); - - // need to convert input text from the encoding of the original file into - // UTF-8 because internally Geany always needs UTF-8 - if (force_encoding) - { - text = geany_data->encoding->convert_to_utf8_from_charset( - std_output, -1, force_encoding, TRUE); - } - else - { - text = geany_data->encoding->convert_to_utf8(std_output, -1, &detect_enc); - } - if (text) - { - idx = find_by_filename(filename); - if ( idx == -1) - { - idx = geany_data->document->new_file(filename, - geany_data->filetypes[GEANY_FILETYPES_DIFF], text); - } - else - { - scintilla->set_text(doc_list[idx].sci, text); - book = GTK_NOTEBOOK(app->notebook); - page = gtk_notebook_page_num(book, GTK_WIDGET(doc_list[idx].sci)); - gtk_notebook_set_current_page(book, page); - doc_list[idx].changed = FALSE; - documents->set_text_changed(idx); - } - - geany_data->document->set_encoding(idx, - force_encoding ? force_encoding : detect_enc); - } - else - { - ui->set_statusbar(FALSE, _("Could not parse the output of svn diff")); - } - g_free(text); - g_free(detect_enc); - g_free(filename); -} - -static gboolean make_revert(const gchar *svn_file) -{ - gchar *std_output = NULL; - gchar *std_error = NULL; - gint exit_code; - gchar *command = NULL; - - // use '' quotation for Windows compatibility - command = g_strdup_printf("svn revert '%s'", svn_file); - - if (g_spawn_command_line_sync(command, &std_output, &std_error, &exit_code, NULL)) - { - if (! exit_code) - { - if (NZV(std_output)) - { - ui->set_statusbar(FALSE, std_output); - } - else - { - ui->set_statusbar(FALSE, _("No changes were made.")); - return FALSE; - } - } - else - { // SVN returns some error - dialogs->show_msgbox(1, - _("SVN exited with an error: \n%s."), g_strstrip(std_error)); - return FALSE; - } - } - else - { - ui->set_statusbar(FALSE, - _("Something went really wrong. Is there any svn-binary in your path?")); - return FALSE; - } - - return TRUE; -} - -static gchar *make_diff(const gchar *svn_file) -{ - gchar *std_output = NULL; - gchar *std_error = NULL; - gint exit_code; - gchar *command, *text = NULL; - - // use '' quotation for Windows compatibility - command = g_strdup_printf("svn diff --non-interactive '%s'", svn_file); - - if (g_spawn_command_line_sync(command, &std_output, &std_error, &exit_code, NULL)) - { - if (! exit_code) - { - if (NZV(std_output)) - { - text = std_output; - } - else - { - ui->set_statusbar(FALSE, _("No changes were made.")); - } - } - else - { // SVN returns some error - dialogs->show_msgbox(1, - _("SVN exited with an error: \n%s."), g_strstrip(std_error)); - } - } - else - { - ui->set_statusbar(FALSE, - _("Something went really wrong. Is there any svn-binary in your path?")); - } - g_free(std_error); - g_free(command); - return text; -} - - -/* Make a diff from the current directory */ -static void svndirectory_activated(GtkMenuItem *menuitem, gpointer gdata) -{ - gint idx; - gchar *base_name = NULL; - gchar *locale_filename = NULL; - gchar *text; - - idx = documents->get_cur_idx(); - - g_return_if_fail(DOC_IDX_VALID(idx) && doc_list[idx].file_name != NULL); - - if (doc_list[idx].changed) - { - documents->save_file(idx, FALSE); - } - - locale_filename = utils->get_locale_from_utf8(doc_list[idx].file_name); - base_name = g_path_get_dirname(locale_filename); - - text = make_diff(base_name); - if (text) - show_output(text, base_name, NULL); - g_free(text); - - g_free(base_name); - g_free(locale_filename); -} - - -/* Callback if menu item for the current project was activated */ -static void svnproject_activated(GtkMenuItem *menuitem, gpointer gdata) -{ - gint idx; - gchar *locale_filename = NULL; - gchar *text; - - idx = documents->get_cur_idx(); - - g_return_if_fail(project != NULL && NZV(project->base_path)); - - if (DOC_IDX_VALID(idx) && doc_list[idx].changed && doc_list[idx].file_name != NULL) - { - documents->save_file(idx, FALSE); - } - - locale_filename = utils->get_locale_from_utf8(project->base_path); - text = make_diff(locale_filename); - if (text) - show_output(text, project->name, NULL); - g_free(text); - g_free(locale_filename); -} - - -/* Callback if menu item for a single file was activated */ -static void svnfile_activated(GtkMenuItem *menuitem, gpointer gdata) -{ - gint idx; - gchar *locale_filename, *text; - - idx = documents->get_cur_idx(); - - g_return_if_fail(DOC_IDX_VALID(idx) && doc_list[idx].file_name != NULL); - - if (doc_list[idx].changed) - { - documents->save_file(idx, FALSE); - } - - locale_filename = utils->get_locale_from_utf8(doc_list[idx].file_name); - - text = make_diff(locale_filename); - if (text) - show_output(text, doc_list[idx].file_name, doc_list[idx].encoding); - g_free(text); - g_free(locale_filename); -} - -/* Callback if menu item for a single file was activated */ -static void svnrevert_activated(GtkMenuItem *menuitem, gpointer gdata) -{ - gint idx; - gchar *locale_filename; - - idx = documents->get_cur_idx(); - - g_return_if_fail(DOC_IDX_VALID(idx) && doc_list[idx].file_name != NULL); - - if (dialogs->show_question(_("Do you realy want to revert '%s'?"), doc_list[idx].file_name)) - { - locale_filename = utils->get_locale_from_utf8(doc_list[idx].file_name); - - if (make_revert(locale_filename)) - { - documents->reload_file(idx, NULL); - } - g_free(locale_filename); - } -} - -static GtkWidget *menu_svndiff_file = NULL; -static GtkWidget *menu_svndiff_dir = NULL; -static GtkWidget *menu_svndiff_project = NULL; -static GtkWidget *menu_svndiff_revert = NULL; - -static void update_menu_items() -{ - document *doc; - gboolean have_file; - - doc = documents->get_current(); - have_file = doc && doc->file_name && g_path_is_absolute(doc->file_name); - - gtk_widget_set_sensitive(menu_svndiff_file, have_file); - gtk_widget_set_sensitive(menu_svndiff_dir, have_file); - gtk_widget_set_sensitive(menu_svndiff_revert, have_file); - gtk_widget_set_sensitive(menu_svndiff_project, - project != NULL && NZV(project->base_path)); -} - - -/* Called by Geany to initialize the plugin */ -void init(GeanyData *data) -{ - GtkWidget *menu_svndiff = NULL; - GtkWidget *menu_svndiff_menu = NULL; - GtkTooltips *tooltips = NULL; - gchar *tmp = NULL; - gboolean have_svn = FALSE; - - // Check for svn inside $PATH. Thanks to Yura Siamashka yurand2@gmail.com - tmp = g_find_program_in_path("svn"); - have_svn = (tmp != NULL); - g_free(tmp); - - tooltips = gtk_tooltips_new(); - - menu_svndiff = gtk_image_menu_item_new_with_mnemonic(_("_SVNdiff")); - gtk_container_add(GTK_CONTAINER(data->tools_menu), menu_svndiff); - - g_signal_connect((gpointer) menu_svndiff, "activate", - G_CALLBACK(update_menu_items), NULL); - - menu_svndiff_menu = gtk_menu_new (); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_svndiff), menu_svndiff_menu); - - // Single file - menu_svndiff_file = gtk_menu_item_new_with_mnemonic(_("From Current _File")); - gtk_container_add(GTK_CONTAINER (menu_svndiff_menu), menu_svndiff_file); - gtk_tooltips_set_tip (tooltips, menu_svndiff_file, - _("Make a diff from the current active file"), NULL); - - g_signal_connect((gpointer) menu_svndiff_file, "activate", - G_CALLBACK(svnfile_activated), NULL); - - // Directory - menu_svndiff_dir = gtk_menu_item_new_with_mnemonic(_("From Current _Directory")); - gtk_container_add(GTK_CONTAINER (menu_svndiff_menu), menu_svndiff_dir); - gtk_tooltips_set_tip (tooltips, menu_svndiff_dir, - _("Make a diff from the directory of the current active file"), NULL); - - g_signal_connect((gpointer) menu_svndiff_dir, "activate", - G_CALLBACK(svndirectory_activated), NULL); - - // Project - menu_svndiff_project = gtk_menu_item_new_with_mnemonic(_("From Current _Project")); - gtk_container_add(GTK_CONTAINER (menu_svndiff_menu), menu_svndiff_project); - gtk_tooltips_set_tip (tooltips, menu_svndiff_project, - _("Make a diff from the current project's base path"), NULL); - - g_signal_connect((gpointer) menu_svndiff_project, "activate", - G_CALLBACK(svnproject_activated), NULL); - - gtk_container_add(GTK_CONTAINER (menu_svndiff_menu), - gtk_separator_menu_item_new()); - - // SVN revert - menu_svndiff_revert = gtk_menu_item_new_with_mnemonic(_("Revert Changes")); - gtk_container_add(GTK_CONTAINER (menu_svndiff_menu), menu_svndiff_revert); - gtk_tooltips_set_tip(tooltips, menu_svndiff_revert, _("Revert all made changes at this file"), NULL); - g_signal_connect((gpointer) menu_svndiff_revert, "activate", G_CALLBACK(svnrevert_activated), NULL); - - gtk_widget_show_all(menu_svndiff); - - plugin_fields->menu_item = menu_svndiff; - if (have_svn) - plugin_fields->flags = PLUGIN_IS_DOCUMENT_SENSITIVE; - else - gtk_widget_set_sensitive(plugin_fields->menu_item, FALSE); -} - - -/* Called by Geany before unloading the plugin. */ -void cleanup() -{ - // remove the menu item added in init() - gtk_widget_destroy(plugin_fields->menu_item); -}
Modified: trunk/src/editor.c =================================================================== --- trunk/src/editor.c 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/editor.c 2007-12-01 17:53:36 UTC (rev 2084) @@ -1030,8 +1030,9 @@ ret = autocomplete_html(sci, root, rootlen); else { - // force is set when called by keyboard shortcut, otherwise start at the 4th char - if (force || rootlen >= 4) + // force is set when called by keyboard shortcut, otherwise start at the + // editor_prefs.symbolcompletion_min_chars'th char + if (force || rootlen >= editor_prefs.symbolcompletion_min_chars) ret = autocomplete_tags(idx, root, rootlen); }
Modified: trunk/src/editor.h =================================================================== --- trunk/src/editor.h 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/editor.h 2007-12-01 17:53:36 UTC (rev 2084) @@ -70,6 +70,7 @@ gboolean auto_complete_symbols; gboolean auto_close_xml_tags; gboolean complete_snippets; + gint symbolcompletion_min_chars; gint symbolcompletion_max_height; GHashTable *snippets; gboolean brace_match_ltgt; // whether to highlight < and > chars (hidden pref)
Modified: trunk/src/geany.h =================================================================== --- trunk/src/geany.h 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/geany.h 2007-12-01 17:53:36 UTC (rev 2084) @@ -55,6 +55,7 @@ #define GEANY_MAX_WORD_LENGTH 192 #define GEANY_MAX_AUTOCOMPLETE_WORDS 30 #define GEANY_MAX_SYMBOLLIST_HEIGHT 10 +#define GEANY_MIN_SYMBOLLIST_CHARS 4 #define GEANY_STRING_UNTITLED _("untitled") #define GEANY_MSGWIN_HEIGHT 208 #define GEANY_WINDOW_MINIMAL_WIDTH 620
Modified: trunk/src/interface.c =================================================================== --- trunk/src/interface.c 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/interface.c 2007-12-01 17:53:36 UTC (rev 2084) @@ -2611,10 +2611,13 @@ GtkWidget *check_complete_snippets; GtkWidget *check_xmltag; GtkWidget *check_symbol_auto_completion; - GtkWidget *hbox6; - GtkWidget *label173; + GtkWidget *table14; GtkObject *spin_symbollistheight_adj; GtkWidget *spin_symbollistheight; + GtkWidget *label205; + GtkWidget *label173; + GtkObject *spin_symbol_complete_chars_adj; + GtkWidget *spin_symbol_complete_chars; GtkWidget *label177; GtkWidget *label95; GtkWidget *vbox18; @@ -2625,10 +2628,10 @@ GtkWidget *eventbox1; GtkWidget *combo_new_encoding; GtkWidget *label153; - GtkWidget *check_open_encoding; GtkWidget *label_open_encoding; GtkWidget *eventbox3; GtkWidget *combo_open_encoding; + GtkWidget *check_open_encoding; GtkWidget *label109; GtkWidget *frame2; GtkWidget *alignment3; @@ -3702,22 +3705,44 @@ gtk_tooltips_set_tip (tooltips, check_symbol_auto_completion, _("Automatic completion of known symbols in open files (function names, global variables, ...)"), NULL); gtk_button_set_focus_on_click (GTK_BUTTON (check_symbol_auto_completion), FALSE);
- hbox6 = gtk_hbox_new (FALSE, 12); - gtk_widget_show (hbox6); - gtk_box_pack_start (GTK_BOX (vbox19), hbox6, FALSE, FALSE, 0); + table14 = gtk_table_new (2, 2, FALSE); + gtk_widget_show (table14); + gtk_box_pack_start (GTK_BOX (vbox19), table14, FALSE, FALSE, 0); + gtk_table_set_row_spacings (GTK_TABLE (table14), 3); + gtk_table_set_col_spacings (GTK_TABLE (table14), 12);
- label173 = gtk_label_new (_("Rows of symbol completion list:")); - gtk_widget_show (label173); - gtk_box_pack_start (GTK_BOX (hbox6), label173, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label173), 0, 0.5); - - spin_symbollistheight_adj = gtk_adjustment_new (10, 1, 99, 1, 10, 10); + spin_symbollistheight_adj = gtk_adjustment_new (9, 1, 99, 1, 10, 10); spin_symbollistheight = gtk_spin_button_new (GTK_ADJUSTMENT (spin_symbollistheight_adj), 1, 0); gtk_widget_show (spin_symbollistheight); - gtk_box_pack_start (GTK_BOX (hbox6), spin_symbollistheight, FALSE, TRUE, 0); + gtk_table_attach (GTK_TABLE (table14), spin_symbollistheight, 1, 2, 1, 2, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, spin_symbollistheight, _("Number of rows to display in the autocompletion list."), NULL); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin_symbollistheight), TRUE);
+ label205 = gtk_label_new (_("Characters to type for completion:")); + gtk_widget_show (label205); + gtk_table_attach (GTK_TABLE (table14), label205, 0, 1, 0, 1, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label205), 0, 0.5); + + label173 = gtk_label_new (_("Rows of symbol completion list:")); + gtk_widget_show (label173); + gtk_table_attach (GTK_TABLE (table14), label173, 0, 1, 1, 2, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label173), 0, 0.5); + + spin_symbol_complete_chars_adj = gtk_adjustment_new (9, 1, 99, 1, 10, 10); + spin_symbol_complete_chars = gtk_spin_button_new (GTK_ADJUSTMENT (spin_symbol_complete_chars_adj), 1, 0); + gtk_widget_show (spin_symbol_complete_chars); + gtk_table_attach (GTK_TABLE (table14), spin_symbol_complete_chars, 1, 2, 0, 1, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_tooltips_set_tip (tooltips, spin_symbol_complete_chars, _("The amount of characters which are necessary to show the symbol auto completion list."), NULL); + gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin_symbol_complete_chars), TRUE); + label177 = gtk_label_new (_("<b>Completions</b>")); gtk_widget_show (label177); gtk_frame_set_label_widget (GTK_FRAME (frame18), label177); @@ -3749,7 +3774,6 @@ gtk_widget_show (table5); gtk_box_pack_start (GTK_BOX (vbox8), table5, FALSE, TRUE, 0); gtk_table_set_row_spacings (GTK_TABLE (table5), 3); - gtk_table_set_col_spacings (GTK_TABLE (table5), 12);
eventbox1 = gtk_event_box_new (); gtk_widget_show (eventbox1); @@ -3769,24 +3793,16 @@ (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label153), 0, 0.5);
- check_open_encoding = gtk_check_button_new_with_mnemonic (_("Use fixed encoding when opening files")); - gtk_widget_show (check_open_encoding); - gtk_table_attach (GTK_TABLE (table5), check_open_encoding, 0, 2, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip (tooltips, check_open_encoding, _("This option disables the automatic detection of the file encoding when opening files and opens the file with the specified encoding (usually not needed)."), NULL); - gtk_button_set_focus_on_click (GTK_BUTTON (check_open_encoding), FALSE); - label_open_encoding = gtk_label_new (_("Default encoding (existing files):")); gtk_widget_show (label_open_encoding); - gtk_table_attach (GTK_TABLE (table5), label_open_encoding, 0, 1, 1, 2, + gtk_table_attach (GTK_TABLE (table5), label_open_encoding, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_open_encoding), 0, 0.5);
eventbox3 = gtk_event_box_new (); gtk_widget_show (eventbox3); - gtk_table_attach (GTK_TABLE (table5), eventbox3, 1, 2, 1, 2, + gtk_table_attach (GTK_TABLE (table5), eventbox3, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_tooltips_set_tip (tooltips, eventbox3, _("Sets the default encoding for opening existing files."), NULL); @@ -3795,6 +3811,14 @@ gtk_widget_show (combo_open_encoding); gtk_container_add (GTK_CONTAINER (eventbox3), combo_open_encoding);
+ check_open_encoding = gtk_check_button_new_with_mnemonic (_("Use fixed encoding when opening files")); + gtk_widget_show (check_open_encoding); + gtk_table_attach (GTK_TABLE (table5), check_open_encoding, 0, 2, 1, 2, + (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_tooltips_set_tip (tooltips, check_open_encoding, _("This option disables the automatic detection of the file encoding when opening files and opens the file with the specified encoding (usually not needed)."), NULL); + gtk_button_set_focus_on_click (GTK_BUTTON (check_open_encoding), FALSE); + label109 = gtk_label_new (_("<b>New files</b>")); gtk_widget_show (label109); gtk_frame_set_label_widget (GTK_FRAME (frame6), label109); @@ -4536,9 +4560,11 @@ GLADE_HOOKUP_OBJECT (prefs_dialog, check_complete_snippets, "check_complete_snippets"); GLADE_HOOKUP_OBJECT (prefs_dialog, check_xmltag, "check_xmltag"); GLADE_HOOKUP_OBJECT (prefs_dialog, check_symbol_auto_completion, "check_symbol_auto_completion"); - GLADE_HOOKUP_OBJECT (prefs_dialog, hbox6, "hbox6"); + GLADE_HOOKUP_OBJECT (prefs_dialog, table14, "table14"); + GLADE_HOOKUP_OBJECT (prefs_dialog, spin_symbollistheight, "spin_symbollistheight"); + GLADE_HOOKUP_OBJECT (prefs_dialog, label205, "label205"); GLADE_HOOKUP_OBJECT (prefs_dialog, label173, "label173"); - GLADE_HOOKUP_OBJECT (prefs_dialog, spin_symbollistheight, "spin_symbollistheight"); + GLADE_HOOKUP_OBJECT (prefs_dialog, spin_symbol_complete_chars, "spin_symbol_complete_chars"); GLADE_HOOKUP_OBJECT (prefs_dialog, label177, "label177"); GLADE_HOOKUP_OBJECT (prefs_dialog, label95, "label95"); GLADE_HOOKUP_OBJECT (prefs_dialog, vbox18, "vbox18"); @@ -4549,10 +4575,10 @@ GLADE_HOOKUP_OBJECT (prefs_dialog, eventbox1, "eventbox1"); GLADE_HOOKUP_OBJECT (prefs_dialog, combo_new_encoding, "combo_new_encoding"); GLADE_HOOKUP_OBJECT (prefs_dialog, label153, "label153"); - GLADE_HOOKUP_OBJECT (prefs_dialog, check_open_encoding, "check_open_encoding"); GLADE_HOOKUP_OBJECT (prefs_dialog, label_open_encoding, "label_open_encoding"); GLADE_HOOKUP_OBJECT (prefs_dialog, eventbox3, "eventbox3"); GLADE_HOOKUP_OBJECT (prefs_dialog, combo_open_encoding, "combo_open_encoding"); + GLADE_HOOKUP_OBJECT (prefs_dialog, check_open_encoding, "check_open_encoding"); GLADE_HOOKUP_OBJECT (prefs_dialog, label109, "label109"); GLADE_HOOKUP_OBJECT (prefs_dialog, frame2, "frame2"); GLADE_HOOKUP_OBJECT (prefs_dialog, alignment3, "alignment3");
Modified: trunk/src/keyfile.c =================================================================== --- trunk/src/keyfile.c 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/keyfile.c 2007-12-01 17:53:36 UTC (rev 2084) @@ -198,6 +198,7 @@
// editor g_key_file_set_integer(config, PACKAGE, "symbolcompletion_max_height", editor_prefs.symbolcompletion_max_height); + g_key_file_set_integer(config, PACKAGE, "symbolcompletion_min_chars", editor_prefs.symbolcompletion_min_chars); g_key_file_set_boolean(config, PACKAGE, "use_folding", editor_prefs.folding); g_key_file_set_boolean(config, PACKAGE, "unfold_all_children", editor_prefs.unfold_all_children); g_key_file_set_integer(config, PACKAGE, "indent_mode", editor_prefs.indent_mode); @@ -487,6 +488,7 @@ editor_prefs.long_line_type = utils_get_setting_integer(config, PACKAGE, "long_line_type", 0); editor_prefs.long_line_color = utils_get_setting_string(config, PACKAGE, "long_line_color", "#C2EBC2"); editor_prefs.long_line_column = utils_get_setting_integer(config, PACKAGE, "long_line_column", 72); + editor_prefs.symbolcompletion_min_chars = utils_get_setting_integer(config, PACKAGE, "symbolcompletion_min_chars", GEANY_MIN_SYMBOLLIST_CHARS); editor_prefs.symbolcompletion_max_height = utils_get_setting_integer(config, PACKAGE, "symbolcompletion_max_height", GEANY_MAX_SYMBOLLIST_HEIGHT); editor_prefs.line_wrapping = utils_get_setting_boolean(config, PACKAGE, "line_breaking", FALSE); // default is off for better performance editor_prefs.indent_mode = utils_get_setting_integer(config, PACKAGE, "indent_mode", INDENT_CURRENTCHARS);
Modified: trunk/src/plugindata.h =================================================================== --- trunk/src/plugindata.h 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/plugindata.h 2007-12-01 17:53:36 UTC (rev 2084) @@ -93,12 +93,12 @@
/* The API version should be incremented whenever any plugin data types below are * modified or appended to. */ -static const gint api_version = 32; +static const gint api_version = 33;
/* The ABI version should be incremented whenever existing fields in the plugin * data types below have to be changed or reordered. It should stay the same if fields * are only appended, as this doesn't affect existing fields. */ -static const gint abi_version = 16; +static const gint abi_version = 17;
/* This performs runtime checks that try to ensure: * 1. Geany ABI data types are compatible with this plugin. @@ -211,6 +211,7 @@ gint (*new_file) (const gchar *filename, struct filetype *ft, const gchar *text); gint (*get_cur_idx) (); gint (*get_n_idx) (guint i); + gint (*find_by_filename) (const gchar *filename, gboolean is_tm_filename); struct document* (*get_current) (); gboolean (*save_file)(gint idx, gboolean force); gint (*open_file)(const gchar *locale_filename, gboolean readonly,
Modified: trunk/src/plugins.c =================================================================== --- trunk/src/plugins.c 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/plugins.c 2007-12-01 17:53:36 UTC (rev 2084) @@ -87,6 +87,7 @@ &document_new_file, &document_get_cur_idx, &document_get_n_idx, + &document_find_by_filename, &document_get_current, &document_save_file, &document_open_file,
Modified: trunk/src/prefs.c =================================================================== --- trunk/src/prefs.c 2007-12-01 11:27:03 UTC (rev 2083) +++ trunk/src/prefs.c 2007-12-01 17:53:36 UTC (rev 2084) @@ -403,7 +403,10 @@ widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbollistheight"); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.symbolcompletion_max_height);
+ widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbol_complete_chars"); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.symbolcompletion_min_chars);
+ // Tools Settings if (prefs.tools_make_cmd) gtk_entry_set_text(GTK_ENTRY(lookup_widget(ui_widgets.prefs_dialog, "entry_com_make")), prefs.tools_make_cmd); @@ -774,6 +777,9 @@ widget = lookup_widget(ui_widgets.prefs_dialog, "check_symbol_auto_completion"); editor_prefs.auto_complete_symbols = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbol_complete_chars"); + editor_prefs.symbolcompletion_min_chars = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); + widget = lookup_widget(ui_widgets.prefs_dialog, "spin_symbollistheight"); editor_prefs.symbolcompletion_max_height = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.