image

GoFish 4.3

Advanced search tool
for FoxPro code


Version 4.3.014 Released 2012-06-18
Requires VFP9


GoFish is an advanced code search tool for fast searching and replacing of Visual FoxPro source code.

38236
Download App: Download the latest build here

Discussions: Post questions, bug reports, discussions in the GoFish Discussion Group

Video: (1024 x 768)  (800 x 600) 

Podcast: Interview with GoFish 4 author, Matt Slay, on The Fox Show Podcast Episode #72 

Download Source: Source code (.zip)

View Change Log: View Change Log 
38236 

Search Results Form:

SNAGHTML2cfbb5d3



New features in version 4.3…

  • New  Wildcard Search Mode allows * and ? in Search Expression
  • Wildcards (* and ?) and the NOT operator (!) can be now used on the Filter Form
  • Added option for confirming "Whole Word" search if it is marked when starting a new search.
  • Added option for clearing the 'Apply Filter' checkbox with each new search
  • Added option to specify number of MRU entries to display in Scope/Search Expression dropdowns.
  • Fixed Report so that it will correctly use the same filter that is in place on the main grid.

SNAGHTML12bece48

Feature List

 

  • Super FAST code searches are powered by the new GoFish Search Engine class
  • Search scope can be a Project or a Path
  • Recent Search Expressions and Search Scopes are maintained in dropdown combos
  • Can maintain a list of files to skip
  • Uses XML files to store settings and options between sessions. See GoFish Config Files Help for more info.
  • Code Replacements - See GoFish Replace Help for more info.
  • Performs backups during Replace operations  - See GoFish Backup Help for more info.
  • Colorized code view and highlighting of matched line.
  • TreeView provides quick filtering on the results grid by filetype or specific file.
  • Filter Button provides advanced filtering across multiple columns after initial search if performed.
  • Search Expression supports Regular Expressions (use Advanced button on main form).
  • Form is resizable, and dockable (if desired).
  • Column order and width can be changed.
  • Columns are sortable.
  • Window panes are resizable using the vertical and horizontal splitter controls.
  • Double-click a row to open the file and edit the code in native FoxPro method windows.
  • Integrates with PEM Editor IDE Tools to open files through Source Code Control Checkout.


Learn more about...


Further options can be accessed on the Advanced Search form: 

  • Supports searching Active Project, user selected Project, Current Directory, or user selected Directory.
  • Allows searching on TimeStamp of changed objects on forms and classes, as well as file dates.
  • Initial file type filtering limits which files are searched.
  • Whole word/partial match, match case, include/exclude comments.
  • Supports Regular Expressions.
  • All user settings are saved between sessions, including column display, width, and order, as well as form size and position on the screen.
  • Can specify a filename temple (i.e.  job* )

Technical References

 

Advanced Search Dialog

image

 

Filename template

  • Supports wildcard matching (* and ?) on filename pattern to be searched.
SNAGHTML2d08d9f6

 

 

Filter Form

  • Allows post-search filtering across multiple grid columns.
  • Wildcards (* and ?) and the NOT operator (!) can be used on the Filter Form
image

 

Options Form 

  • Column Selection - Allows choosing from over 20 fields of data to show in the Results Grid.
  • Preferences - Basic user preferences for font size, docking, and message display and more.
  • Advanced - View and manage the XML Config Files used by GoFish to save settings.
  • Replace – To enable Replace Mode and learn how it works
  • Backups – To enable GoFish Backups and learn how they work.
  • Thor – Explains that GoFish will self-register with Thor to create a launch tool and Thor menu for GoFish.
  • Update – Explains that GoFish can be updated using Thor “Check for Updates” feature.

 

SNAGHTML2aaeee44

 

About screen contains additional links to the GoFish project

SNAGHTML2c1bc401

 

Thanks to original GoFish author, Peter Diotte, for granting me permission to create this version 4 update.

 

 


Release history

  • Ver 4.3.012 – 2012-06-11
  • Ver 4.3.011 – 2012-06-03
  • Ver 4.3 - 2012-05-07
  • Ver 4.2 - 2012-01-21
  • Ver 4.1 Beta 1 - 2011-11-17
  • Ver 4.1 Alpha 1  - 2011-08-11  (474 download)
  • Ver 4.0 Beta 1 - 2011-06-07 GoFish 4 Beta 1 released on VFPx. (698 downloads)
  • Ver 4.0 Beta - 2011-05-14
  • Ver 4.0  Alpha - 2010-11-25 - By Matt Slay - Initial work on Ver 4.0 begins, 6 years after last release by Peter Diotte.
  • Ver 3.1b - 2005-07-23
  • Ver 3.0 - 2002-12-04
  • Ver 2.0 - 2002-03-05 - Ability to do a REPLACE
  • Ver 1.0 - 2001-03-01 - By Peter Diotte
    Code named "Thong" (find the string...)
    Park Ave Marketing firm suggests rename - "Go Fish"

