* The code for my new tag/todo-query parser implementation is attached. 1. org-tag-query-parse.el -- the new parser implementation 2. tag-query-tests.el -- the ``try it'' interface and test suites * Installing [fn:1] 1. Put org-tag-query-parse.el on your load path (or add its location) 2. Byte compile org-tag-query-parse.el but do *not* load it yet 3. Load tag-query-tests.el or do (require 'tag-query-tests). * Using it [fn:2] 1. Run the tests with M-x run-tag-query-tests This runs the tests and nicely displays a summary in a new buffer. Give a prefix argument to display detailed test results instead, showing all the queries tested. All tests passed for me with GNU Emacs 23.2 and 24.1 on Mac OS X 10.7.3 and 10.6.8. 2. Search with queries as usual. Do ordinary tag searches or use the mapping API via org-scan-tags and org-map-entries as you ordinarily would. 3. Swap parsers with M-x org-use-tag-parser. This toggles between new and original parser implementations. With a prefix argument, it prompts you for which version to use. The intent is to make it easy to try out and compare the new and current parsers in your query searches. (This command affects standard org behaviors, such as agenda search and org-map-entries. The tests run with run-tag-query-tests are unaffected by it, *except* for the org-map-entries-1 suite which uses the current org-map-entries function. To see all PASS's, you should run the test with the new parser version installed.) ---------------- [fn:1] For example, if you move to the directory with the .el files in emacs, you can do (add-to-list 'load-path default-directory) (byte-compile-file "org-tag-query-parse.el") (byte-compile-file "tag-query-tests.el") ; optional! (require 'tag-query-tests) [fn:2] Just to be clear, the commands run-tag-query-tests and org-use-tag-parser are convenience commands in tag-query-tests.el and are not part of the main code.