[python-win32] PythonWin Grep modifications

Elias Fotinis efotinis at yahoo.com
Fri Oct 9 18:19:52 CEST 2009


I've made some modifications to PythonWin's Grep functionality. At first I 
just wanted to add highlighting for the regex matches, but I guess I got 
carried away. :b  I'll eventually submit it to SourceForge, so that Mark may 
include it in the official release if he wants. In the meantime, here's the 
current version: http://www.mediafire.com/file/mmjntzmjwmm/sgrepmdi.py

To test it, replace "pythonwin\pywin\framework\sgrepmdi.py". If anyone's got 
any more suggestions, fire away.

Here's a list of the changes so far:
    Functionality:
    - added match highlighting
    - replaced editboxes with combos to store MRU items
    - added keyboard handling:
      - Enter opens match (same as double-click)
      - AppMenu opens context menu (same as right-click)
    - added support for registry root key shorthands ('HKLM', 'HKCU', etc.)
    - added folder selection via common dlg
    - changed settings INI location to %AppData%;
      originally it defaulted to %WinDir% which wouldn't allow writing in 
Vista
    - made richedit control readonly
    Code & UI:
    - added a couple of comments, docstrings, and constants
    - added SearchOptions, PathSet, IniFile
    - replaced list-based dir/file/mask traversal with a generator
    - added msgboxes for Open/Save errors
    - added specific types to except clauses
    - replaced glob() with os.listdir() (glob() chokes on dirnames with 
square brackets)
    - replaced 'MS Sans Serif' dlg font with 'MS Shell Dlg'
    - tweaked dlg layouts and added a couple of icons
    BUGS:
    - setting text format is off by 1 sometimes (e.g. XP vs. Vista); maybe 
richedit EOL related
    - saved results file has junk at the end and uses \n as EOL
    - dirs and files are not generated in sorted order
    - context menu should be shown over the richedit cursor (not the mouse) 
when opened with the keyboard
    - right-clicking should move the caret before showing the context menu
    TODO:
    - tweak "More" dialog and rename to "Favorites"
    - keyboard: make Delete remove whole match line
    - add options for fonts, colors, regex (e.g. highlight all matches, not 
just first)
    - test on Python 3



More information about the python-win32 mailing list