FastOpen plugin user's guide

Author :Jiger Patel


Introduction

FastOpen is a plugin designed to quickly open any file in the current project by just typing in some characters of the filename or path you want to open. Besides quickly opening any file, it has features like switching between projects, indicating invalid filenames etc. FastOpen can open files in the projects and/or non project files too.

What's New :

Take a look at the Introduction to New Features & release notes.

Introduction

FastOpen is a plugin for simple to advanced users. You can quickly open files from your project irrespective of their position in the directory structure. A file might be in 10 (or n number of) directory below your project root but for a FastOpen user it is as simple as typing some characters of that filename. FastOpen also supports filename globbing, for searching files matching some pattern (for example, test*.xml matches all xml files with the word test in them).


Usage

FastOpen can be used with or without ProjectViewer being docked, but you must have atleast one project currently loaded and selected in ProjectViewer (if you are using ProjectViewer). You can also switch between projects using just FastOpen. To search for a file in your project, simply type in some characters of the filename. Fastopen will match against the full path of each file, if a file separator character is present. Glob patterns can be used here. If Allow CamelCase Search is enabled in Plugin Options, acronyms can be used (Typing FOTF would match FastOpenTextField, for example). FastOpen will show the matching files in a list below. You can open your chosen file by double clicking or selecting it from keyboard. If only one match is found, the file is opened immediately without showing you a list.

You can map FastOpen to a favourite shortcut key for really fast, mouse-free access to your project files.

FastOpen is fully customisable from the Plugin Options. You can configure things like Sort Files, Keep Open files in the end or at the begining of the list of matching files, or even "Don't show me already open files"... etc. You can also color annotate Open files to identify or differentiate between open & not open files. FastOpen can also indicate errors in your search pattern by changing the color of file search pattern to red. to indicate that no files match the criteria.

Another feature is "Jump to file". You can select any text or keep your cursor on any text in the JEdit textarea(say a Classname) & invoke FastOpen on it. If FastOpen finds a file matching that name it will automatically open that file for you resembling "Jump to" feature. If it does not match any file or matches more than one file then it will show you matching files dialog box. You can enable/disable this feature from Plugin Options-FastOpen and select/deselect "Pattern from selected text" checkbox.

FastOpen has features to make file manipulation even simpler. First among them, is the previous patterns drop down for easy re-run of previous search patterns. This is particularly helpful to remember complex or repetative search patterns, instead of typing patterns everytime/everyday. You can cycle between previous search patterns by pressing Ctrl+UP Arrow or Ctrl+DOWN Arrow keys on your keyboard.

FastOpen allows you to switch between open files even if they don't belong to the Project, say Log files when working on Web-Applications, which are generally not part of the Project. You can even color code such files from FastOpen preferences in Plugin Options, to identify such files. Also The 0.7 feature of "Jump to file" feature has now been expanded to "Jump to file" under cursor or you can select a word & Jump to it as usual.

FastOpen has a convenient feature to Open any file + jump to a particular line number. This is globally supported, meaning, this filename:lineno pattern can be typed in or can also be used in conjunction with the "Jump to file" feature.

This feature is very useful especially when looking at a stacktrace you can simply place your cursor on the file in the stack trace & invoke FastOpen, and FastOpen will open the file on the cursor AND automatically take you to the lineno specified in the exception stack trace. Note that the filename need not be full filename and can also be a glob patten:lineno for e.g the following are some of the valid ways to use this feature

  1. ListOrderServlet.java:10
  2. ListOrde*:10

Fastopen works equally well as a floater or a dockable. When it is activated, the search pattern textfield has the default focus. Starting with 1.0, FastOpen adds yet another innovative and handy feature to also allow opening of files that were recently opened. This is very helpful since we frequently return to previously opened files, regardless of the current proejct.

Introduction to New Features

