Mercurial > emacs
view lisp/international/isearch-x.el @ 30982:7e7ba448ad10
(widget-choose, widget-choice-mouse-down-action):
Don't test x-popup-menu.
(function) <complete-function>: Complete only fbound symbols.
<validate, value>: New.
(variable) <complete-function>: Complete only bound symbols.
(coding-system): Add :base-only, :complete-function, :validate,
:value, :prompt-match.
(widget-coding-system-prompt-value): Use read-coding-system and
act on :base-only.
(editable-field): Add :help-echo.
(widget-push-button-gui, widget-push-button-cache)
(widget-gui-action, widget-editable-list-gui): COmment out, along
with uses.
(widget-at): Make arg optional.
(widget-echo-help): Adjust for current help-echo calling sequence.
(widget-specify-field, widget-specify-button)
(widget-specify-insert, widget-get-sibling, widget-image-find)
(widget-convert, widget-insert, widget-leave-text)
(widget-beginning-of-line, widget-end-of-line, widget-kill-line)
(widget-setup, widget-field-find, widget-before-change)
(widget-after-change, widget-default-complete)
(widget-default-create, widget-default-delete)
(widget-push-button-value-create, editable-field)
(widget-field-prompt-value, widget-field-validate)
(widget-choice-value-create, widget-choice-action)
(widget-choice-validate, widget-checklist-add-item)
(widget-radio-add-item, widget-radio-chosen)
(widget-radio-value-inline, widget-editable-list-value-create)
(widget-editable-list-entry-create)
(widget-documentation-link-add)
(widget-documentation-string-value-create)
(widget-regexp-validate, widget-file-complete)
(widget-sexp-validate, widget-plist-convert-widget)
(widget-plist-convert-widget, widget-alist-convert-widget)
(widget-alist-convert-widget, widget-color-complete): Simplify,
particularly to avoid bindings which aren't optimized out.
author | Dave Love <fx@gnu.org> |
---|---|
date | Sun, 20 Aug 2000 18:34:24 +0000 |
parents | bec7534ceb14 |
children | 6d04a7aba075 |
line wrap: on
line source
;;; isearch-x.el --- extended isearch handling commands ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Keywords: multilingual, isearch ;; Author: Kenichi HANDA <handa@etl.go.jp> ;; Maintainer: Kenichi HANDA <handa@etl.go.jp> ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: ;;;###autoload (defun isearch-toggle-specified-input-method () "Select an input method and turn it on in interactive search." (interactive) (let ((overriding-terminal-local-map nil)) (toggle-input-method t)) (setq isearch-input-method-function input-method-function isearch-input-method-local-p t) (setq input-method-function nil) (isearch-update)) ;;;###autoload (defun isearch-toggle-input-method () "Toggle input method in interactive search." (interactive) (let ((overriding-terminal-local-map nil)) (toggle-input-method)) (setq isearch-input-method-function input-method-function isearch-input-method-local-p t) (setq input-method-function nil) (isearch-update)) (defvar isearch-minibuffer-local-map (let ((map (copy-keymap minibuffer-local-map))) (define-key map [with-keyboard-coding] 'isearch-with-keyboard-coding) (define-key map [with-input-method] 'isearch-with-input-method) map) "Keymap to use in minibuffer for multibyte character inputting in isearch.") ;; Exit from recursive edit safely. Set in `after-change-functions' ;; by isearch-with-keyboard-coding. (defun isearch-exit-recursive-edit () (interactive) (throw 'exit nil)) ;; Simulate character decoding by the keyboard coding system in the ;; current buffer (minibuffer). As soon as a character is inserted, ;; it exits from minibuffer. (defun isearch-with-keyboard-coding () (interactive) (let ((after-change-functions '(isearch-exit-recursive-edit))) (recursive-edit)) (exit-minibuffer)) ;; Simulate the work of the current input method in the current buffer ;; (minibuffer). (defun isearch-with-input-method () (interactive) (let ((events (funcall input-method-function nil))) ;; EVENTS is a list of events the input method has generated. It ;; contains a character event and/or the special event ;; `compose-last-chars'. We extract only character events and ;; insert the corresponding characters. (while events (if (integerp (car events)) (insert (car events))) (setq events (cdr events))) (exit-minibuffer))) ;;;###autoload (defun isearch-process-search-multibyte-characters (last-char) (if (eq this-command 'isearch-printing-char) (let ((overriding-terminal-local-map nil) (prompt (concat (isearch-message-prefix) isearch-message)) (minibuffer-local-map isearch-minibuffer-local-map) str) (if isearch-input-method-function (let (;; Let input method work rather tersely. (input-method-verbose-flag nil)) (setq unread-command-events (cons 'with-input-method (cons last-char unread-command-events)) ;; Inherit current-input-method in a minibuffer. str (read-string prompt nil nil nil t)) (if (not str) ;; All inputs were deleted while the input method ;; was working. (setq str "") (if (and (= (length str) 1) (= (aref str 0) last-char) (>= last-char 128)) ;; The input method couldn't handle LAST-CHAR. (setq str nil))))) (if (and (not str) (keyboard-coding-system)) (setq unread-command-events (cons 'with-keyboard-coding (cons last-char unread-command-events)) str (read-string prompt))) (if (and str (> (length str) 0)) (let ((unread-command-events nil)) (isearch-process-search-string str str)) (isearch-update))) (isearch-process-search-char last-char))) ;;; isearch-x.el ends here