1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-13 15:00:42 -08:00
emacs/lisp/obsolete/erc-hecomplete.el
Juanma Barranquero 41ba8231ef lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.

* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.

* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.

* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.

* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.

* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.

* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.

* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS.  Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.

* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.

* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.

* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.

* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 12:12:27 +02:00

221 lines
7.8 KiB
EmacsLisp

;;; erc-hecomplete.el --- Provides Nick name completion for ERC
;; Copyright (C) 2001-2002, 2004, 2006-2019 Free Software Foundation,
;; Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcCompletion
;; Obsolete-since: 24.1
;; 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 3 of the License, 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. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;; This file is considered obsolete. It is recommended to use
;; completion from erc-pcomplete instead.
;; This file is based on hippie-expand, while the new file is based on
;; pcomplete.
;;; Code:
(require 'erc)
(require 'erc-match); for erc-pals
(require 'hippie-exp); for the hippie expand stuff
;;;###autoload (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t)
(define-erc-module hecomplete nil
"Complete nick at point."
((add-hook 'erc-complete-functions 'erc-hecomplete))
((remove-hook 'erc-complete-functions 'erc-hecomplete)))
(defun erc-hecomplete ()
"Complete nick at point.
See `erc-try-complete-nick' for more technical info.
This function is obsolete, use `erc-pcomplete' instead."
(interactive)
(let ((hippie-expand-try-functions-list '(erc-try-complete-nick)))
(hippie-expand nil)))
(defgroup erc-hecomplete nil
"Nick completion. It is recommended to use `erc-pcomplete' instead."
:group 'erc)
(defcustom erc-nick-completion 'all
"Determine how the list of nicks is determined during nick completion.
See `erc-complete-nick' for information on how to activate this.
pals: Use `erc-pals'.
all: All channel members.
You may also provide your own function that returns a list of completions.
One example is `erc-nick-completion-exclude-myself',
or you may use an arbitrary lisp expression."
:type '(choice (const :tag "List of pals" pals)
(const :tag "All channel members" all)
(const :tag "All channel members except yourself"
erc-nick-completion-exclude-myself)
(repeat :tag "List" (string :tag "Nick"))
function
sexp)
:group 'erc-hecomplete)
(defcustom erc-nick-completion-ignore-case t
"Non-nil means don't consider case significant in nick completion.
Case will be automatically corrected when non-nil.
For instance if you type \"dely TAB\" the word completes and changes to
\"delYsid\"."
:group 'erc-hecomplete
:type 'boolean)
(defun erc-nick-completion-exclude-myself ()
"Get a list of all the channel members except you.
This function returns a list of all the members in the channel, except
your own nick. This way if you're named foo and someone is called foobar,
typing \"f o TAB\" will directly give you foobar. Use this with
`erc-nick-completion'."
(remove
(erc-current-nick)
(erc-get-channel-nickname-list)))
(defcustom erc-nick-completion-postfix ": "
"When `erc-complete' is used in the first word after the prompt,
add this string when a unique expansion was found."
:group 'erc-hecomplete
:type 'string)
(defun erc-command-list ()
"Return a list of strings of the defined user commands."
(let ((case-fold-search nil))
(mapcar (lambda (x)
(concat "/" (downcase (substring (symbol-name x) 8))))
(apropos-internal "erc-cmd-[A-Z]+"))))
(defun erc-try-complete-nick (old)
"Complete nick at point.
This is a function to put on `hippie-expand-try-functions-list'.
Then use \\[hippie-expand] to expand nicks.
The type of completion depends on `erc-nick-completion'."
(try-complete-erc-nick old (cond ((eq erc-nick-completion 'pals) erc-pals)
((eq erc-nick-completion 'all)
(append
(erc-get-channel-nickname-list)
(erc-command-list)))
((functionp erc-nick-completion)
(funcall erc-nick-completion))
(t erc-nick-completion))))
(defvar try-complete-erc-nick-window-configuration nil
"The window configuration for `try-complete-erc-nick'.
When called the first time, a window config is stored here,
and when completion is done, the window config is restored
from here. See `try-complete-erc-nick-restore' and
`try-complete-erc-nick'.")
(defun try-complete-erc-nick-restore ()
"Restore window configuration."
(if (not try-complete-erc-nick-window-configuration)
(when (get-buffer "*Completions*")
(delete-windows-on "*Completions*"))
(set-window-configuration
try-complete-erc-nick-window-configuration)
(setq try-complete-erc-nick-window-configuration nil)))
(defun try-complete-erc-nick (old completions)
"Try to complete current word depending on `erc-try-complete-nick'.
The argument OLD has to be nil the first call of this function, and t
for subsequent calls (for further possible completions of the same
string). It returns t if a new completion is found, nil otherwise. The
second argument COMPLETIONS is a list of completions to use. Actually,
it is only used when OLD is nil. It will be copied to `he-expand-list'
on the first call. After that, it is no longer used.
Window configurations are stored in
`try-complete-erc-nick-window-configuration'."
(let (expansion
final
(alist (if (consp (car completions))
completions
(mapcar (lambda (s)
(if (and (erc-complete-at-prompt)
(and (not (= (length s) 0))
(not (eq (elt s 0) ?/))))
(list (concat s erc-nick-completion-postfix))
(list (concat s " "))))
completions))) ; make alist if required
(completion-ignore-case erc-nick-completion-ignore-case))
(he-init-string (he-dabbrev-beg) (point))
;; If there is a string to complete, complete it using alist.
;; expansion is the possible expansion, or t. If expansion is t
;; or if expansion is the "real" thing, we are finished (final is
;; t). Take care -- expansion can also be nil!
(unless (string= he-search-string "")
(setq expansion (try-completion he-search-string alist)
final (or (eq t expansion)
(and expansion
(eq t (try-completion expansion alist))))))
(cond ((not expansion)
;; There is no expansion at all.
(try-complete-erc-nick-restore)
(he-reset-string)
nil)
((eq t expansion)
;; The user already has the correct expansion.
(try-complete-erc-nick-restore)
(he-reset-string)
t)
((and old (string= expansion he-search-string))
;; This is the second time around and nothing changed,
;; ie. the user tried to expand something incomplete
;; without making a choice -- hitting TAB twice, for
;; example.
(try-complete-erc-nick-restore)
(he-reset-string)
nil)
(final
;; The user has found the correct expansion.
(try-complete-erc-nick-restore)
(he-substitute-string expansion)
t)
(t
;; We found something but we are not finished. Show a
;; completions buffer. Substitute what we found and return
;; t.
(setq try-complete-erc-nick-window-configuration
(current-window-configuration))
(with-output-to-temp-buffer "*Completions*"
(display-completion-list (all-completions he-search-string alist)))
(he-substitute-string expansion)
t))))
(defun erc-at-beginning-of-line-p (point &optional bol-func)
(save-excursion
(funcall (or bol-func
'erc-bol))
(equal point (point))))
(defun erc-complete-at-prompt ()
"Return t if point is directly after `erc-prompt' when doing completion."
(erc-at-beginning-of-line-p (he-dabbrev-beg)))
(provide 'erc-hecomplete)
;;; erc-hecomplete.el ends here
;;
;; Local Variables:
;; indent-tabs-mode: t
;; tab-width: 8
;; End: