1 ;; Copyright (c) 2008-2009 Jonathan Lange, Matthew Lefkowitz 2 ;; 3 ;; Permission is hereby granted, free of charge, to any person obtaining 4 ;; a copy of this software and associated documentation files (the 5 ;; "Software"), to deal in the Software without restriction, including 6 ;; without limitation the rights to use, copy, modify, merge, publish, 7 ;; distribute, sublicense, and/or sell copies of the Software, and to 8 ;; permit persons to whom the Software is furnished to do so, subject to 9 ;; the following conditions: 10 ;; 11 ;; The above copyright notice and this permission notice shall be 12 ;; included in all copies or substantial portions of the Software. 13 ;; 14 ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 ;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 ;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 ;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 ;; LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 ;; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 ;; WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 22 23 (require 'grep) 24 25 (defconst bzr-tools-grep-command 26 "bzr ls -VR --kind=file --null | xargs -0 grep -In %s" 27 "The command used for grepping files using bzr. See `bzr-tools-grep'.") 28 29 30 ;; Run 'code' at the root of the branch which dirname is in. 31 (defmacro bzr-tools-at-branch-root (dirname &rest code) 32 `(let ((default-directory (locate-dominating-file (expand-file-name ,dirname) ".bzr"))) ,@code)) 33 34 35 (defun bzr-tools-grep (expression dirname) 36 "Search a branch for `expression'. If there's a C-u prefix, prompt for `dirname'." 37 (interactive 38 (let* ((regexp (grep-read-regexp)) 39 (dir (if (null current-prefix-arg) 40 default-directory 41 (read-directory-name (format "Search for %s in: " string))))) 42 (list regexp dir))) 43 (bzr-tools-at-branch-root dirname 44 (grep-find (format bzr-tools-grep-command (shell-quote-argument expression))))) 45 46 47 (defun bzr-tools-branch-todo () 48 (interactive) 49 (bzr-tools-at-branch-root "." 50 (compile "bzr todo" t))) 51 52 53 (provide 'bzr-tools)
Attached FilesTo refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
You are not allowed to attach a file to this page.