- Opening the Source Editor
- Managing Automatic Insertion of Closing Characters
- Displaying Line Numbers
- Generating Code Snippets without Leaving the Keyboard
- Using Code Completion
- Inserting Snippets from Code Templates
- Using Editor Hints to Generate Missing Code
- Matching Other Words in a File
- Generating Methods to Implement and Override
- Generating JavaBeans Component Code
- Creating and Using Macros
- Creating and Customizing File Templates
- Handling Imports
- Displaying Javadoc Documentation While Editing
- Formatting Code
- Text Selection Shortcuts
- Navigating within the Current Java File
- Navigating from the Source Editor
- Searching and Replacing
- Deleting Code Safely
- Changing a Method's Signature
- Encapsulating a Field
- Moving a Class to a Different Package
- Moving Class Members to Other Classes
- Creating a Method from Existing Statements
- Creating an Interface from Existing Methods
- Extracting a Superclass to Consolidate Common Methods
- Changing References to Use a Supertype
- Unnesting Classes
- Tracking Notes to Yourself in Your Code
- Comparing Differences Between Two Files
- Splitting the Source Editor
- Maximizing Space for the Source Editor
- Changing Source Editor Keyboard Shortcuts
Searching and Replacing
There are several types of searches in the IDE for different needs. You can
- Find occurrences of an identifier for a class, method, or field in your project using the Find Usages command
- Rename a class, method, or field throughout your project by using the Rename command
- Find and replace specific character combinations in an open file by pressing Ctrl-F in the file
- Find files that match search criteria based on characters in the file, characters in the filename, file type, and/or date by right-clicking a folder or project node in the Projects window and choosing Find (or by pressing Ctrl-F)
Finding Occurrences of the Currently Selected Class, Method, or Field Name
When you are working in the Source Editor, you can quickly find out where a given Java identifier is used in your project using the Find Usages command.
Find Usages improves upon a typical Find command by being sensitive to the relevance of text in the Java language context.
Depending on what kind of identifier you have selected and which options you have selected in the Find Usages dialog box, the Find Usages command output displays lines in your project that contain a combination of the following items:
- (For classes and interfaces) a declaration of a method or variable of the class or interface
- (For classes and interfaces) a usage of the type, such as at the creation of a new instance, importing a class, extending a class, implementing an interface, casting a type, or throwing an exception
- (For classes and interfaces) a usage of the type's methods or fields
- (For classes and interfaces) subtypes
- (For fields) the getting or setting of the field's value
- (For methods) the calling of the method
- (For methods) any overriding methods
- Comments that reference the identifier
The Find Usages command does not match
- Parts of words
- Words that differ in case
To find occurrences of a specific identifier in your code:
- In the Source Editor, move the insertion point to the class, method, or field name that you want to find occurrences of.
- Choose Edit | Find Usages, right-click and choose Find Usages, or press Alt-F7.
- In the Find Usages dialog box, select the types of occurrences that you want displayed and click Next.
The results are displayed in the Usages window (shown in Figure 5-12), which appears at the bottom of the IDE.
Figure 5-12 Usages window
You can navigate to a given occurrence of a class, method, or field name by doubleclicking the occurrences line in the Usages window.
Renaming All Occurrences of the Currently Selected Class, Method, or Field Name
If you want to rename a class, method, or field, you can use the Refactor | Rename command to update all occurrences of the identifier in the Project to the new name. Unlike standard search and replace operations, the Rename command is sensitive to the Java context of your code, which makes it much more easy and reliable to use when reworking code. In addition, with the Rename command, you get a preview of the changes to be made and can prevent renaming of specific occurrences.
To rename a class, method, or field name:
- In the Source Editor, move the insertion point to an occurrence in the code of the class, method, or field name that you want to rename.
- Right-click and choose Refactor | Rename or press Alt-Shift-R.
-
In the Rename dialog box, type the new name for the element.
If you want occurrences of the name in comments to also be changed, check the Apply Name on Comments checkbox.
-
In the Rename dialog box, click Next.
If you have deselected the Preview All Changes checkbox, the changes are applied immediately.
If you leave the Preview All Changes checkbox selected, the Refactoring window appears with a preview of the changes.
- In the Refactoring window (shown in Figure 5-13), which appears at the bottom of the IDE, verify the occurrences that are set to change. If there is an occurrence that you do not want to change, deselect that line's checkbox.
Figure 5-13 Refactoring preview window
-
Click Do Refactoring to apply the changes.
If you later find that the refactoring has had some consequences that you would like to reverse, you can choose Refactor | Undo.
Searching and Replacing Combinations of Characters in a File
If you merely want to find a combination of characters in your file, click in the file that you want to search, choose Edit | Find (Ctrl-F), and type the text that you want to find in the Find dialog box (as shown in Figure 5-14).
Figure 5-14 Find window for the Source Editor
In the Find dialog box, you can use a regular expression as your search criterion by selecting the Regular Expressions checkbox.
Unlike the Find Usages command, the Find command allows you to search for parts of words, do case-insensitive searches, and highlight matches in the current file.
Once you have dismissed the Find dialog box, you can jump between occurrences of the search string by pressing F3 (next occurrence) and Shift-F3 (previous occurrence).
To select the word in which the cursor is resting and start searching for other occurrences of that word, press Ctrl-F3.
To search and replace text, click in the file that you want to replace text, press Ctrl-H, and fill in the Find What and Replace With fields.
Other File Searches
If you want to do a search on multiple files for something other than an occurrence of a specific Java identifier, you can use the Find and Find in Projects commands. These commands enable you to search files within a folder, project, or all projects.
You can base these commands on any combination of the following types of criteria:
- Matches to a substring or regular expression on text in the file
- Matches to a substring or regular expression on the filename
- Dates the files were modified
- File type
To initiate such a file search, do one of the following:
- Choose Edit | Find in Projects to search all files in all open projects (including project metadata files).
- In the Projects window, right-click the node for the folder or project that you want to search in and choose Find (or press Ctrl-F). If you choose Find this way, the project metadata, including the build script and the contents of the nbproject folder, are not searched.
- Right-click a folder in the Files window and choose Find. If you choose Find this way, the project metadata, including the build script and the contents of the nbproject folder, are also searched.
After you initiate the search, fill as many search criteria as you would like. When you fill in a criterion on a given tab, the Use This Criterion for Search checkbox is selected. Deselect this checkbox if you decide to search according to a different type of criterion and you do not want the criterion on the currently selected tab to be used.
After you enter the criteria in the Find dialog box or the Find in Projects dialog box (shown in Figure 5-15) and click Search, the results are displayed in the Search Results window with nodes for each matched file. For full-text searches, these nodes can be expanded to reveal the individual lines where matched text occurs. You can double-click a match to open that file in the Source Editor (and, in the case of full-text matches, jump to the line of the match).
Figure 5-15 Find in Projects dialog box