Move the mouse over the picture to see CodeViewer.
CodeFinder is a very fast desktop search tool for programmers, IT investigators and researchers
who work with large collections of plain text files.
It is built for repeated searching
in the same file sets, such as source code, logs, notes, exports, copied mail text, malware-related
text and other plain text data where normal desktop search is often too broad or too slow.
With Saved Search Areas, CodeFinder can keep file contents in RAM, making repeated searches extremely
fast, often well below one second once the area is loaded.
Search results are grouped by file
and shown with line numbers and highlighted matches. Double-click a result to open the real file
directly at the matching line. From there, you can double-click text to use it as the next search
term, making it easy to follow class names, function names, member names, namespaces, IP addresses,
email addresses and other text trails.
For programmers, this means you can search for a
class, jump to a hit, double-click a function name and continue from there. For IT and malware
research, it helps you move quickly from one address, name or value to the next without constantly
retyping.
Selected result text can also be copied directly with Ctrl+C or Ctrl+Insert,
which is useful when you want to reuse an exact function call, path, address or other piece of
text.
| Status: | Coffeeware |
| Current version: | 0.9 |
| System: | Windows |
| Download: | Download |
Find is the text you want to
search for.
In Files is a space separated list of file
types such as h hpp cpp c or pas dfm dpr. Do not use * and do not use semicolons. Just type
the extensions separated by spaces. If the field is empty, all
file types are searched.
In Folder can be either a real folder path
for a quick one-off search, or the name of a saved Search
Area. Internally CodeFinder treats the field as a real folder
if it contains \, / or :.
If it does not contain those characters, CodeFinder tries to
find a saved Search Area with that name.
SubFolders decides whether subfolders are
included in a quick folder search.
Match Case is exactly what it sounds like.
Whole Words is more useful than in many other
tools. CodeFinder treats the complete search term as the word,
even if it contains punctuation. In many search tools a term
such as word->word will fail
with Whole Words turned on. In CodeFinder the complete text in
the search field is the word to be matched, so a search like
that still makes sense here.
Wrap at end belongs to the internal viewer
search and decides whether the search continues from the top
when the end is reached.
The search areas list is the place where saved
search areas are shown and can be accessed. By double-clicking an
Item in the list it becomes the active search area and as such
determine where the next search is performed.
By right—clicking
you get the popup menu shown below.
There are four columns in the list, the two at the left with the
colored dots tell two different things.
There are four columns in the list, the two at the left with the
colored dots tell two different things. The first column shows
how the area is configured: gray means No Load,
yellow means Load on First Use and green
means Load at Startup. The second row shows whether the
area is loaded right now: green means loaded and
gray means not loaded. The Mem column shows
how much RAM an area is using when it is loaded.
Search Areas really shows their strength when you keep doing
searches on the same sets of files.
The popup menu on the Search Areas list gives
the main management commands.
You can add a new Search Area, activate the selected one, edit
it, delete it, or release the memory used by a loaded area.
Releasing memory is important when you want the area to reread
changed files. Loaded areas keep file contents in RAM for
speed, but the files are not held open. That means you can
still edit the real files in your editor, but the loaded text
snapshot will only change after the area is released and
loaded again.
This window is where the saved setup is
defined.
Search Area Name is the text that appears in
the main In Folder field and in the Search
Areas list. Choose a name that makes sense in daily use,
because this is what you will type or select later.
File Types to Search in works the same way as
the main In Files field: extensions
separated by spaces, no *, no
semicolons, and an empty field means all file types.
Directories to Search is one folder per line.
Directory Excludes and File Excludes
use simple wildcard matching. word*
means text that starts with word,
*word means text that ends with word, and *word*
means the text can appear anywhere. The same wildcard style is
used in both exclude fields.
Search Subfolders includes subfolders for the
listed directories.
Include NO extensions includes files that
have no extension at all.
No Load reads files when needed. Load
on First Use loads the file contents into RAM the
first time the area is searched. Load at Startup
does it during program start. This lets you balance startup
time against search speed.
When an area has been loaded, the text stays ready in RAM for
very fast repeated searches. The files are not kept open, so
you can still edit them normally. If you change a file that
belongs to a loaded area, the changed text will not be
searched until the area memory is released and the area is
loaded again.
If you edit an existing Search Area and also change its name,
the dialog gives you Save As so the changed
setup can be stored as a new area instead of overwriting the
old one. In practice that also means you must change the name
if you want the Save As option to appear.
S, M and L switch between small, medium and large program sizes. The chosen size is remembered, so you can keep the view that fits your screen best.
Create Area stores the current search setup as a saved Search Area. It is the quick way to turn a one-off setup into something reusable.
Double-Click Modifiers change the next search term when you double-click text in CodeViewer. This is very useful for things like ., : and ->, where you want to continue the search with a prefix added automatically instead of typing it by hand.
Search results are grouped by file with an
empty line in between. The number of hits in the file is shown
to the left of the filename.
The line number is shown together with the matching line text,
and the searched text is highlighted. A double-click on a
result shows the hit immediately.
The result popup menu also gives keyboard shortcuts that are
worth learning: Enter shows the hit, Ctrl+Enter
shows the file in your favorite editor, Shift+Enter
opens the file in the default editor, and Ctrl+Shift+Enter
shows the file in Explorer.
Ctrl+C and Ctrl+Insert copy
the selected result text to the clipboard. This is especially
handy for programmers who want to reuse a function call or a
declaration exactly as it appears in the source.
If your editor supports opening a file at a
specific line, CodeFinder can use it directly.
In the favorite editor setup, %f
means the filename and is quoted automatically, while %l means the line number.
The template list gives ready-made examples, and you can edit
the argument field yourself if your editor needs another
syntax. This makes it possible to jump from the result list to
your own real editor instead of only using the internal
viewer.
The popup command Set favorite editor leads
to this dialog.
When you show a hit, CodeFinder switches from
the search window to CodeViewer. It is still the same program,
but now focused on one real file so you can inspect the
surroundings of the hit quickly.
CodeViewer is good for checking context before you open the
file in a full editor. The top picture on this page switches
to a CodeViewer screenshot when you move the mouse over it.
You can
follow the text around the hit, double-click new text
to change the next search term, and use the built-in viewer
search to continue inside the current file.
Press Ctrl+F to open the find dialog shown
here. It searches directly in the Scintilla editor. The dialog
remembers the search term, Whole Words, Match Case, Wrap at
end and the Double-Click Modifiers used for text following
inside CodeViewer.
Search navigation inside the viewer also supports F3
and Shift+F3.
Syntax colors and other lexer details for
CodeViewer can be changed in the configuration file LexerLanguages.xml stored in the AppData\Roaming\Asger-P\CodeFinder
folder.
If you want to go deeper, the Scintilla and Notepad++ lexer
format documentation is a good place to look, but for many
changes it is also practical to experiment and see what
happens.
The status line shows search result
information such as number of hits, number of files and search
time.
When CodeFinder runs in forcewide mode, that also shows in the status line,
at the far right side.
CodeFinder has a special forcewide command line mode, for cases where
you need the search to be performed in double byte characters, normally CodeFinder
handles it's search in ASCII, Utf8 and ANSI codepages.
Example of usage:
CodeFinder.exe forcewide
If you start CodeFinder from a shortcut, add forcewide
after the exe path in the shortcut target field.
The program looks the same in forcewide mode as in normal
mode. The visible difference is the small forcewide
mark in the status line.
If you only need forcewide now and then, the easiest solution
is usually to make a second shortcut with that parameter
added. You can also run a normal CodeFinder and a forcewide
CodeFinder at the same time.
Use saved search areas for anything you search
often. That is where CodeFinder becomes much faster than
retyping folders and file types every time.
If you are following code structure, start broad and then
narrow down by double-clicking new text in CodeViewer. Search
for a class, show a hit, double-click a method name, and
continue from there.
If you are following indicators in logs or malware related
text, use the same idea for names, values, IP addresses and
email addresses.
Learn the result shortcuts. Showing the hit, opening your own
editor, opening Explorer and copying selected result text from
the keyboard saves a surprising amount of time over a normal
workday.
If a loaded Search Area seems out of date after you edited
files, release the memory for that area and let it load again
on the next search.
CodeFinder is meant for plain text files. It
is not intended as a binary file searcher.
Case-insensitive searching can run into edge cases with some
Unicode letters where upper-case and lower-case forms do not
have the same length. That is one of the reasons forcewide
exists.
A loaded Search Area is a RAM snapshot for speed. That is by
design, but it also means changed files are not automatically
reread until the area is released and loaded again.
| Program shortcuts | |
| Help | F1 |
| Start search | Enter |
| Stop search or load | Escape |
| Set focus to the find term edit | Ctrl + T |
| Toggle CodeViewer | F5 and F8 |
| Open a popup | Shift + F10 |
| Shortcuts when search result have focus | |
| Show hit in CodeViewer | Enter |
| Show hit in your editor | Ctrl + Enter |
| Open file in default editor | Shift Enter |
| Show file in explorer | Ctrl + Shift + Enter |
| Copy selected to clipboard | Ctrl + C or Ctrl + Insert |
| Shortcuts when CodeViewer is open | |
| Open the find dialog | Ctrl + F |
| Find next hit | F3 |
| Find previous hit | Shift + F3 |
Last updated: Apr-28-2026 © Copyright 2003-2026 Asger-P Software