Revision: 5428 http://geany.svn.sourceforge.net/geany/?rev=5428&view=rev Author: ntrel Date: 2010-11-23 13:17:42 +0000 (Tue, 23 Nov 2010)
Log Message: ----------- If the current word's tag is on the current line, make Go to Tag Definition look for a tag declaration instead, as this is more useful. Likewise make Go to Tag Declaration search for a tag definition in this case also.
Modified Paths: -------------- trunk/ChangeLog trunk/doc/geany.html trunk/doc/geany.txt trunk/src/symbols.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-11-23 12:50:24 UTC (rev 5427) +++ trunk/ChangeLog 2010-11-23 13:17:42 UTC (rev 5428) @@ -3,6 +3,11 @@ * src/interface.c, src/keybindings.c, src/callbacks.c, src/callbacks.h, geany.glade: Add 'Mark All' Search menu command. + * src/symbols.c, doc/geany.txt, doc/geany.html: + If the current word's tag is on the current line, make Go to Tag + Definition look for a tag declaration instead, as this is more + useful. Likewise make Go to Tag Declaration search for a tag + definition in this case also.
2010-11-22 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/doc/geany.html =================================================================== --- trunk/doc/geany.html 2010-11-23 12:50:24 UTC (rev 5427) +++ trunk/doc/geany.html 2010-11-23 13:17:42 UTC (rev 5428) @@ -6,7 +6,7 @@ <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" /> <title>Geany</title> <meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" /> -<meta name="date" content="2010-11-17" /> +<meta name="date" content="2010-11-22" /> <style type="text/css">
/* @@ -139,7 +139,7 @@ <br />Nick Treleaven <br />Frank Lanitz</td></tr> <tr><th class="docinfo-name">Date:</th> -<td>2010-11-17</td></tr> +<td>2010-11-22</td></tr> <tr><th class="docinfo-name">Version:</th> <td>0.20</td></tr> </tbody> @@ -1732,7 +1732,14 @@ current word is either the word nearest the edit cursor, or the word underneath the popup menu click position when the popup menu is used.</p> +<div class="note"> +<p class="first admonition-title">Note</p> +<p class="last">If the current word's tag is on the current line, Geany will try +to look for a tag declaration instead, as this is more useful. +Likewise 'Go to tag declaration' will search for a tag definition +in this case also.</p> </div> +</div> <div class="section"> <h3><a class="toc-backref" href="#id73" id="go-to-tag-declaration" name="go-to-tag-declaration">Go to tag declaration</a></h3> <p>Like Go to tag definition, but for a forward declaration such as a @@ -6359,7 +6366,7 @@ <div class="footer"> <hr class="footer" /> <a class="reference" href="geany.txt">View document source</a>. -Generated on: 2010-11-22 12:42 UTC. +Generated on: 2010-11-23 13:12 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 2010-11-23 12:50:24 UTC (rev 5427) +++ trunk/doc/geany.txt 2010-11-23 13:17:42 UTC (rev 5428) @@ -1357,7 +1357,13 @@ or the word underneath the popup menu click position when the popup menu is used.
+.. note:: + If the current word's tag is on the current line, Geany will try + to look for a tag declaration instead, as this is more useful. + Likewise 'Go to tag declaration' will search for a tag definition + in this case also.
+ Go to tag declaration ^^^^^^^^^^^^^^^^^^^^^
Modified: trunk/src/symbols.c =================================================================== --- trunk/src/symbols.c 2010-11-23 12:50:24 UTC (rev 5427) +++ trunk/src/symbols.c 2010-11-23 13:17:42 UTC (rev 5428) @@ -1542,7 +1542,7 @@ }
-gboolean symbols_goto_tag(const gchar *name, gboolean definition) +static gboolean goto_tag(const gchar *name, gboolean definition) { const gint forward_types = tm_tag_prototype_t | tm_tag_externvar_t; gint type; @@ -1565,18 +1565,38 @@ GeanyDocument *new_doc = document_find_by_real_path( tmtag->atts.entry.file->work_object.file_name);
- /* not found in opened document, should open */ - if (new_doc == NULL) + if (new_doc) { + /* If we are already on the tag line, swap definition/declaration */ + if (new_doc == old_doc && + tmtag->atts.entry.line == (guint)sci_get_current_line(old_doc->editor->sci) + 1) + { + if (goto_tag(name, !definition)) + return TRUE; + } + } + else + { + /* not found in opened document, should open */ new_doc = document_open_file(tmtag->atts.entry.file->work_object.file_name, FALSE, NULL, NULL); }
if (navqueue_goto_line(old_doc, new_doc, tmtag->atts.entry.line)) return TRUE; } + return FALSE; +} + + +gboolean symbols_goto_tag(const gchar *name, gboolean definition) +{ + if (goto_tag(name, definition)) + return TRUE; + /* if we are here, there was no match and we are beeping ;-) */ utils_beep(); - if (type == forward_types) + + if (!definition) ui_set_statusbar(FALSE, _("Forward declaration "%s" not found."), name); else ui_set_statusbar(FALSE, _("Definition of "%s" not found."), name);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.