Revision: 723 Author: eht16 Date: 2006-08-15 08:53:18 -0700 (Tue, 15 Aug 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=723&view=rev
Log Message: ----------- Improved HTML "<table>" auto completion to use the indentation better.
Modified Paths: -------------- trunk/ChangeLog trunk/src/sci_cb.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-08-15 12:51:36 UTC (rev 722) +++ trunk/ChangeLog 2006-08-15 15:53:18 UTC (rev 723) @@ -14,6 +14,8 @@ * src/highlighting.c, data/filetypes.common, doc/geany.docbook: Use the filetype's default style(SCE_*_DEFAULT) as the main default style(STYLE_DEFAULT). + * src/sci_cb.c: Improved HTML "<table>" auto completion to use the + indentation better.
2006-08-14 Nick Treleaven nick.treleaven@btinternet.com
Modified: trunk/src/sci_cb.c =================================================================== --- trunk/src/sci_cb.c 2006-08-15 12:51:36 UTC (rev 722) +++ trunk/src/sci_cb.c 2006-08-15 15:53:18 UTC (rev 723) @@ -838,13 +838,30 @@ void sci_cb_auto_table(ScintillaObject *sci, gint pos) { gchar *table; + gint indent_pos;
if (SSM(sci, SCI_GETLEXER, 0, 0) != SCLEX_HTML) return;
sci_cb_get_indent(sci, pos, TRUE); - table = g_strconcat("\n", indent, indent, "<tr>\n", indent, indent, indent, "<td>\n", - indent, indent, indent, "</td>\n", indent, indent, "</tr>\n", - indent, NULL); + indent_pos = sci_get_line_indent_position(sci, sci_get_line_from_position(sci, pos)); + if ((pos - 7) != indent_pos) // 7 == strlen("<table>") + { + gint i, x; + x = strlen(indent); + // find the start of the <table tag + i = 1; + while (sci_get_char_at(sci, pos - i) != '<') i++; + // add all non whitespace before the tag to the indent string + while ((pos - i) != indent_pos) + { + indent[x++] = ' '; + i++; + } + indent[x] = '\0'; + } + + table = g_strconcat("\n", indent, " <tr>\n", indent, " <td>\n", indent, " </td>\n", + indent, " </tr>\n", indent, NULL); sci_insert_text(sci, pos, table); g_free(table); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.