[anjuta] language-support-cpp-java: indentation parameters
- From: Johannes Schmid <jhs src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjuta] language-support-cpp-java: indentation parameters
- Date: Thu, 21 May 2009 03:59:07 -0400 (EDT)
commit c60e7bfbb51bb96f5ed9348073e51424580e5886
Author: Carl-Anton Ingmarsson <ca ingmarsson gmail com>
Date: Thu May 21 09:51:29 2009 +0200
language-support-cpp-java: indentation parameters
bgo#583346 â?? make indentation of parameters inside parantheses specifiable
---
.../anjuta-language-cpp-java.ui | 242 ++++++++++++++-----
plugins/language-support-cpp-java/plugin.c | 40 +++-
2 files changed, 206 insertions(+), 76 deletions(-)
diff --git a/plugins/language-support-cpp-java/anjuta-language-cpp-java.ui b/plugins/language-support-cpp-java/anjuta-language-cpp-java.ui
index 04d03a6..ea43bed 100644
--- a/plugins/language-support-cpp-java/anjuta-language-cpp-java.ui
+++ b/plugins/language-support-cpp-java/anjuta-language-cpp-java.ui
@@ -1,29 +1,23 @@
<?xml version="1.0"?>
-<!--*- mode: xml -*-->
<interface>
+ <requires lib="gtk+" version="2.16"/>
+ <!-- interface-naming-policy toplevel-contextual -->
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
- <property name="lower">0</property>
- <property name="page_increment">10</property>
<property name="step_increment">1</property>
- <property name="page_size">0</property>
- <property name="value">0</property>
+ <property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment2">
+ <property name="value">4</property>
<property name="upper">100</property>
- <property name="lower">0</property>
- <property name="page_increment">10</property>
<property name="step_increment">1</property>
- <property name="page_size">0</property>
- <property name="value">4</property>
+ <property name="page_increment">10</property>
</object>
<object class="GtkAdjustment" id="adjustment3">
+ <property name="value">10</property>
<property name="upper">50</property>
- <property name="lower">0</property>
- <property name="page_increment">10</property>
<property name="step_increment">1</property>
- <property name="page_size">0</property>
- <property name="value">10</property>
+ <property name="page_increment">10</property>
</object>
<object class="GtkWindow" id="preferences_dialog">
<property name="title" translatable="yes">window1</property>
@@ -36,7 +30,7 @@
<property name="visible">True</property>
<property name="border_width">5</property>
<property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
<object class="GtkVBox" id="vbox1111">
<property name="visible">True</property>
@@ -46,28 +40,29 @@
<property name="visible">True</property>
<property name="border_width">10</property>
<property name="n_rows">3</property>
- <property name="n_columns">1</property>
<property name="column_spacing">5</property>
<property name="row_spacing">5</property>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.indent.automatic">
+ <property name="label" translatable="yes">Enable smart indentation</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Enable smart indentation</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.indent.adaptive">
+ <property name="label" translatable="yes">Enable adaptive indentation</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Enable adaptive indentation</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -75,13 +70,14 @@
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.indent.tab.indents">
- <property name="can_focus">True</property>
<property name="label" translatable="yes">Pressing tab indents</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -89,102 +85,202 @@
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame48">
<property name="visible">True</property>
<property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkTable" id="table18">
+ <object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</property>
- <property name="row_spacing">5</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkSpinButton" id="preferences_spin:int:0:1:language.cpp.indent.brace.size">
+ <object class="GtkTable" id="table18">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustment1</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">5</property>
+ <property name="row_spacing">5</property>
+ <child>
+ <object class="GtkSpinButton" id="preferences_spin:int:0:1:language.cpp.indent.brace.size">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ </object>
+ <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="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="preferences_spin:int:4:1:language.cpp.indent.statement.size">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="adjustment">adjustment2</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label12353">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Brace indentation size in spaces:</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label123">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Statement indentation size in spaces:</property>
+ </object>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</object>
<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="x_options"/>
- <property name="y_options"/>
+ <property name="position">0</property>
</packing>
</child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label12355">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Indentation parameters</b></property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame2">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkTable" id="table1">
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">5</property>
+ <property name="row_spacing">5</property>
<child>
- <object class="GtkSpinButton" id="preferences_spin:int:4:1:language.cpp.indent.statement.size">
+ <object class="GtkRadioButton" id="preferences_toggle:bool:0:0:language.cpp.indent.paranthese.lineup">
+ <property name="label" translatable="yes">Line up parantheses:</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="adjustment">adjustment2</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">preferences_toggle:bool:0:0:language.cpp.indent.paranthese.indent</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options"/>
- <property name="y_options"/>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label12353">
+ <object class="GtkRadioButton" id="preferences_toggle:bool:0:0:language.cpp.indent.paranthese.indent">
+ <property name="label" translatable="yes">Indent:</property>
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Brace indentation size in spaces:</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label123">
+ <object class="GtkSpinButton" id="preferences_spin:int:4:1:language.cpp.indent.paranthese.size">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Statement indentation size in spaces:</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="adjustment">adjustment4</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="value_changed" handler="on_spinbutton1_value_changed"/>
</object>
<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="x_options">GTK_FILL</property>
- <property name="y_options"/>
+ <property name="y_options"></property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
</object>
</child>
<child type="label">
- <object class="GtkLabel" id="label12355">
+ <object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="label" translatable="yes"><b>Indentation parameters</b></property>
+ <property name="label" translatable="yes"><b>Paranthese indentation </b></property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
- <property name="position">1</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
@@ -217,7 +313,7 @@
<property name="border_width">5</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
<object class="GtkVBox" id="vbox1118">
<property name="visible">True</property>
@@ -238,6 +334,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -257,14 +354,16 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.code.completion.enable">
+ <property name="label" translatable="yes">Enable code completion</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="border_width">5</property>
- <property name="label" translatable="yes">Enable code completion</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -276,11 +375,12 @@
</child>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.code.completion.space.after.func">
+ <property name="label" translatable="yes">Add a space after function call autocompletion</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
- <property name="label" translatable="yes">Add a space after function call autocompletion</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -289,11 +389,12 @@
</child>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.code.completion.brace.after.func">
+ <property name="label" translatable="yes">Add '(' after function call autocompletion</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
- <property name="label" translatable="yes">Add '(' after function call autocompletion</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -302,11 +403,12 @@
</child>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:0:1:language.cpp.brace.autocompletion">
+ <property name="label" translatable="yes">Enable smart brace completion</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
- <property name="label" translatable="yes">Enable smart brace completion</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -328,6 +430,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -337,7 +440,7 @@
<property name="border_width">5</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
@@ -348,16 +451,18 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<object class="GtkCheckButton" id="preferences_toggle:bool:1:1:language.cpp.code.calltip.enable">
+ <property name="label" translatable="yes">Show calltips</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
- <property name="label" translatable="yes">Show calltips</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
@@ -380,6 +485,9 @@
</packing>
</child>
</object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label1">
@@ -395,4 +503,10 @@
</object>
</child>
</object>
+ <object class="GtkAdjustment" id="adjustment4">
+ <property name="upper">100</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ <property name="page_size">10</property>
+ </object>
</interface>
diff --git a/plugins/language-support-cpp-java/plugin.c b/plugins/language-support-cpp-java/plugin.c
index a77c2cf..21d01ea 100644
--- a/plugins/language-support-cpp-java/plugin.c
+++ b/plugins/language-support-cpp-java/plugin.c
@@ -60,6 +60,8 @@
#define PREF_INDENT_TAB_INDENTS "language.cpp.indent.tab.indents"
#define PREF_INDENT_STATEMENT_SIZE "language.cpp.indent.statement.size"
#define PREF_INDENT_BRACE_SIZE "language.cpp.indent.brace.size"
+#define PREF_INDENT_PARANTHESE_LINEUP "language.cpp.indent.paranthese.lineup"
+#define PREF_INDENT_PARANTHESE_SIZE "language.cpp.indent.paranthese.size"
#define PREF_BRACE_AUTOCOMPLETION "language.cpp.brace.autocompletion"
#define TAB_SIZE (ianjuta_editor_get_tabsize (editor, NULL))
@@ -1066,22 +1068,36 @@ get_line_indentation_base (CppJavaPlugin *plugin,
else if (point_ch == '(' || point_ch == '[')
{
line_indent = 0;
- while (ianjuta_iterable_previous (iter, NULL))
+ if (anjuta_preferences_get_bool (plugin->prefs,
+ PREF_INDENT_PARANTHESE_LINEUP))
{
- gchar dummy_ch = ianjuta_editor_cell_get_char (IANJUTA_EDITOR_CELL (iter), 0,
- NULL);
- if (iter_is_newline (iter, dummy_ch))
+ while (ianjuta_iterable_previous (iter, NULL))
{
- skip_iter_to_newline_head (iter, dummy_ch);
- break;
+ gchar dummy_ch = ianjuta_editor_cell_get_char (IANJUTA_EDITOR_CELL (iter), 0,
+ NULL);
+ if (iter_is_newline (iter, dummy_ch))
+ {
+ skip_iter_to_newline_head (iter, dummy_ch);
+ break;
+ }
+ if (dummy_ch == '\t')
+ line_indent += TAB_SIZE;
+ else
+ (*line_indent_spaces)++;
}
- if (dummy_ch == '\t')
- line_indent += TAB_SIZE;
- else
- (*line_indent_spaces)++;
+ (*line_indent_spaces)++;
+ line_indent += extra_indent;
+ }
+ else
+ {
+ gint line_for_indent =
+ ianjuta_editor_get_line_from_position (editor, iter, NULL);
+ line_indent = get_line_indentation (editor, line_for_indent);
+ line_indent += extra_indent;
+
+ (*line_indent_spaces) += anjuta_preferences_get_int (plugin->prefs,
+ PREF_INDENT_PARANTHESE_SIZE);
}
- (*line_indent_spaces)++;
- line_indent += extra_indent;
/* Although statement is incomplete at this point, we don't
* set it to incomplete and just leave it to unknown to avaoid
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]