SF.net SVN: geany-plugins:[1599] trunk/geanylatex
frlan at users.sourceforge.net
frlan at xxxxx
Mon Sep 20 17:21:54 UTC 2010
Revision: 1599
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1599&view=rev
Author: frlan
Date: 2010-09-20 17:21:54 +0000 (Mon, 20 Sep 2010)
Log Message:
-----------
GeanyLaTeX: Added a first proof on concept of a feature that inserts capital letters on first letter of a sentence
Modified Paths:
--------------
trunk/geanylatex/ChangeLog
trunk/geanylatex/doc/geanylatex.pdf
trunk/geanylatex/doc/geanylatex.tex
trunk/geanylatex/src/geanylatex.c
Modified: trunk/geanylatex/ChangeLog
===================================================================
--- trunk/geanylatex/ChangeLog 2010-09-19 19:59:37 UTC (rev 1598)
+++ trunk/geanylatex/ChangeLog 2010-09-20 17:21:54 UTC (rev 1599)
@@ -1,3 +1,10 @@
+2010-09-20 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+
+ * Added a feature that inserts capital letters on first letter of a
+ sentence. This is not working with multibyte characters as German
+ Umlauts.
+
+
2010-09-14 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
* Place LaTeX menu in front of help menu entry.
Modified: trunk/geanylatex/doc/geanylatex.pdf
===================================================================
(Binary files differ)
Modified: trunk/geanylatex/doc/geanylatex.tex
===================================================================
--- trunk/geanylatex/doc/geanylatex.tex 2010-09-19 19:59:37 UTC (rev 1598)
+++ trunk/geanylatex/doc/geanylatex.tex 2010-09-20 17:21:54 UTC (rev 1599)
@@ -96,6 +96,8 @@
\subsection{Upcoming Geany\LaTeX{} 0.6}
\begin{itemize}
\item Moved \LaTeX{} menu to a separate menu inside Geany main menu
+ \item Added a feature to autocapetlise letters on typing on begin of
+ a sentence
\end{itemize}
\subsection{Geany\LaTeX{} 0.5 -- 2010-06-13}
@@ -568,6 +570,17 @@
\caption{Plugin toolbar of Geany\LaTeX{} 0.5}
\end{figure}
+
+\subsubsection{Capitalize letters on sentence begin}
+
+If this option is enabled, Geany\LaTeX{} will look for \textsc{.},
+\textsc{!} or \textsc{?} followed by a space. The next letter will
+be inserted in capital letters. Currenty this is not working for
+multichar letters as German Umlauts as well as the overwriting is
+not supported very well at this point. In case of you don't want to
+have the capital version of a letter in a particular case, just hit
+undo (Ctrl + z in most cases).
+
\subsubsection{Modus of autocompletion}
\label{sec:modus_of_autocompletion}
Here you can choose, whether the Geany\LaTeX{} should do some
Modified: trunk/geanylatex/src/geanylatex.c
===================================================================
--- trunk/geanylatex/src/geanylatex.c 2010-09-19 19:59:37 UTC (rev 1598)
+++ trunk/geanylatex/src/geanylatex.c 2010-09-20 17:21:54 UTC (rev 1599)
@@ -74,6 +74,7 @@
static gchar *glatex_ref_page_string = NULL;
static gchar *glatex_ref_all_string = NULL;
static gboolean glatex_set_toolbar_active = FALSE;
+static gboolean glatex_capitalize_sentence_starts = FALSE;
/* We want to keep this deactivated by default as the
* user needs to know what he is doing here.... */
@@ -136,6 +137,7 @@
GtkWidget *koma_active;
GtkWidget *toolbar_active;
GtkWidget *glatex_autocompletion_active;
+ GtkWidget *glatex_capitalize_sentence;
}
config_widgets;
@@ -183,6 +185,8 @@
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_widgets.koma_active));
glatex_set_toolbar_active =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_widgets.toolbar_active));
+ glatex_capitalize_sentence_starts =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_widgets.glatex_capitalize_sentence));
/* Check the response code for geanyLaTeX's autocompletion functions.
* Due compatibility with oder Geany versions cass 0 will be treated
@@ -203,6 +207,8 @@
glatex_set_toolbar_active);
g_key_file_set_boolean(config, "general", "glatex_set_autocompletion",
glatex_autocompletion_active);
+ g_key_file_set_boolean(config, "autocompletion",
+ "glatex_capitalize_sentence_starts", glatex_capitalize_sentence_starts);
if (!g_file_test(config_dir, G_FILE_TEST_IS_DIR)
&& utils_mkdir(config_dir, TRUE) != 0)
@@ -256,6 +262,8 @@
_("Use KOMA script by default"));
config_widgets.toolbar_active = gtk_check_button_new_with_label(
_("Show extra plugin toolbar"));
+ config_widgets.glatex_capitalize_sentence = gtk_check_button_new_with_label(
+ _("Capitalize sentense on typing"));
config_widgets.glatex_autocompletion_active = gtk_combo_box_new_text();
gtk_combo_box_insert_text(GTK_COMBO_BOX(config_widgets.glatex_autocompletion_active), 0,
@@ -284,6 +292,9 @@
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(config_widgets.toolbar_active),
glatex_set_toolbar_active);
gtk_box_pack_start(GTK_BOX(vbox), config_widgets.toolbar_active, FALSE, FALSE, 2);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(config_widgets.glatex_capitalize_sentence),
+ glatex_capitalize_sentence_starts);
+ gtk_box_pack_start(GTK_BOX(vbox), config_widgets.glatex_capitalize_sentence, FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(vbox), hbox_autocompletion, FALSE, FALSE, 2);
gtk_widget_show_all(vbox);
@@ -455,7 +466,7 @@
gint pos;
g_return_val_if_fail(editor != NULL, FALSE);
-
+ sci = editor->sci;
/* Autocompletion for LaTeX specific stuff:
* Introducing \end{} or \endgroup{} after a \begin{}
@@ -468,7 +479,6 @@
!(glatex_autocompletion_only_for_latex == TRUE &&
editor->document->file_type->id != GEANY_FILETYPES_LATEX))
{
- sci = editor->sci;
pos = sci_get_current_position(sci);
if (nt->nmhdr.code == SCN_CHARADDED)
@@ -623,8 +633,8 @@
}
break;
} /* Closing case \r or \n */
- case '_':
- case '^':
+ case '_':
+ case '^':
{
if (glatex_autobraces_active == TRUE)
{
@@ -633,6 +643,31 @@
}
break;
}
+ default:
+ {
+ if (glatex_capitalize_sentence_starts == TRUE)
+ {
+ if (sci_get_char_at(sci, pos -2) == ' ' &&
+ (sci_get_char_at(sci, pos -3) == '.' ||
+ sci_get_char_at(sci, pos -3) == '!' ||
+ sci_get_char_at(sci, pos -3) == '?' ))
+ {
+ gchar *upperLtr = NULL;
+ gchar *selection = NULL;
+
+ sci_set_selection_start(sci, pos - 1);
+ sci_set_selection_end(sci, pos);
+
+ selection = sci_get_selection_contents(sci);
+ upperLtr = g_utf8_strup(selection, -1);
+ sci_replace_sel(sci, upperLtr);
+
+ g_free(upperLtr);
+ g_free(selection);
+ }
+ break;
+ }
+ }
} /* Closing switch */
/* later there could be some else ifs for other keywords */
}
@@ -1953,6 +1988,8 @@
glatex_autocompletion_only_for_latex = utils_get_setting_boolean(config, "autocompletion",
"glatex_autocompletion_only_for_latex", TRUE);
+ glatex_capitalize_sentence_starts = utils_get_setting_boolean(config, "autocompletion",
+ "glatex_capitalize_sentence_starts", FALSE);
glatex_deactivate_toolbaritems_with_non_latex = utils_get_setting_boolean(config, "toolbar",
"glatex_deactivate_toolbaritems_with_non_latex", TRUE);
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