FindTag - 'Exuberant Ctags' Add-on for TextPad
When is ctags useful for you?
When you use TextPad to program in a popular programming language (like C/C++, Java, PHP), ctags can be very useful for you. It creates a so called tags file that can be used to navigate through your sources. This small tool can help you to jump to a selected function / variable / class / etc in you code by pressing just one key!
FindTag has turned Open Source. This means that when version 2.0 is released, the sources will be available to the public through CVS.
- Due to licence stuff, ctags is not distributed with this add-in. You need to download it seperatly.
- You really should use at least Exuberant Ctags 5.4 because it has the so called signature support for C/C++ and Java.
- At the release of this file, it has been tested with TextPad 4.7 and Exuberant Ctags 5.5.1, the latest releases at that moment.
Frequently Asked Questions
- Does FindTag recognize tags in language 'XYZ'
- FindTag relies on ctags for the recognition of tags. So please check the documentation of ctags to see if your language is supported by ctags. If not, you have to contact the author of ctags to see if he wants to add support for your programming language. If ctags supports your language the FindTag mode of this add-in should have no problems, but the tree could not show all tags.
- How can I use FindTag when the sources are in a directory tree?
- There are several ways. When you want to use one tags file for the entire tree, you need to set the Initial Folder of the Tools and set 'Always use full paths in the tags file' in the options.
- When you work with only one directory tree, you can set the Initial Folder to a full path.
- When you don't want this you could use a Workspace (located in the root of this directory tree) and set the Initial Folder to
$WspDir. When you have a workspace loaded, this will put the tags in the same directory where the workspace is located. But if no workspace is loaded, it will work just like
- FindTag doesn't open TextPad when a tag is selected!
- First try to use DDE. If you some reason this gives you problems, place FindTag.exe in the same directory where TextPad.exe is located.
Some background information:
FindTag tries to get the full path to TextPad.exe from the registry key:
NOTE: When you don't have Administrator rights when you install TextPad, this key is not created.
If this key is not found it simply start 'TextPad.exe', so if they are both in the same directory they can always find each other.
This Add-on is distributed under the GNU General Public License (GPL)
The installation and upgrade information is in the ReadMe.htm that is in the download.
John Averty - 4 Nov 2002 (after receiving a beta of 1.1 with Java packages support)
This is great. It is actually even better than my idea of it was because I was envisioning a node in the tree for each package weither it contained a class or not. Your presentation is even better because it gives direct access to the package. This rules! That's it, it is now officially a day-to-day tool! Thanks much again.
Erik Herlaar - 13 Nov 2002 (a colleague, just back from his vacation)
Why didn't you create this add-on a year ago!
Wayne McLachlan - 4 Dec 2002
Thanks for making the FindTags tool for TextPad. I work on projects written by other people, and I find this kind of tool really helpful, especially 'till I get to grips with where things have been put. It's very useful :)
Don - 11 Jan 2003
I came across your FindTag utility at www.textpad.com... installed it and found it great :)
I have started off using it for Perl and C++ projects.
A great utility that was desperately lacking in the TextPad environment.
So this is just a word to say... thanks a bucket :)
Wolfgang Hollerweger - 3 Feb 2003
I just downloaded FindTag and tried for maybe half an hour. It seems like it meets my requirements VERY well. Before I had thought of writing a clip library for the variables of my *.c source files and some function/macro which automatically generates this *.tcl file. Thanks to FindTag I don't have to bother about this :-)
Manfred Stengel - 25 Feb 2003
I'm using TextPad for a long time and I'm pleased to found your add-on for ctags. It is very useful and helps a lot to find things quickly. You did a great thing there!
Marc Devenney - 27 Jun 2003
This is a great addition to TextPad. I write embedded code using C/C++ and this tool has helped me a lot. I love being able to press a button and jump straight to the function definition.
Version 2.0 beta 2 (released 01-Aug-2003)
- Released as Open Source under GPL.
- Added FileTags mode. Thanks to Marc Devenney for this suggestion and testing. beta 1
- Added TagBack mode. beta 2
- ShowTags: When there is more then one language in the tags file, the tags can be shown in separate trees per langauge. beta 1
- Updated the readtags sources from Exuberant Ctags 5.5.1 beta 2
- Added Anchors to the tree. beta 1
Version 1.2 (released 23-Feb-2003)
The full version history is in the ReadMe.htm that is in the download.
- Added Methods, Defines and Labels to the tree.
- Languages C and C++ are displayed as 'C/C++'. This is done because .h files are standard marked as C++.
- The case sensitive search in the FindTag can be disabled. Thanks to Steve Sorbi for this suggestion.
- Added an option to set a path to a secondary tags file. If the is not found in the default tags file, the secondary one is being searched. This secondary tags file can be a file created from the root of your programming environment to search the standard libraries. And because of this:
- Dropped own tags recognition and now use readtags from the ctags sources. It has a binary search which is very fast.
- Both dialogs have a 'Refresh' button, to regenerate the default tags file and reread this file.
- Use DDE to start TextPad. This elimates the need to 'Allow only one instance to run' and solves the problem that FindTag couldn't find the proper path to TextPad.exe. If you experience problems with DDE, it can be disabled in the options.
- Added the option 'Always use full paths in tags file'.
version 1.2 (stable release)
version 2.0 beta 2 (see details inside .zip)