diff options
| author | Erik Naggum | 1996-02-20 14:48:08 +0000 |
|---|---|---|
| committer | Erik Naggum | 1996-02-20 14:48:08 +0000 |
| commit | e6fb4d11c9f2965dd8f589b5f244755f98f69dfe (patch) | |
| tree | ff2c508144f355f56864ef08937a0964d5324e15 /lisp | |
| parent | dfeadd842f22d67218e78d59d779dd4b7e0ee143 (diff) | |
| download | emacs-e6fb4d11c9f2965dd8f589b5f244755f98f69dfe.tar.gz emacs-e6fb4d11c9f2965dd8f589b5f244755f98f69dfe.zip | |
Removed (require 'picture).
(finder-insert-at-column): New function.
(finder-list-keywords, finder-list-matches): Use it.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/finder.el | 106 |
1 files changed, 55 insertions, 51 deletions
diff --git a/lisp/finder.el b/lisp/finder.el index 92921852fda..76e2adefa6b 100644 --- a/lisp/finder.el +++ b/lisp/finder.el | |||
| @@ -40,7 +40,6 @@ | |||
| 40 | 40 | ||
| 41 | (require 'lisp-mnt) | 41 | (require 'lisp-mnt) |
| 42 | (require 'finder-inf) | 42 | (require 'finder-inf) |
| 43 | (require 'picture) | ||
| 44 | 43 | ||
| 45 | ;; Local variable in finder buffer. | 44 | ;; Local variable in finder buffer. |
| 46 | (defvar finder-headmark) | 45 | (defvar finder-headmark) |
| @@ -115,57 +114,67 @@ arguments compiles from `load-path'." | |||
| 115 | (insert ";;; Code:\n") | 114 | (insert ";;; Code:\n") |
| 116 | (insert "\n(setq finder-package-info '(\n") | 115 | (insert "\n(setq finder-package-info '(\n") |
| 117 | (mapcar | 116 | (mapcar |
| 118 | (function | 117 | (lambda (d) |
| 119 | (lambda (d) | 118 | (mapcar |
| 120 | (mapcar | 119 | (lambda (f) |
| 121 | (function | 120 | (if (and (string-match "^[^=].*\\.el$" f) |
| 122 | (lambda (f) | 121 | (not (member f processed))) |
| 123 | (if (and (string-match "^[^=].*\\.el$" f) | 122 | (let (summary keystart keywords) |
| 124 | (not (member f processed))) | 123 | (setq processed (cons f processed)) |
| 125 | (let (summary keystart keywords) | 124 | (save-excursion |
| 126 | (setq processed (cons f processed)) | 125 | (set-buffer (get-buffer-create "*finder-scratch*")) |
| 127 | (save-excursion | 126 | (buffer-disable-undo (current-buffer)) |
| 128 | (set-buffer (get-buffer-create "*finder-scratch*")) | 127 | (erase-buffer) |
| 129 | (buffer-disable-undo (current-buffer)) | 128 | (insert-file-contents |
| 130 | (erase-buffer) | 129 | (concat (file-name-as-directory (or d ".")) f)) |
| 131 | (insert-file-contents | 130 | (setq summary (lm-synopsis)) |
| 132 | (concat (file-name-as-directory (or d ".")) f)) | 131 | (setq keywords (lm-keywords))) |
| 133 | (setq summary (lm-synopsis)) | 132 | (insert |
| 134 | (setq keywords (lm-keywords))) | 133 | (format " (\"%s\"\n " f)) |
| 135 | (insert | 134 | (prin1 summary (current-buffer)) |
| 136 | (format " (\"%s\"\n " f)) | 135 | (insert |
| 137 | (prin1 summary (current-buffer)) | 136 | "\n ") |
| 138 | (insert | 137 | (setq keystart (point)) |
| 139 | "\n ") | 138 | (insert |
| 140 | (setq keystart (point)) | 139 | (if keywords (format "(%s)" keywords) "nil") |
| 141 | (insert | 140 | ")\n") |
| 142 | (if keywords (format "(%s)" keywords) "nil") | 141 | (subst-char-in-region keystart (point) ?, ? ) |
| 143 | ")\n") | 142 | ))) |
| 144 | (subst-char-in-region keystart (point) ?, ? ) | 143 | (directory-files (or d ".")))) |
| 145 | ) | ||
| 146 | ))) | ||
| 147 | (directory-files (or d "."))) | ||
| 148 | )) | ||
| 149 | (or dirs load-path)) | 144 | (or dirs load-path)) |
| 150 | (insert "))\n\n(provide 'finder-inf)\n\n;;; finder-inf.el ends here\n") | 145 | (insert "))\n\n(provide 'finder-inf)\n\n;;; finder-inf.el ends here\n") |
| 151 | (kill-buffer "*finder-scratch*") | 146 | (kill-buffer "*finder-scratch*") |
| 152 | (eval-current-buffer) ;; So we get the new keyword list immediately | 147 | (eval-current-buffer) ;; So we get the new keyword list immediately |
| 153 | (basic-save-buffer) | 148 | (basic-save-buffer)))) |
| 154 | ))) | ||
| 155 | 149 | ||
| 156 | ;;; Now the retrieval code | 150 | ;;; Now the retrieval code |
| 157 | 151 | ||
| 152 | (defun finder-insert-at-column (column &rest strings) | ||
| 153 | "Insert list of STRINGS, at column COLUMN." | ||
| 154 | (if (> (current-column) column) (insert "\n")) | ||
| 155 | (move-to-column column) | ||
| 156 | (let ((col (current-column))) | ||
| 157 | (if (< col column) | ||
| 158 | (indent-to column) | ||
| 159 | (if (and (/= col column) | ||
| 160 | (= (preceding-char) ?\t)) | ||
| 161 | (let (indent-tabs-mode) | ||
| 162 | (delete-char -1) | ||
| 163 | (indent-to col) | ||
| 164 | (move-to-column column))))) | ||
| 165 | (apply 'insert strings)) | ||
| 166 | |||
| 158 | (defun finder-list-keywords () | 167 | (defun finder-list-keywords () |
| 159 | "Display descriptions of the keywords in the Finder buffer." | 168 | "Display descriptions of the keywords in the Finder buffer." |
| 160 | (interactive) | 169 | (interactive) |
| 161 | (setq buffer-read-only nil) | 170 | (setq buffer-read-only nil) |
| 162 | (erase-buffer) | 171 | (erase-buffer) |
| 163 | (mapcar | 172 | (mapcar |
| 164 | (function (lambda (assoc) | 173 | (lambda (assoc) |
| 165 | (let ((keyword (car assoc))) | 174 | (let ((keyword (car assoc))) |
| 166 | (insert (symbol-name keyword)) | 175 | (insert (symbol-name keyword)) |
| 167 | (insert-at-column 14 (concat (cdr assoc) "\n")) | 176 | (finder-insert-at-column 14 (concat (cdr assoc) "\n")) |
| 168 | (cons (symbol-name keyword) keyword)))) | 177 | (cons (symbol-name keyword) keyword))) |
| 169 | finder-known-keywords) | 178 | finder-known-keywords) |
| 170 | (goto-char (point-min)) | 179 | (goto-char (point-min)) |
| 171 | (setq finder-headmark (point)) | 180 | (setq finder-headmark (point)) |
| @@ -182,14 +191,11 @@ arguments compiles from `load-path'." | |||
| 182 | "The following packages match the keyword `" key "':\n\n") | 191 | "The following packages match the keyword `" key "':\n\n") |
| 183 | (setq finder-headmark (point)) | 192 | (setq finder-headmark (point)) |
| 184 | (mapcar | 193 | (mapcar |
| 185 | (function (lambda (x) | 194 | (lambda (x) |
| 186 | (if (memq id (car (cdr (cdr x)))) | 195 | (if (memq id (car (cdr (cdr x)))) |
| 187 | (progn | 196 | (progn |
| 188 | (insert (car x)) | 197 | (insert (car x)) |
| 189 | (insert-at-column 16 | 198 | (finder-insert-at-column 16 (concat (car (cdr x)) "\n"))))) |
| 190 | (concat (car (cdr x)) "\n")) | ||
| 191 | )) | ||
| 192 | )) | ||
| 193 | finder-package-info) | 199 | finder-package-info) |
| 194 | (goto-char (point-min)) | 200 | (goto-char (point-min)) |
| 195 | (forward-line) | 201 | (forward-line) |
| @@ -232,8 +238,7 @@ arguments compiles from `load-path'." | |||
| 232 | (setq buffer-read-only t) | 238 | (setq buffer-read-only t) |
| 233 | (set-buffer-modified-p nil) | 239 | (set-buffer-modified-p nil) |
| 234 | (shrink-window-if-larger-than-buffer) | 240 | (shrink-window-if-larger-than-buffer) |
| 235 | (finder-summary) | 241 | (finder-summary))) |
| 236 | )) | ||
| 237 | 242 | ||
| 238 | (defun finder-current-item () | 243 | (defun finder-current-item () |
| 239 | (if (and finder-headmark (< (point) finder-headmark)) | 244 | (if (and finder-headmark (< (point) finder-headmark)) |
| @@ -270,8 +275,7 @@ arguments compiles from `load-path'." | |||
| 270 | (setq mode-name "Finder") | 275 | (setq mode-name "Finder") |
| 271 | (setq major-mode 'finder-mode) | 276 | (setq major-mode 'finder-mode) |
| 272 | (make-local-variable 'finder-headmark) | 277 | (make-local-variable 'finder-headmark) |
| 273 | (setq finder-headmark nil) | 278 | (setq finder-headmark nil)) |
| 274 | ) | ||
| 275 | 279 | ||
| 276 | (defun finder-summary () | 280 | (defun finder-summary () |
| 277 | "Summarize basic Finder commands." | 281 | "Summarize basic Finder commands." |