In one typical usage scenario, there is frequent access to files and relatively less jumping around projects. FastOpen has changed its internals to adopt the popular indexing method. Instead of querying the sources(Project Viewer, Open buffers etc) EACH time, it simply pulls the files and maintains an index and only re-polls after a configurable(via Plugin Options) second timeout. Thus you can configure how frequent you want FastOpen to load the new file list depending on your usage pattern. Users wishing to NOT use the Polling Index Manager can switch to the old behaviour(query each time) by setting "fastopen.indexing.strategy" property to "simple". To switch back set the property to "polling".

Version 2.5.1

Requirements: Jdk 1.6+, jEdit 5.0pre1, ProjectViewer 3.5(Optional)

  1. FR #3580223: If the thing to search for has a file separator character, search full path instead of just filename (Alan Ezust)

Release Notes & Change Log for Version : 2.5 (5th July 2012)

Requirements: Jdk 1.6+, jEdit 4.5 (runtime)/jEdit 5.0pre1 (for building), ProjectViewer 3.4.2(Optional)

  1. Offers a jEdit 5 FileOpenerService [#3481157 - Alan Ezust]
  2. FastOpen now uses the View TextArea's Background color for its Text Field's Background. Helps in case custom themes are used. [Jiger Patel]
  3. FastOpen now supports differential colours for File Names and Paths in the Search Results. The Colour to use for the path is configurable via FastOpen options. (Dont forget to do a ReIndex after changing path colors) [Jiger Patel]
  4. Alternative rows can be highlighted(zebra style) in the Search Results. Ofcourse it can be configured to be switched on/off via Options. [Jiger Patel]
  5. Support for CamelCase Search. For example simply type First Letter of Uppercase Filename to search. [Jiger Patel]
  6. Fixed Bug - FastOpen jump to line number only works on loaded buffers. (Bug #3517260) [Jiger Patel]
  7. FastOpen now uses jEdit's "Extra Word Characters" settings to identify words which can be used in opening Files smartly. For instance previously having cursor on Fast|Open.showWindow would show "FastOpen.showWindow" in searchbox(which would not yield any results) whereas the user might have intended to open a File "FastOpen" and thus had cursor on its name. Now this will work as intended. Great esp when opening Files with static variable references. [Jiger Patel]

Release Notes & Change Log for Version : 2.4 (28 Nov 2011)

Requirements: Jdk 1.5+, JEdit 4.3+, ProjectViewer 3.0.1+(Optional)

Release Notes & Change Log for Version : 2.3 (15 Nov 2010)

Requirements: Jdk 1.5+, JEdit 4.3+, ProjectViewer 3.0.1+(Optional)

  1. Run in work thread instead of AWT thread to avoid deadlocks.
  2. Updates to ProjectViewer 3 API.

Release Notes & Change Log for Version : 2.2 (July 29 2009)

Requirements: Jdk 1.5+, JEdit 4.3pre17+, ProjectViewer 2.9(SVN)

  1. Request reindex when active project is changed (Shlomy Reinstein - #2018535).
  2. Creating dockable after opening the fastopen dialog works now. Floating a docked dockable works too. (alan ezust)
  3. Patched to work with ProjectViewer 2.9(Optional).

Release Notes & Change Log for Version : 2.1 (31st August 2006)

Requirements: Jdk 1.4+, JEdit 4.3pre6+, ProjectViewer 2.1.3.4+(Optional)

  1. Added "delay before searching" (in fastopen options) to enable delay before FastOpen starts searching the index. This improves the performance drastically preventing event firing and thread contentions on every key press since the text to find would now be batched.
  2. Fixed NPE if ProjectViewer is present but contains no projects.
  3. Refactored FastOpen to use java.util.regex instead of gnu regexp fixing bug 1517598.
  4. Made textarea the "default focus component", and ESC dismisses dockable. (Alan Ezust)
  5. For those using FastOpen with ProjectViewer plugin, we recommend using only ProjectViewer 2.1.3.4+. Using lower versions of ProjectViewer with FastOpen freezes jEdit and killing the process is the only way out.

Release Notes & Change Log for Version : 2.0 (10th January 2006)

Requirements: Jdk 1.3+, JEdit 4.2final+, ProjectViewer 2.1+ (Optional)

  1. FastOpen now maintains an Index of files instead of querying the sources each time. An Index Manager thread will update the index in the background from time-to-time(configurable via Fastopen Options). This immensely speeds up FastOpen.
  2. File search string entered during the time the Index is being created(generally on first execution of FastOpen), is buffered and is automatically executed when indexing process is completed. So during initial index building esp. of large projects be patient.
  3. Incase two files are not open, then the one which is Project file take precedence(If Sorting is enabled).
  4. Fixed a rare case of Same file (1 appearing in Project and the other from Recent List before the Project was created) both getting displayed because sources were returning different character case namely ProjectViewer returning c:\directory\myfile.txt and Recent file returning C:\directory\myfile.txt.
  5. Fixed a rare NPE case if there was a RegexpException
  6. Limited the filename search pattern to ignore multiline selections to avoid mistakenly invoking FastOpen on a large selection and FastOpen having to go and search an invain pattern.
  7. Multi-File open ability added.
  8. Projects in the Project List dropdown are now sorted in case-insensitive order.

Release Notes & Change Log for Version : 1.1 (16th August 2004)

  1. Fixed FastOpen's performance issues cropped up in FastOpen 1.0. The performance has been increased many-folds by optimizing internal data structures and eliminating unnecessary Structure Copies etc.
  2. Added option to toggle inclusion of Recent files in Search set.
  3. Cleanup of some old, deprecated FastOpen property names.

Release Notes & Change Log for Version : 1.0

  1. Upgraded to jEdit 4.2 API.
  2. FastOpen search pattern textbox now has the default focus(in case FastOpen is docked).
  3. FastOpen now adds the ability to open files from the "Recent Files" list also.

Release Notes & Change Log for Version : 0.9

  1. Added the ability to open file + jump to a line no.
  2. Optimised implementation to ArrayList instead of Vectors.

Release Notes & Change Log for Version : 0.8

  1. FastOpen now remembers file search patterns you had entered previously & allows easy access to them by using Ctrl+Up or Ctrl+Down arrow to transverse between them for re-run of previous searches.
  2. FastOpen can now also switch between "non-project open files" & also supports color coding of such files for Visual identification.
  3. You can now use the "Jump to file" feature also by placing the cursor on a filename besides the usual 0.7 way of selecting the text & invoking FastOpen on it.
  4. The text color in the pattern box now default to that of jEdit's textarea.

Release Notes & Change Log for Version : 0.7

  1. Updated to jEdit 4.1 plugin changes.
  2. Updated to ProjectViewer 2.0
  3. Removed FastOpen from EditBus events. Thereby making FastOpen even more faster.
  4. Removed ALL dependencies from creating ProjectViewer instances in FastOpen. Now u can use FastOpen without having ProjectViewer as one of your dockables. Thereby further facilitating faster & more performance friendly experience to FastOpen users, since they don't have to block memory for ProjectViewer GUI which they might never use.
  5. Lots of code improvements/cleanups. Simplifying FastOpen api further.
  6. Removed the unneccesary active Project from titlebar.
  7. New Feature: FastOpen now supports "Jump to selected file" feature whereby if FastOpen is invoked on a selected filename then it will automatically open that file if it is the only one in your project or shows you a list of files matching that selected text.
  8. File pattern textbox now occupies all the space on horizontal resize.
  9. FastOpen window set to a good default size for first time installation.
  10. Added Dockable shortcuts missing from the previous pre-releases & a couple of changes in action & dockables.xml files.

Release Notes for Version : 0.6

  1. Fixed a small bug when FastOpen would get a NPE on clicking OK/Cancel in Plugin Options box when FastOpen options were not changed.
  2. New Regular Expressions support for finding files. Thus replacing the simple substring functionality. Now you can not just find files matching some substring but also use globs for searching files. This is very helpfull in huge projects.
  3. Added a new option in the Plugin Options to toggle Ignorecase when doing Search.
  4. This document!! Which was there only in form of Release Notes & TODO list.