summaryrefslogtreecommitdiff
path: root/lisp/textmodes/text-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/textmodes/text-mode.el')
-rw-r--r--lisp/textmodes/text-mode.el21
1 files changed, 15 insertions, 6 deletions
diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el
index 7d3b47a9c03..e8e1f4898ce 100644
--- a/lisp/textmodes/text-mode.el
+++ b/lisp/textmodes/text-mode.el
@@ -75,17 +75,25 @@
Many other modes, such as `mail-mode' and `outline-mode', inherit
all the commands defined in this map.")
-(defcustom text-mode-meta-tab-ispell-complete-word nil
- "Whether M-TAB invokes `ispell-complete-word' in Text mode.
+(defcustom text-mode-ispell-word-completion 'completion-at-point
+ "How Text mode provides Ispell word completion.
+
+By default, this option is set to `completion-at-point', which
+means that Text mode adds an Ispell word completion function to
+`completion-at-point-functions'. Any other non-nil value says to
+bind M-TAB directly to `ispell-complete-word' instead. If this
+is nil, Text mode neither binds M-TAB to `ispell-complete-word'
+nor does it extend `completion-at-point-functions'.
This user option only takes effect when you customize it in
Custom or with `setopt', not with `setq'."
:group 'text
- :type 'boolean
+ :type '(choice (const completion-at-point) boolean)
:version "30.1"
:set (lambda (sym val)
- (if (set sym val)
- (keymap-set text-mode-map "C-M-i" #'ispell-complete-word)
+ (if (and (set sym val)
+ (not (eq val 'completion-at-point)))
+ (keymap-set text-mode-map "C-M-i" #'ispell-complete-word)
(keymap-unset text-mode-map "C-M-i" t))))
(easy-menu-define text-mode-menu text-mode-map
@@ -144,7 +152,8 @@ Turning on Text mode runs the normal hook `text-mode-hook'."
;; Enable text conversion in this buffer.
(setq-local text-conversion-style t)
(add-hook 'context-menu-functions 'text-mode-context-menu 10 t)
- (add-hook 'completion-at-point-functions #'ispell-completion-at-point 10 t))
+ (when (eq text-mode-ispell-word-completion 'completion-at-point)
+ (add-hook 'completion-at-point-functions #'ispell-completion-at-point 10 t)))
(define-derived-mode paragraph-indent-text-mode text-mode "Parindent"
"Major mode for editing text, with leading spaces starting a paragraph.