Last edited Jun 18, 2012 at 4:48 PM by mattslay, version 183

Comments

VladimirMaska Feb 26, 2013 at 7:36 PM 
Warning. Version 4.3.014 corrupt my VCX file. Work for a few days is lost!!!!!!!

mattslay Jun 8, 2012 at 6:41 PM 
HynekM - Thanks for reporting this. I have applied your changes (with a slight modification) and it seems to work correctly. I will be posting this fix in 4.3.012 coming up soon.

HynekM Mar 16, 2012 at 11:02 AM 
First I like this tool, but I find 2 bugs in "Edit" button action in 4.0.066 version:

1) Editing forms, it opens form at correct method but not at correct object. I downloaded source and find place that open the form, edit some code and it works properly:

class gofishsearchengine.editfromcurrentrow after line 40 i add this line:

lcMethodString = Lower(JustStem(lcFileToEdit)) + '.' + lcMethodString


2) Editing classes, it just open class browser.

class gf_peme_basetools.editsourcex i changed the line 39:

Case lcExt $ ' VCX SCX FRX LBX MNX '

(i added 'VCX')

fpuyuelo Feb 22, 2012 at 12:49 PM 
¡¡Excellent!!

mattslay Jan 22, 2012 at 2:21 AM 
"I have been changing a legacy system 500+forms to use classes.
I have used Gofish 1000+ times this last week for searching and using replace quite a bit. (lots more to do)
Absolutely brilliant.
Regards - Andrew (2012-01-21)"

Sent to me via e-mail

Jacklieb Jun 8, 2011 at 10:15 PM 
Very nice. It even picks up my old DOS reports (code references didn't). It ran about 3 times faster than code references in one test I did. One problem, when I did a new install and just click on the GoFish button I got an error. Once I looked at the video and learned how to use it it worked great. Thanks.

abergquist Jun 7, 2011 at 10:20 PM 
Very easy ER: To make them easier to read, I recommend "camel-notating" all column names that contain 2 or more words in the 'Column Selection' tab/page of the GoFish Options dialog (e.g., replace 'Objectbaseclass' with 'ObjectBaseClass', etc.).

abergquist Jun 7, 2011 at 10:07 PM 
In the GoFish Filter Builder, I recommend re-arranging some of the options into a more natural order:
- FilePath first, then FileName (also, please capitalize the "n" in 'FileName' as I just did)
- ParentClass, then BaseClass, then Class
- ObjectBaseClass, then ObjectClass, then ObjectName, then MethodName

Also, after having done the above, if you moved the TimeStamp section to the left of the FilePath section, then the following would all be nicely "right-aligned":
- FileName
- Class
- MethodName
(An alternative would be to move the TimeStamp section to the left of ObjectBaseClass.)

abergquist Jun 7, 2011 at 9:49 PM 
ER for the [Filter] commandbutton: set its .ToolTipText to a summary of all the filter criteria currently set (and whether they're applied or not) or 'No filter criteria currently set', if that's the case. The .ToolTipText will, of course, need to be initially set when you first run the form and changed each time you make a change in the GoFish Filter Builder.

abergquist Jun 7, 2011 at 9:41 PM 
I love the HTML window that highlights the line of code that matches the search criteria!

abergquist Jun 7, 2011 at 9:40 PM 
To correct the casing, "JAVA" needs to be replaced with "Java".

abergquist Jun 7, 2011 at 9:34 PM 
Looks like a great tool!

1. Looking at the choices for Filetypes, I recommend that you implement a checkbox option to search *all* files. When checked, it would immediately disable all the other filetype options (just like when you enter an extension in the 'File template' textbox; speaking about the 'File template' textbox, that would need to be disabled as well as when the 'Search all files' [suggested name] checkbox is checked).

2. I recommend implementing a calendar commandbutton to go with the 'From' and 'To' date textboxes in the TimeStamp Filter section.

dkreuzen May 24, 2011 at 4:14 PM 
I use GoFish all the time. This new version will be a welcome update.

jrfrye1 May 21, 2011 at 6:10 PM 
This wil be a great tool! Any closer to beta releas?