Branch: refs/heads/document-messages Author: Nick Treleaven nick.treleaven@btinternet.com Committer: Nick Treleaven nick.treleaven@btinternet.com Date: Wed, 21 Dec 2011 17:06:32 Commit: 0c6aed700dd89a7abab7b1b5bfca340e1a2d6c7f https://github.com/geany/geany/commit/0c6aed700dd89a7abab7b1b5bfca340e1a2d6c...
Log Message: ----------- Make 'Replace Spaces by Tabs' only match leading spaces
Replacing spaces used for alignment with tabs would often break the alignment as tab stop positions were not checked. It's also not possible to distinguish between a true space and a single aligning space, so we should ignore all spaces outside of indentation.
Modified Paths: -------------- doc/geany.html doc/geany.txt src/editor.c
Modified: doc/geany.html 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -4407,7 +4407,7 @@ <h2 class="subtitle" id="a-fast-light-gtk-ide">A fast, light, GTK+ IDE</h2> </tr> <tr><td>Replace spaces by tabs</td> <td> </td> -<td>Replaces all spaces with tab characters.</td> +<td>Replaces leading spaces with tab characters.</td> </tr> <tr><td>Toggle current fold</td> <td> </td>
Modified: doc/geany.txt 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -3604,7 +3604,7 @@ Action Default shortcut Description ==================================== ==================== ================================================== Replace tabs by space Replaces all tabs with the right amount of spaces.
-Replace spaces by tabs Replaces all spaces with tab characters. +Replace spaces by tabs Replaces leading spaces with tab characters.
Toggle current fold Toggles the folding state of the current code block.
Modified: src/editor.c 8 files changed, 7 insertions(+), 1 deletions(-) =================================================================== @@ -4320,7 +4320,13 @@ void editor_replace_spaces(GeanyEditor *editor) search_pos = sci_find_text(editor->sci, SCFIND_MATCHCASE, &ttf); if (search_pos == -1) break; - + /* only replace indentation because otherwise we can mess up alignment */ + if (search_pos > sci_get_line_indent_position(editor->sci, + sci_get_line_from_position(editor->sci, search_pos))) + { + ttf.chrg.cpMin = search_pos + tab_len; + continue; + } sci_set_target_start(editor->sci, search_pos); sci_set_target_end(editor->sci, search_pos + tab_len); sci_replace_target(editor->sci, "\t", FALSE);
@@ Diff output truncated at 100000 characters. @@
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).