asandler: At some point I may make it accept multiple patterns separated by spaces (maybe even soon). But honestly I don't filter that way. I have about 25,000 files to filter through. I tend to use uniqueness to filter, rather than figuring out regular expressions or multiple sets of strings to use. I know exactly what file I want to open, and I just want to reduce the amount of typing to a few characters -- I don't want to use a filtering syntax, that takes too much thought (and I have 15+ years of neural pathways trained to use short unique phrases to filter the list). Nevertheless I may add support for something similar to how opf works at some point.
Also, my filter assumes prefix matching unless you prefix the text with a star. So just by typing normally I can match by prefix or sub string or use normal wildcards. A major design goal I had was to avoid some kind of special syntax, and just filter naturally.
hs2: Yes, the entire dialog is implemented in the DLL (but it gets the list of project/workspace files by calling back into Slick-C). In order to get good performance I needed to use a virtual listview, which was only possible in DLL code. Filtering 25,000+ files is instanteous on my 2GHz laptop. Also, the filtered list is just an array of backpointers to the unfiltered list, so it takes less processing to build the filtered list. The down side is that unless I resort to some hackery, it can only be a modal dialog (not a floating or docked toolbar). But that's fine for my purposes.
Actually ultimately I don't even want tabs, but I'm experimenting with that UI metaphor first since there seems to be such a pervasive distinction between project and workspace file lists in SlickEdit. As the UI evolves I'm really looking to reduce the modes (tabs), or perhaps to automatically deduce when to look directly in the file system, or perhaps even just merge in file system matches with workspace file list matches. I like the idea of merging the workspace file list with the file system file list (e.g. relative to the cwd or whatever path has been typed), as it fits nicely with my goal of just typing naturally and having the filtering quickly reduce to what I was looking for, without having to think about or select tabs, and without having to think about how to use a special filtering syntax. I don't know how that will turn out, but I'll certainly experiment with it.