SF.net SVN: geany: [2580] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Wed May 14 15:36:29 UTC 2008
Revision: 2580
http://geany.svn.sourceforge.net/geany/?rev=2580&view=rev
Author: eht16
Date: 2008-05-14 08:36:27 -0700 (Wed, 14 May 2008)
Log Message:
-----------
Add preferences for default end of line characters for new files (closes #1895362) and to disable the automatic continuation of multi-line comments in C-like languages.
Enable multi-line continuation also for CSS files.
Modified Paths:
--------------
trunk/ChangeLog
trunk/doc/geany.html
trunk/doc/geany.txt
trunk/geany.glade
trunk/src/document.c
trunk/src/document.h
trunk/src/editor.c
trunk/src/editor.h
trunk/src/interface.c
trunk/src/keyfile.c
trunk/src/plugindata.h
trunk/src/prefs.c
trunk/src/prefs.h
trunk/src/utils.c
trunk/src/utils.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/ChangeLog 2008-05-14 15:36:27 UTC (rev 2580)
@@ -1,3 +1,15 @@
+2008-05-14 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * geany.glade, src/document.c, src/document.h, src/editor.c,
+ src/editor.h, src/interface.c, src/keyfile.c, src/plugindata.h,
+ src/prefs.c, src/prefs.h, src/utils.c, src/utils.h, doc/geany.txt,
+ doc/geany.html:
+ Add preferences for default end of line characters for new files
+ (closes #1895362) and to disable the automatic continuation of
+ multi-line comments in C-like languages.
+ Enable multi-line continuation also for CSS files.
+
+
2008-05-14 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/templates.c:
Modified: trunk/doc/geany.html
===================================================================
--- trunk/doc/geany.html 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/doc/geany.html 2008-05-14 15:36:27 UTC (rev 2580)
@@ -3,10 +3,10 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" />
<title>Geany</title>
<meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" />
-<meta name="date" content="2008-05-09" />
+<meta name="date" content="2008-05-13" />
<style type="text/css">
/*
@@ -133,7 +133,7 @@
<br />Nick Treleaven
<br />Frank Lanitz</td></tr>
<tr><th class="docinfo-name">Date:</th>
-<td>2008-05-09</td></tr>
+<td>2008-05-13</td></tr>
<tr><th class="docinfo-name">Version:</th>
<td>0.15</td></tr>
</tbody>
@@ -1747,6 +1747,23 @@
See <a class="reference" href="#user-definable-snippets">User-definable snippets</a>.</dd>
<dt>XML tag autocompletion</dt>
<dd>When you open an XML tag automatically generate its completion tag.</dd>
+<dt>Automatic continuation multi-line comments</dt>
+<dd><p class="first">Continue automatically multi-line comments in languages like C, C++
+and Java when a new line is entered inside such a comment.
+With this option enabled, Geany will insert a <tt class="docutils literal"><span class="pre">*</span></tt> on every new line
+inside a multi-line comment, for example when you press return in the
+following C code:</p>
+<pre class="literal-block">
+/*
+ * This is a C multi-line comment, press <Return>
+</pre>
+<p>then Geany would insert:</p>
+<pre class="literal-block">
+*
+</pre>
+<p class="last">on the next line with the correct indentation based on the previous line,
+as long as the multi-line is not closed by <tt class="docutils literal"><span class="pre">*/</span></tt>.</p>
+</dd>
<dt>Automatic symbol completion</dt>
<dd>When you start to type a symbol name, look for the full string to
allow it to be completed for you.</dd>
@@ -1771,6 +1788,11 @@
<dt>Default encoding (existing files)</dt>
<dd>Opens all files with the specified encoding instead of auto-detecting it.
Use this option when it's not possible for Geany to detect the exact encoding.</dd>
+<dt>Default end of line characters</dt>
+<dd>The end of line characters to which should be used for new files.
+On Windows systems, you generally want to use CR/LF which are the common
+characters to mark line breaks.
+On Unix-like systems, LF is default and CR is used on MAC systems.</dd>
</dl>
</div>
<div class="section">
@@ -4085,7 +4107,7 @@
<div class="footer">
<hr class="footer" />
<a class="reference" href="geany.txt">View document source</a>.
-Generated on: 2008-05-13 17:12 UTC.
+Generated on: 2008-05-14 14:29 UTC.
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Modified: trunk/doc/geany.txt
===================================================================
--- trunk/doc/geany.txt 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/doc/geany.txt 2008-05-14 15:36:27 UTC (rev 2580)
@@ -1535,6 +1535,23 @@
XML tag autocompletion
When you open an XML tag automatically generate its completion tag.
+Automatic continuation multi-line comments
+ Continue automatically multi-line comments in languages like C, C++
+ and Java when a new line is entered inside such a comment.
+ With this option enabled, Geany will insert a ``*`` on every new line
+ inside a multi-line comment, for example when you press return in the
+ following C code::
+
+ /*
+ * This is a C multi-line comment, press <Return>
+
+ then Geany would insert::
+
+ *
+
+ on the next line with the correct indentation based on the previous line,
+ as long as the multi-line is not closed by ``*/``.
+
Automatic symbol completion
When you start to type a symbol name, look for the full string to
allow it to be completed for you.
@@ -1565,6 +1582,12 @@
Opens all files with the specified encoding instead of auto-detecting it.
Use this option when it's not possible for Geany to detect the exact encoding.
+Default end of line characters
+ The end of line characters to which should be used for new files.
+ On Windows systems, you generally want to use CR/LF which are the common
+ characters to mark line breaks.
+ On Unix-like systems, LF is default and CR is used on MAC systems.
+
Saving files
````````````
Perform special formatting operations when a document is saved. These
Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/geany.glade 2008-05-14 15:36:27 UTC (rev 2580)
@@ -6311,6 +6311,26 @@
</child>
<child>
+ <widget class="GtkCheckButton" id="check_auto_multiline">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Continue automatically multi-line comments in languages like C, C++ and Java when a new line is entered inside such a comment.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Automatic continuation multi-line comments</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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
<widget class="GtkCheckButton" id="check_symbol_auto_completion">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Automatic completion of known symbols in open files (function names, global variables, ...)</property>
@@ -6441,8 +6461,8 @@
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -6543,7 +6563,7 @@
<child>
<widget class="GtkTable" id="table5">
<property name="visible">True</property>
- <property name="n_rows">3</property>
+ <property name="n_rows">4</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">3</property>
@@ -6676,6 +6696,50 @@
<property name="y_options"></property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkLabel" id="label210">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Default end of line characters:</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">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combo_eol">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/document.c 2008-05-14 15:36:27 UTC (rev 2580)
@@ -618,11 +618,12 @@
else
sci_clear_all(doc_list[idx].sci);
-#ifdef G_OS_WIN32
- sci_set_eol_mode(doc_list[idx].sci, SC_EOL_CRLF);
-#else
- sci_set_eol_mode(doc_list[idx].sci, SC_EOL_LF);
-#endif
+ sci_set_eol_mode(doc_list[idx].sci, prefs.default_eol_character);
+ /* convert the eol chars in the template text in case they are different from
+ * from prefs.default_eol */
+ if (text != NULL)
+ sci_convert_eols(doc_list[idx].sci, prefs.default_eol_character);
+
document_set_use_tabs(idx, editor_prefs.use_tabs);
sci_set_undo_collection(doc_list[idx].sci, TRUE);
sci_empty_undo_buffer(doc_list[idx].sci);
Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/document.h 2008-05-14 15:36:27 UTC (rev 2580)
@@ -34,7 +34,15 @@
#include "Scintilla.h"
#include "ScintillaWidget.h"
+#if defined(G_OS_WIN32)
+# define GEANY_DEFAULT_EOL_CHARACTER SC_EOL_CRLF
+#elif defined(G_OS_UNIX)
+# define GEANY_DEFAULT_EOL_CHARACTER SC_EOL_LF
+#else
+# define GEANY_DEFAULT_EOL_CHARACTER SC_EOL_CR
+#endif
+
typedef struct FileEncoding
{
gchar *encoding;
Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/editor.c 2008-05-14 15:36:27 UTC (rev 2580)
@@ -614,17 +614,18 @@
check_python_indent(idx, pos);
}
+ if (editor_prefs.auto_continue_multiline)
+ { /* " * " auto completion in multiline C/C++/D/Java comments */
+ auto_multiline(idx, pos);
+ }
+
if (editor_prefs.complete_snippets)
{
- /* " * " auto completion in multiline C/C++/D/Java comments */
- auto_multiline(idx, pos);
-
editor_auto_latex(idx, pos);
}
if (editor_prefs.newline_strip)
- {
- /* strip the trailing spaces on the previous line */
+ { /* strip the trailing spaces on the previous line */
document_strip_line_trailing_spaces(idx, line - 1);
}
}
@@ -2182,10 +2183,10 @@
ScintillaObject *sci = doc_list[idx].sci;
gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - utils_get_eol_char_len(idx), 0);
gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
- gint i;
if ((lexer == SCLEX_CPP && (style == SCE_C_COMMENT || style == SCE_C_COMMENTDOC)) ||
(lexer == SCLEX_HTML && style == SCE_HPHP_COMMENT) ||
+ (lexer == SCLEX_CSS && style == SCE_CSS_COMMENT) ||
(lexer == SCLEX_D && (style == SCE_D_COMMENT ||
style == SCE_D_COMMENTDOC ||
style == SCE_D_COMMENTNESTED)))
@@ -2196,6 +2197,7 @@
gchar *whitespace = ""; /* to hold whitespace if needed */
gchar *result;
gint len = strlen(previous_line);
+ gint i;
/* find and stop at end of multi line comment */
i = len - 1;
Modified: trunk/src/editor.h
===================================================================
--- trunk/src/editor.h 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/editor.h 2008-05-14 15:36:27 UTC (rev 2580)
@@ -84,6 +84,7 @@
gboolean complete_snippets_whilst_editing; /* hidden pref */
gboolean detect_tab_mode;
gint line_break_column;
+ gboolean auto_continue_multiline;
} EditorPrefs;
extern EditorPrefs editor_prefs;
Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/interface.c 2008-05-14 15:36:27 UTC (rev 2580)
@@ -2657,6 +2657,7 @@
GtkWidget *vbox19;
GtkWidget *check_complete_snippets;
GtkWidget *check_xmltag;
+ GtkWidget *check_auto_multiline;
GtkWidget *check_symbol_auto_completion;
GtkWidget *table14;
GtkObject *spin_symbollistheight_adj;
@@ -2679,6 +2680,8 @@
GtkWidget *eventbox3;
GtkWidget *combo_open_encoding;
GtkWidget *check_open_encoding;
+ GtkWidget *label210;
+ GtkWidget *combo_eol;
GtkWidget *label109;
GtkWidget *frame2;
GtkWidget *alignment3;
@@ -3819,6 +3822,12 @@
gtk_tooltips_set_tip (tooltips, check_xmltag, _("Automatic completion and closing of XML tags (includes HTML tags)"), NULL);
gtk_button_set_focus_on_click (GTK_BUTTON (check_xmltag), FALSE);
+ check_auto_multiline = gtk_check_button_new_with_mnemonic (_("Automatic continuation multi-line comments"));
+ gtk_widget_show (check_auto_multiline);
+ gtk_box_pack_start (GTK_BOX (vbox19), check_auto_multiline, FALSE, FALSE, 0);
+ gtk_tooltips_set_tip (tooltips, check_auto_multiline, _("Continue automatically multi-line comments in languages like C, C++ and Java when a new line is entered inside such a comment."), NULL);
+ gtk_button_set_focus_on_click (GTK_BUTTON (check_auto_multiline), FALSE);
+
check_symbol_auto_completion = gtk_check_button_new_with_mnemonic (_("Automatic symbol completion"));
gtk_widget_show (check_symbol_auto_completion);
gtk_box_pack_start (GTK_BOX (vbox19), check_symbol_auto_completion, FALSE, FALSE, 0);
@@ -3827,7 +3836,7 @@
table14 = gtk_table_new (2, 2, FALSE);
gtk_widget_show (table14);
- gtk_box_pack_start (GTK_BOX (vbox19), table14, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox19), table14, TRUE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (table14), 3);
gtk_table_set_col_spacings (GTK_TABLE (table14), 12);
@@ -3890,7 +3899,7 @@
gtk_widget_show (vbox8);
gtk_container_add (GTK_CONTAINER (alignment7), vbox8);
- table5 = gtk_table_new (3, 2, FALSE);
+ table5 = gtk_table_new (4, 2, FALSE);
gtk_widget_show (table5);
gtk_box_pack_start (GTK_BOX (vbox8), table5, FALSE, TRUE, 0);
gtk_table_set_row_spacings (GTK_TABLE (table5), 3);
@@ -3939,6 +3948,19 @@
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);
+ label210 = gtk_label_new (_("Default end of line characters:"));
+ gtk_widget_show (label210);
+ gtk_table_attach (GTK_TABLE (table5), label210, 0, 1, 3, 4,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label210), 0, 0.5);
+
+ combo_eol = gtk_combo_box_new_text ();
+ gtk_widget_show (combo_eol);
+ gtk_table_attach (GTK_TABLE (table5), combo_eol, 1, 2, 3, 4,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (GTK_FILL), 0, 0);
+
label109 = gtk_label_new (_("<b>New files</b>"));
gtk_widget_show (label109);
gtk_frame_set_label_widget (GTK_FRAME (frame6), label109);
@@ -4688,6 +4710,7 @@
GLADE_HOOKUP_OBJECT (prefs_dialog, vbox19, "vbox19");
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_auto_multiline, "check_auto_multiline");
GLADE_HOOKUP_OBJECT (prefs_dialog, check_symbol_auto_completion, "check_symbol_auto_completion");
GLADE_HOOKUP_OBJECT (prefs_dialog, table14, "table14");
GLADE_HOOKUP_OBJECT (prefs_dialog, spin_symbollistheight, "spin_symbollistheight");
@@ -4708,6 +4731,8 @@
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, label210, "label210");
+ GLADE_HOOKUP_OBJECT (prefs_dialog, combo_eol, "combo_eol");
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 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/keyfile.c 2008-05-14 15:36:27 UTC (rev 2580)
@@ -241,6 +241,7 @@
g_key_file_set_boolean(config, PACKAGE, "pref_editor_smart_home_key", editor_prefs.smart_home_key);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_newline_strip", editor_prefs.newline_strip);
g_key_file_set_integer(config, PACKAGE, "line_break_column", editor_prefs.line_break_column);
+ g_key_file_set_boolean(config, PACKAGE, "auto_continue_multiline", editor_prefs.auto_continue_multiline);
/* files */
g_key_file_set_string(config, PACKAGE, "pref_editor_default_new_encoding", encodings[prefs.default_new_encoding].charset);
@@ -248,6 +249,7 @@
g_key_file_set_string(config, PACKAGE, "pref_editor_default_open_encoding", "none");
else
g_key_file_set_string(config, PACKAGE, "pref_editor_default_open_encoding", encodings[prefs.default_open_encoding].charset);
+ g_key_file_set_integer(config, PACKAGE, "default_eol_character", prefs.default_eol_character);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_new_line", prefs.final_new_line);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_replace_tabs", prefs.replace_tabs);
g_key_file_set_boolean(config, PACKAGE, "pref_editor_trail_space", prefs.strip_trailing_spaces);
@@ -548,6 +550,7 @@
editor_prefs.complete_snippets_whilst_editing = utils_get_setting_boolean(config, PACKAGE, "complete_snippets_whilst_editing", FALSE);
editor_prefs.scroll_stop_at_last_line = utils_get_setting_boolean(config, PACKAGE, "scroll_stop_at_last_line", FALSE);
editor_prefs.line_break_column = utils_get_setting_integer(config, PACKAGE, "line_break_column", 72);
+ editor_prefs.auto_continue_multiline = utils_get_setting_boolean(config, PACKAGE, "auto_continue_multiline", TRUE);
/* Files
* use current locale encoding as default for new files (should be UTF-8 in most cases) */
@@ -576,6 +579,7 @@
g_free(tmp_string);
}
+ prefs.default_eol_character = utils_get_setting_integer(config, PACKAGE, "default_eol_character", GEANY_DEFAULT_EOL_CHARACTER);
prefs.replace_tabs = utils_get_setting_boolean(config, PACKAGE, "pref_editor_replace_tabs", FALSE);
prefs.final_new_line = utils_get_setting_boolean(config, PACKAGE, "pref_editor_new_line", TRUE);
prefs.strip_trailing_spaces = utils_get_setting_boolean(config, PACKAGE, "pref_editor_trail_space", FALSE);
Modified: trunk/src/plugindata.h
===================================================================
--- trunk/src/plugindata.h 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/plugindata.h 2008-05-14 15:36:27 UTC (rev 2580)
@@ -35,12 +35,12 @@
/* The API version should be incremented whenever any plugin data types below are
* modified or appended to. */
-static const gint api_version = 57;
+static const gint api_version = 58;
/* 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 = 27;
+static const gint abi_version = 28;
/** Check the plugin can be loaded by Geany.
* This performs runtime checks that try to ensure:
Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/prefs.c 2008-05-14 15:36:27 UTC (rev 2580)
@@ -338,10 +338,6 @@
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), file_prefs.disk_check_timeout);
- /* Editor settings */
- widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.tab_width);
-
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
/* luckily the index of the combo box items match the index of the encodings array */
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.default_new_encoding);
@@ -359,12 +355,24 @@
else
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), GEANY_ENCODING_UTF_8);
+ widget = lookup_widget(ui_widgets.prefs_dialog, "combo_eol");
+ if (prefs.default_eol_character >= 0 && prefs.default_eol_character < 3)
+ {
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), prefs.default_eol_character);
+ }
+ else
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), GEANY_DEFAULT_EOL_CHARACTER);
+
widget = lookup_widget(ui_widgets.prefs_dialog, "check_trailing_spaces");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.strip_trailing_spaces);
widget = lookup_widget(ui_widgets.prefs_dialog, "check_new_line");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.final_new_line);
+ /* Editor settings */
+ widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.tab_width);
+
widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), prefs.replace_tabs);
@@ -418,6 +426,9 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indicators");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.use_indicators);
+ widget = lookup_widget(ui_widgets.prefs_dialog, "check_auto_multiline");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.auto_continue_multiline);
+
widget = lookup_widget(ui_widgets.prefs_dialog, "check_symbol_auto_completion");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.auto_complete_symbols);
@@ -728,11 +739,6 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_disk_check");
file_prefs.disk_check_timeout = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
-
- /* Editor settings */
- widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
- editor_prefs.tab_width = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
-
widget = lookup_widget(ui_widgets.prefs_dialog, "combo_new_encoding");
prefs.default_new_encoding = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
@@ -745,6 +751,9 @@
else
prefs.default_open_encoding = -1;
+ widget = lookup_widget(ui_widgets.prefs_dialog, "combo_eol");
+ prefs.default_eol_character = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+
widget = lookup_widget(ui_widgets.prefs_dialog, "check_trailing_spaces");
prefs.strip_trailing_spaces = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
@@ -754,6 +763,11 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
prefs.replace_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+
+ /* Editor settings */
+ widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
+ editor_prefs.tab_width = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
+
widget = lookup_widget(ui_widgets.prefs_dialog, "spin_long_line");
editor_prefs.long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
@@ -816,6 +830,9 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_detect_indent");
editor_prefs.detect_tab_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+ widget = lookup_widget(ui_widgets.prefs_dialog, "check_auto_multiline");
+ editor_prefs.auto_continue_multiline = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+
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));
@@ -1375,7 +1392,7 @@
{
if (ui_widgets.prefs_dialog == NULL)
{
- GtkWidget *combo_new, *combo_open;
+ GtkWidget *combo_new, *combo_open, *combo_eol;
GtkWidget *label;
guint i;
gchar *encoding_string;
@@ -1397,6 +1414,12 @@
g_free(encoding_string);
}
+ /* init the eol character combo box */
+ combo_eol = lookup_widget(ui_widgets.prefs_dialog, "combo_eol");
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo_eol), utils_get_eol_name(SC_EOL_CRLF));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo_eol), utils_get_eol_name(SC_EOL_CR));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(combo_eol), utils_get_eol_name(SC_EOL_LF));
+
/* add manually GeanyWrapLabels because it can't be added with Glade
* page Tools */
label = geany_wrap_label_new(_("Enter tool paths below. Tools you do not need can be left blank."));
Modified: trunk/src/prefs.h
===================================================================
--- trunk/src/prefs.h 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/prefs.h 2008-05-14 15:36:27 UTC (rev 2580)
@@ -80,6 +80,7 @@
gboolean tab_order_ltr;
gboolean show_tab_cross;
guint mru_length;
+ gint default_eol_character;
/* tools */
gchar *tools_browser_cmd;
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/utils.c 2008-05-14 15:36:27 UTC (rev 2580)
@@ -669,6 +669,17 @@
}
+const gchar *utils_get_eol_name(gint eol_mode)
+{
+ switch (eol_mode)
+ {
+ case SC_EOL_CRLF: return _("Win (CRLF)"); break;
+ case SC_EOL_CR: return _("Mac (CR)"); break;
+ default: return _("Unix (LF)"); break;
+ }
+}
+
+
gboolean utils_atob(const gchar *str)
{
if (str == NULL) return FALSE;
Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h 2008-05-14 12:11:01 UTC (rev 2579)
+++ trunk/src/utils.h 2008-05-14 15:36:27 UTC (rev 2580)
@@ -72,6 +72,8 @@
const gchar *utils_get_eol_char(gint idx);
+const gchar *utils_get_eol_name(gint eol_mode);
+
gboolean utils_atob(const gchar *str);
gboolean utils_is_absolute_path(const gchar *path);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list