SEARCH-REPLACE 1.68 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

Redesigning Search/Replace: Requirements:
-----------------------------------------

Reference implementation: Regexxer.

R1. Integrated GUI
	1.1 Search and replace dialogs should be the same.
	1.2 Same dialog for all files/current file.

R2. Specifying search expressions:
	2.1 Constant strings.
	2.2 Regular expressions.
	2.3 Regexp shortcuts
		2.3.1 Ignore case
		2.3.2 Whole word
		2.3.3 Beginning of word
	2.4 Subexpressions (ref 4.2)

R3. Specifying search range:
	3.1 File level:
		3.1.1 Current buffer
		3.1.2 Current selection
		3.1.3 Current block
		3.1.4 Current function (top level block)
		3.1.5 All open buffers
	3.2 Project Level:
		3.2.1 All project files
		3.2.2 Files of a particular module (e.g. include)
	3.3 Directory level:
		3.3.1 Include directory patterns (globbing)
		3.3.2 File patterns (globbing)
		3.3.3 Exclude file patterns (globbing)
		3.3.4 Exclude directory patterns (globbing)

R4. Replace expression:
	4.1 Fixed string
	4.2 String with back references (ref 2.4)
	4.3 Result of function call on matched string
		4.3.1 User defined functions (Python scripting)
		4.3.2 Pre-defined functions (upcase, etc.)
		4.3.2 Output of tool (Tools interface)

R5. Reuse configured dialogs (saved searches)
	5.1 Save current dialog
		5.1.1 User level
		5.1.2 Project Level (?)
	5.2 Assign names to commonly used dialog settings.
	5.3 Retrieve dialog settings by name from combo.

R6. Context help with variables and regular expressions.

R7. Miscellaneous options:
	7.1 Ask before replacing.
	7.2 Open in editor before replacing.

R8. Displaying search results:
	8.1 Show in find pane.
	8.2 Two find panes.
	8.3 Highlight all occurences in buffers.

-----------------------------------------------