From: John Williams <jrw@pobox.com>
Subject: patches for etags and shell-command
Date: Fri, 20 Jan 2006 10:29:40 -0600 [thread overview]
Message-ID: <43D10FF4.8030202@pobox.com> (raw)
Hello everyone,
This if my first post to emacs-devel, so feel free to correct my etiquette :)
I have two patches today; the first one changes shell-command so that the
default interactive argument is the current buffer's filename. This is inspired
by vim, where a '%' character in a command expands to the current buffer's filename.
--- simple.el 2006-01-20 09:52:46.000000000 -0600
+++ simple-1.el 2006-01-20 10:08:41.000000000 -0600
@@ -1797,8 +1797,12 @@
In an interactive call, the variable `shell-command-default-error-buffer'
specifies the value of ERROR-BUFFER."
- (interactive (list (read-from-minibuffer "Shell command: "
- nil nil nil 'shell-command-history)
+ (interactive (list (read-from-minibuffer
+ "Shell command: "
+ nil nil nil
+ 'shell-command-history
+ (and (buffer-file-name)
+ (file-relative-name (buffer-file-name))))
current-prefix-arg
shell-command-default-error-buffer))
;; Look for a handler in case default-directory is a remote file name.
This patch corrects a bug in etags that causes completion to only consider the
tags in a single TAGS buffer. With the match tag completion will consider tags
from all the active TAGS buffers. (The diff is a bit longer than it really
needs to be because I inadvertently changed tabs to spaces--I didn't change back
to tabs because spaces appear to be the preferred from of indentation based on
emacs's default settings.)
--- etags.el 2006-01-20 09:53:43.000000000 -0600
+++ etags-1.el 2006-01-20 10:14:31.000000000 -0600
@@ -747,28 +747,21 @@
(defun tags-completion-table ()
(or tags-completion-table
(condition-case ()
- (prog2
- (message "Making tags completion table for %s..." buffer-file-name)
- (let ((included (tags-included-tables))
- (table (funcall tags-completion-table-function)))
- (save-excursion
- ;; Iterate over the list of included tables, and combine each
- ;; included table's completion obarray to the parent obarray.
- (while included
- ;; Visit the buffer.
- (let ((tags-file-name (car included)))
- (visit-tags-table-buffer 'same))
- ;; Recurse in that buffer to compute its completion table.
- (if (tags-completion-table)
- ;; Combine the tables.
- (mapatoms (lambda (sym) (intern (symbol-name sym) table))
- tags-completion-table))
- (setq included (cdr included))))
- (setq tags-completion-table table))
- (message "Making tags completion table for %s...done"
- buffer-file-name))
- (quit (message "Tags completion table construction aborted.")
- (setq tags-completion-table nil)))))
+ (let (combined-table)
+ (save-excursion
+ (while (visit-tags-table-buffer (and combined-table t))
+ (let ((included (tags-included-tables))
+ (table (funcall tags-completion-table-function)))
+ (if (null combined-table)
+ (setq combined-table table)
+ (mapatoms (lambda (sym)
+ (intern (symbol-name sym) combined-table))
+ table))
+ (message "Making tags completion table for %s...done"
+ buffer-file-name))))
+ (setq tags-completion-table combined-table))
+ (quit (message "Tags completion table construction aborted.")
+ (setq tags-completion-table nil)))))
;; Completion function for tags. Does normal try-completion,
;; but builds tags-completion-table on demand.
next reply other threads:[~2006-01-20 16:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-20 16:29 John Williams [this message]
2006-01-21 19:58 ` patches for etags and shell-command Richard M. Stallman
2006-01-21 22:17 ` John Williams
2006-01-22 17:44 ` Richard M. Stallman
2006-01-22 0:38 ` Juri Linkov
2006-02-15 18:08 ` Francesco Potorti`
[not found] <E1F9nTR-0003HU-Ew@fencepost.gnu.org>
2006-02-19 21:48 ` John Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43D10FF4.8030202@pobox.com \
--to=jrw@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).