annotate lisp/textmodes/text-mode.el @ 30408:e3e2c9051c5f

Got rid of all byte-compiler warnings on Emacs. Add to the menu when the file is loaded, not in ada-mode-hook. Add -toolbar to the default ddd command Switches moved from ada-prj-default-comp-cmd and ada-prj-default-make-cmd to ada-prj-default-comp-opt (ada-add-ada-menu): Remove the map and name parameters Add the Ada Reference Manual to the menu (ada-check-current): rewritten as a call to ada-compile-current (ada-compile): Removed. (ada-compile-application, ada-compile-current, ada-check-current): Set the compilation-search-path so that compile.el automatically finds the sources in src_dir. Automatic scrollong of the compilation buffer. C-uC-cC-c asks for confirmation before compiling (ada-compile-current): New parameter, prj-field (ada-complete-identifier): Load the .ali file before doing processing (ada-find-ali-file-in-dir): prepend build_dir to obj_dir to conform to gnatmake's behavior. (ada-find-file-in-dir): New function (ada-find-references): Set the environment variables for gnatfind (ada-find-src-file-in-dir): New function. (ada-first-non-nil): Removed (ada-gdb-application): Add support for jdb, the java debugger. (ada-get-ada-file-name): Load the original-file first if not done yet. (ada-get-all-references): Handles the new ali syntax (parent types are found between <>). (ada-initialize-runtime-library): New function (ada-mode-hook): Always load a project file when a file is opened, so that the casing exceptions are correctly read. (ada-operator-re): Add all missing operators ("abs", "rem", "**"). (ada-parse-prj-file): Use find-file-noselect instead of find-file to open the project file, since the latter does not work with speedbar Get default values before loading the prj file, or the default executable file name is wrong. Use the absolute value of src_dir to initialize ada-search-directories and compilation-search-path,... Add the standard runtime library to the search path for find-file. (ada-prj-default-debugger): Was missing an opening '{' (ada-prj-default-bind-opt, ada-prj-default-link-opt): New variables. (ada-prj-default-gnatmake-opt): New variable (ada-prj-find-prj-file): Handles non-file buffers For non-Ada buffers, the project file is the default one Save the windows configuration before displaying the menu. (ada-prj-src-dir, ada-prj-obj-dir, ada-prj-comp-opt,...): Removed (ada-read-identifier): Fix xrefs on operators (for "mod", "and", ...) regexp-quote identifiers names to support operators +, -,... in regexps. (ada-remote): New function. (ada-run-application): Erase the output buffer before starting the run Support remote execution of the application. Use call-process, or the arguments are incorrectly parsed (ada-set-default-project-file): Reread the content of the active project file, not the one from the current buffer When a project file is set as the default project, all directories are automatically associated with it. (ada-set-environment): New function (ada-treat-cmd-string): New special variable ${current} (ada-treat-cmd-string): Revised. The substitution is now done for any ${...} substring (ada-xref-current): If no body was found, compiles the spec instead. Setup ADA_{SOURCE,OBJECTS}_PATH before running the compiler to get rid of command line length limitations. (ada-xref-get-project-field): New function (ada-xref-project-files): New variable (ada-xref-runtime-library-specs-path) (ada-xref-runtime-library-ali-path): New variables (ada-xref-set-default-prj-values): Default run command now does a cd to the build directory. New field: main_unit Provide a default file name even if the current buffer has no prj file.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 24 Jul 2000 11:13:11 +0000
parents 0d9cac36402a
children 253f761ad37b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
657
fec3f9a1e3e5 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 283
diff changeset
1 ;;; text-mode.el --- text mode, and its idiosyncratic commands.
fec3f9a1e3e5 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 283
diff changeset
2
7300
cc7cd83ccf3f Update copyright.
Karl Heuer <kwzh@gnu.org>
parents: 6323
diff changeset
3 ;; Copyright (C) 1985, 1992, 1994 Free Software Foundation, Inc.
841
2cdce064065f entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 775
diff changeset
4
775
1ca26ccad38e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
5 ;; Maintainer: FSF
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
6
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
7 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
8
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9 ;; GNU Emacs is free software; you can redistribute it and/or modify
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10 ;; it under the terms of the GNU General Public License as published by
727
540b047ece4d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 657
diff changeset
11 ;; the Free Software Foundation; either version 2, or (at your option)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
12 ;; any later version.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
13
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
14 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13023
diff changeset
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13023
diff changeset
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13023
diff changeset
22 ;; Boston, MA 02111-1307, USA.
2315
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1576
diff changeset
23
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1576
diff changeset
24 ;;; Commentary:
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1576
diff changeset
25
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1576
diff changeset
26 ;; This package provides the fundamental text mode documented in the
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1576
diff changeset
27 ;; Emacs user's manual.
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1576
diff changeset
28
775
1ca26ccad38e *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 727
diff changeset
29 ;;; Code:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
30
26598
7c28a5765af4 (text-mode-hook): Customize.
Dave Love <fx@gnu.org>
parents: 26544
diff changeset
31 (defcustom text-mode-hook nil
7c28a5765af4 (text-mode-hook): Customize.
Dave Love <fx@gnu.org>
parents: 26544
diff changeset
32 "Normal hook run when entering Text mode and many related modes."
7c28a5765af4 (text-mode-hook): Customize.
Dave Love <fx@gnu.org>
parents: 26544
diff changeset
33 :type 'hook
28108
0d9cac36402a (text-mode-hook): Add flyspell-mode to
Dave Love <fx@gnu.org>
parents: 27202
diff changeset
34 :options '(turn-on-auto-fill flyspell-mode)
26598
7c28a5765af4 (text-mode-hook): Customize.
Dave Love <fx@gnu.org>
parents: 26544
diff changeset
35 :group 'data)
19589
8c19d570a391 (text-mode-hook): New defvar.
Richard M. Stallman <rms@gnu.org>
parents: 18256
diff changeset
36
19590
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
37 (defvar text-mode-variant nil
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
38 "Non-nil if this buffer's major mode is a variant of Text mode.")
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
39
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
40 (defvar text-mode-syntax-table nil
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
41 "Syntax table used while in text mode.")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
42
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
43 (defvar text-mode-abbrev-table nil
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
44 "Abbrev table used while in text mode.")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
45 (define-abbrev-table 'text-mode-abbrev-table ())
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
46
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
47 (if text-mode-syntax-table
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
48 ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
49 (setq text-mode-syntax-table (make-syntax-table))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
50 (modify-syntax-entry ?\" ". " text-mode-syntax-table)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
51 (modify-syntax-entry ?\\ ". " text-mode-syntax-table)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
52 (modify-syntax-entry ?' "w " text-mode-syntax-table))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
53
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
54 (defvar text-mode-map nil
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
55 "Keymap for Text mode.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
56 Many other modes, such as Mail mode, Outline mode and Indented Text mode,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
57 inherit all the commands defined in this map.")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
58
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
59 (if text-mode-map
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
60 ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
61 (setq text-mode-map (make-sparse-keymap))
4896
bc777b8e4b45 (text-mode-map): Bind ispell-complete-word to M-TAB.
Richard M. Stallman <rms@gnu.org>
parents: 4744
diff changeset
62 (define-key text-mode-map "\e\t" 'ispell-complete-word)
18222
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
63 (define-key text-mode-map "\t" 'indent-relative)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
64 (define-key text-mode-map "\es" 'center-line)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
65 (define-key text-mode-map "\eS" 'center-paragraph))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
66
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
67
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
68 (defun text-mode ()
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
69 "Major mode for editing text written for humans to read.
18256
27f2dfb2c1de (text-mode): Let all-white lines separate paragraphs.
Richard M. Stallman <rms@gnu.org>
parents: 18222
diff changeset
70 In this mode, paragraphs are delimited only by blank or white lines.
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
71 You can thus get the full benefit of adaptive filling
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
72 (see the variable `adaptive-fill-mode').
6323
30bb1685217f (text-mode): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 6258
diff changeset
73 \\{text-mode-map}
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
74 Turning on Text mode runs the normal hook `text-mode-hook'."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
75 (interactive)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
76 (kill-all-local-variables)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
77 (use-local-map text-mode-map)
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
78 (setq local-abbrev-table text-mode-abbrev-table)
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
79 (set-syntax-table text-mode-syntax-table)
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
80 (make-local-variable 'paragraph-start)
26544
1551195f02c3 (text-mode): Contruct paragraph-start so
Gerd Moellmann <gerd@gnu.org>
parents: 22631
diff changeset
81 (setq paragraph-start (concat page-delimiter "\\|[ \t]*$"))
27202
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
82 (if (eq ?^ (aref paragraph-start 0))
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
83 (setq paragraph-start (substring paragraph-start 1)))
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
84 (make-local-variable 'paragraph-separate)
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
85 (setq paragraph-separate paragraph-start)
22631
3f3121176533 (text-mode): Locally set indent-line-function.
Richard M. Stallman <rms@gnu.org>
parents: 19620
diff changeset
86 (make-local-variable 'indent-line-function)
3f3121176533 (text-mode): Locally set indent-line-function.
Richard M. Stallman <rms@gnu.org>
parents: 19620
diff changeset
87 (setq indent-line-function 'indent-relative-maybe)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
88 (setq mode-name "Text")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
89 (setq major-mode 'text-mode)
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
90 (run-hooks 'text-mode-hook))
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
91
18222
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
92 (defun paragraph-indent-text-mode ()
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
93 "Major mode for editing text, with leading spaces starting a paragraph.
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
94 In this mode, you do not need blank lines between paragraphs
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
95 when the first line of the following paragraph starts with whitespace.
27202
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
96 `paragraph-indent-minor-mode' provides a similar facility as a minor mode.
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
97 Special commands:
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
98 \\{text-mode-map}
18222
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
99 Turning on Paragraph-Indent Text mode runs the normal hooks
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
100 `text-mode-hook' and `paragraph-indent-text-mode-hook'."
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
101 (interactive)
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
102 (kill-all-local-variables)
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
103 (use-local-map text-mode-map)
18222
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
104 (setq mode-name "Parindent")
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
105 (setq major-mode 'paragraph-indent-text-mode)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
106 (setq local-abbrev-table text-mode-abbrev-table)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
107 (set-syntax-table text-mode-syntax-table)
18222
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
108 (run-hooks 'text-mode-hook 'paragraph-indent-text-mode-hook))
27202
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
109
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
110 (defun paragraph-indent-minor-mode ()
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
111 "Minor mode for editing text, with leading spaces starting a paragraph.
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
112 In this mode, you do not need blank lines between paragraphs when the
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
113 first line of the following paragraph starts with whitespace, as with
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
114 `paragraph-indent-mode'.
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
115 Turning on Paragraph-Indent minor mode runs the normal hook
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
116 `paragraph-indent-text-mode-hook'."
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
117 (interactive)
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
118 (set (make-local-variable 'paragraph-start)
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
119 (default-value 'paragraph-start))
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
120 (set (make-local-variable 'paragraph-separate) paragraph-start)
6047ac0aaa7c (text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents: 26598
diff changeset
121 (run-hooks 'paragraph-indent-text-mode-hook))
18132
95f6ac42b352 (spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
122
18222
b7ad635feeb8 (paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents: 18132
diff changeset
123 (defalias 'indented-text-mode 'text-mode)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
124
19620
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
125 (defun text-mode-hook-identify ()
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
126 "Mark that this mode has run `text-mode-hook'.
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
127 This is how `toggle-text-mode-auto-fill' knows which buffers to operate on."
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
128 (make-local-variable 'text-mode-variant)
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
129 (setq text-mode-variant t))
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
130
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
131 (add-hook 'text-mode-hook 'text-mode-hook-identify)
7fccc0f34e57 (text-mode-hook-identify): New function,
Richard M. Stallman <rms@gnu.org>
parents: 19590
diff changeset
132
19590
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
133 (defun toggle-text-mode-auto-fill ()
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
134 "Toggle whether to use Auto Fill in Text mode and related modes.
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
135 This command affects all buffers that use modes related to Text mode,
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
136 both existing buffers and buffers that you subsequently create."
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
137 (interactive)
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
138 (let ((enable-mode (not (memq 'turn-on-auto-fill text-mode-hook)))
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
139 (buffers (buffer-list)))
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
140 (if enable-mode
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
141 (add-hook 'text-mode-hook 'turn-on-auto-fill)
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
142 (remove-hook 'text-mode-hook 'turn-on-auto-fill))
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
143 (while buffers
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
144 (with-current-buffer (car buffers)
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
145 (if text-mode-variant
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
146 (auto-fill-mode (if enable-mode 1 0))))
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
147 (setq buffers (cdr buffers)))
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
148 (message "Auto Fill %s in Text modes"
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
149 (if enable-mode "enabled" "disabled"))))
167f4700890a (text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 19589
diff changeset
150
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
151 (defun center-paragraph ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
152 "Center each nonblank line in the paragraph at or after point.
1576
ddfd236e2c0c Dox fix.
Christopher Zaborsky <rogue@erratum.com>
parents: 841
diff changeset
153 See `center-line' for more info."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
154 (interactive)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
155 (save-excursion
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
156 (forward-paragraph)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
157 (or (bolp) (newline 1))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
158 (let ((end (point)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
159 (backward-paragraph)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
160 (center-region (point) end))))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
161
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
162 (defun center-region (from to)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
163 "Center each nonblank line starting in the region.
1576
ddfd236e2c0c Dox fix.
Christopher Zaborsky <rogue@erratum.com>
parents: 841
diff changeset
164 See `center-line' for more info."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
165 (interactive "r")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
166 (if (> from to)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
167 (let ((tem to))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
168 (setq to from from tem)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
169 (save-excursion
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
170 (save-restriction
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
171 (narrow-to-region from to)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
172 (goto-char from)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
173 (while (not (eobp))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
174 (or (save-excursion (skip-chars-forward " \t") (eolp))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
175 (center-line))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
176 (forward-line 1)))))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
177
13023
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
178 (defun center-line (&optional nlines)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
179 "Center the line point is on, within the width specified by `fill-column'.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
180 This means adjusting the indentation so that it equals
13023
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
181 the distance between the end of the text and `fill-column'.
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
182 The argument NLINES says how many lines to center."
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
183 (interactive "P")
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
184 (if nlines (setq nlines (prefix-numeric-value nlines)))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
185 (while (not (eq nlines 0))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
186 (save-excursion
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
187 (let ((lm (current-left-margin))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
188 line-length)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
189 (beginning-of-line)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
190 (delete-horizontal-space)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
191 (end-of-line)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
192 (delete-horizontal-space)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
193 (setq line-length (current-column))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
194 (if (> (- fill-column lm line-length) 0)
28108
0d9cac36402a (text-mode-hook): Add flyspell-mode to
Dave Love <fx@gnu.org>
parents: 27202
diff changeset
195 (indent-line-to
13023
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
196 (+ lm (/ (- fill-column lm line-length) 2))))))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
197 (cond ((null nlines)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
198 (setq nlines 0))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
199 ((> nlines 0)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
200 (setq nlines (1- nlines))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
201 (forward-line 1))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
202 ((< nlines 0)
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
203 (setq nlines (1+ nlines))
78f30dd2c8fd (center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents: 10899
diff changeset
204 (forward-line -1)))))
657
fec3f9a1e3e5 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 283
diff changeset
205
fec3f9a1e3e5 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 283
diff changeset
206 ;;; text-mode.el ends here