Commit graph

488 commits

Author SHA1 Message Date
Stefan Monnier
17a873c585 * lisp/emacs-lisp/lisp-mode.el (lisp--match-hidden-arg): Only highlight past
the last consecutive closing paren.

Fixes: debbugs:17345
2014-05-01 12:14:03 -04:00
Juanma Barranquero
dff4a9f6a4 Merge from emacs-24; up to 2014-04-25T10:35:01Z!michael.albinus@gmx.de 2014-04-25 18:11:07 +02:00
Leo Liu
00104e5923 * emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table):
Fix syntax for @.

Fixes: debbugs:17325
2014-04-24 08:55:18 +08:00
Stefan Monnier
4f96579371 * lisp/emacs-lisp/lisp-mode.el (lisp--match-hidden-arg): New function.
(lisp-el-font-lock-keywords-2, lisp-cl-font-lock-keywords-2): Use it.
(lisp-mode-variables): Set font-lock-extra-managed-props.
2014-04-22 13:45:43 -04:00
Leo Liu
722237d55e * emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add
define-compilation-mode.
2014-04-05 10:33:36 +08:00
Dmitry Gutov
4f8aeb84b6 Fix debbugs#16971
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Set
`comment-use-syntax' to t to avoid the unnecessary runtime check.
Set `comment-start-skip' to a simpler value that doesn't try to
check if the semicolon is escaped (this is handled by
`syntax-ppss' now). 

* lisp/progmodes/scheme.el (scheme-mode-variables): Same.
2014-03-17 08:22:58 +02:00
Glenn Morris
34dc21db6e Replace "Maintainer: FSF" with the emacs-devel mailing address 2014-02-09 17:34:22 -08:00
Glenn Morris
ad78f43200 Replace refs to obsolete alias turn-on-eldoc-mode' with eldoc-mode'
* lisp/hexl.el (hexl-mode-hook):
* lisp/ielm.el (ielm-mode-hook):
* lisp/emacs-lisp/lisp-mode.el (emacs-lisp-mode-hook)
(lisp-interaction-mode-hook):
* lisp/progmodes/cfengine.e (cfengine3-documentation-function):
Replace obsolete alias `turn-on-eldoc-mode' with `eldoc-mode'.

* lisp/emacs-lisp/eldoc.el: Same in commentary.
2014-01-29 23:42:57 -08:00
Glenn Morris
1670e27f38 Doc fixes related to zero prefix argument of eval-expression etc
* emacs-lisp/lisp-mode.el (eval-print-last-sexp, eval-last-sexp):
* simple.el (eval-expression): Doc fixes.
2014-01-22 23:53:56 -08:00
Stefan Monnier
e18b70fc27 * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Don't bother with
syntax-begin-function.

Fixes: debbugs:16247
2014-01-03 17:38:55 -05:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Glenn Morris
f1a85e52c8 Revert unnecessary earlier change 2013-12-27 16:03:17 -08:00
Glenn Morris
b1797e3eeb * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Unbreak bootstrap. 2013-12-27 12:24:25 -08:00
João Távora
3b8d5131a3 Make Electric Pair mode smarter/more useful:
* lisp/electric.el: Pairing/skipping helps preserve
  balance. Autobackspacing behaviour. Opens extra newlines between
  pairs. Skip whitespace before closing delimiters.

* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Use new
  features.

* test/automated/electric-tests.lisp: New file.

* doc/emacs/programs.texi: Describe new features.

* lisp/simple.el: Pass non-nil interactive arg to newline call inside
  newline-and-indent.
2013-12-26 22:02:49 +00:00
Juri Linkov
b41594fd4d * lisp/simple.el (eval-expression-print-format): Don't check for
command names and the last command.  Always display additional
formats of the integer result in the echo area, and insert them
to the current buffer only with a zero prefix arg.
Display character when char-displayable-p is non-nil.
(eval-expression): With a zero prefix arg, set `print-length' and
`print-level' to nil, and insert the integer values from
`eval-expression-print-format' at the end.  Doc fix. 

* lisp/emacs-lisp/lisp-mode.el (eval-print-last-sexp): Add arg
`eval-last-sexp-arg-internal'.  Doc fix.
(eval-last-sexp-1): Pass arg `eval-last-sexp-arg-internal' to
`eval-last-sexp-print-value'.  Doc fix.
(eval-last-sexp-print-value): Add arg `eval-last-sexp-arg-internal'.
Set `print-length' and `print-level' to nil when arg is zero.
(eval-last-sexp): Doc fix.
(eval-defun-2): Print the integer values from
`eval-expression-print-format' at the end.

* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Print the integer
values from `eval-expression-print-format' at the end.

* lisp/ielm.el (ielm-eval-input): Print the integer
values from `eval-expression-print-format' at the end.

Fixes: debbugs:12985
2013-12-19 23:02:46 +02:00
Bozhidar Batsov
ae1f1ce1e2 * lisp/progmodes/python.el (python-mode): Remove incorrect text from docstring.
* lisp/progmodes/scheme.el (scheme-mode): Remove incorrect text from docstring.
* lisp/progmodes/prolog.el (prolog-mode): Remove incorrect text from docstring.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode, lisp-interaction-mode, emacs-lisp-mode):
Remove incorrect text from docstring.
2013-11-05 11:47:47 +02:00
Helmut Eller
60db713e4d * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2): Fix cut&paste.
Fixes: debbugs:15699
2013-10-24 13:49:12 -04:00
Stefan Monnier
0628651373 * lisp/emacs-lisp/lisp-mode.el: Font-lock cl-lib constructs.
(lisp-el-font-lock-keywords, lisp-el-font-lock-keywords-1)
(lisp-el-font-lock-keywords-2, lisp-cl-font-lock-keywords)
(lisp-cl-font-lock-keywords-1, lisp-cl-font-lock-keywords-2): New constants.
(lisp-mode-variables): New `elisp' argument.
(emacs-lisp-mode): Use it.
* lisp/font-lock.el (lisp-font-lock-keywords, lisp-font-lock-keywords-1)
(lisp-font-lock-keywords-2): Move to lisp-mode.el.
2013-10-08 10:57:18 -04:00
Stefan Monnier
a58332802b * lisp/emacs-lisp/lisp-mode.el (eval-defun-2): Simplify, using lexical-binding. 2013-10-07 01:11:50 -04:00
Juanma Barranquero
9d3aa82cf9 lisp/*.el: Silence lexical-binding warnings. 2013-08-09 01:59:14 +02:00
Juanma Barranquero
185e3b5a2f lisp/emacs-lisp/lisp-mode.el: Support cl-def* expressions in imenu. 2013-08-02 18:29:16 +02:00
Juanma Barranquero
14dd22d2ce Convert symbol prettification into minor mode and global minor mode.
* etc/NEWS: Document new Prettify Symbols mode.

* lisp/progmodes/prog-mode.el (prettify-symbols-alist): Rename from
  `prog-prettify-symbols', and make a local defvar instead of defcustom.
  (prettify-symbols--keywords): Rename from `prog-prettify-symbols-alist'
  and make a local defvar.
  (prettify-symbols--compose-symbol): Rename from
  `prog--prettify-font-lock-compose-symbol'.
  (prettify-symbols--make-keywords): Rename from
  `prog-prettify-font-lock-symbols-keywords' and simplify.
  (prog-prettify-install): Remove.
  (prettify-symbols-mode): New minor mode, based on `prog-prettify-install'.
  (turn-on-prettify-symbols-mode): New function.
  (global-prettify-symbols-mode): New globalized minor mode.

* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables):
* lisp/progmodes/cfengine.el (cfengine3-mode):
* lisp/progmodes/perl-mode.el (perl-mode): Don't call `prog-prettify-install';
  set `prettify-symbols-alist' instead.
2013-06-19 00:13:25 +02:00
Eli Zaretskii
d1ad37b23f Add coding cookie to lisp/emacs-lisp/lisp-mode.el. 2013-06-15 12:16:49 +03:00
Glenn Morris
7de135d06f lisp-mode font-lock fox for bug#14574
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables):
Prettify after setting font-lock-defaults.
2013-06-11 14:00:27 -04:00
Ted Zlatanov
8fc57765e8 Introduce and use prog-prettify-install. 2013-06-05 13:48:50 -04:00
Ted Zlatanov
3ca0d0b437 Symbol prettify in prog-mode; added to perl-mode, cfengine3-mode, and emacs-lisp-mode. 2013-06-05 10:26:50 -04:00
Stefan Monnier
1f8fdd5391 * lisp/emacs-lisp/lisp-mode.el (eval-sexp-add-defvars): Expand macros
eagerly.

Fixes: debbugs:14422
2013-06-03 11:28:10 -04:00
Stefan Monnier
33e249a259 * lisp/emacs-lisp/lisp-mode.el (lisp-mode-shared-map): Inherit from
prog-mode-map.
2013-05-29 10:14:16 -04:00
Juri Linkov
32985194f2 * lisp/emacs-lisp/lisp-mode.el (eval-defun-2): Doc fix.
(eval-defun-2, eval-defun, eval-last-sexp, eval-last-sexp-1): Doc fix.
(emacs-lisp-mode-map): Replace "minibuffer" with "echo area"
in the help string.  (Bug#12985)

Fixes: debbugs:14344
2013-05-06 23:23:40 +03:00
Dmitry Gutov
bde73d2720 * lisp/emacs-lisp/lisp-mode.el (emacs-lisp-docstring-fill-column): Make
it safe-local.
2013-03-24 02:04:40 +04:00
Stefan Monnier
913274cbdc Don't use font-lock-syntax-table in lisp modes.
* lisp/font-lock.el (lisp-font-lock-keywords-1, lisp-font-lock-keywords-2):
Don't assume all identifier chars have syntax word.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables):
Remove bar-not-symbol.  Adjust callers.
(lisp-mode-variables): Don't set a font-lock-syntax-table.
2013-02-17 11:58:12 -05:00
Andreas Schwab
cc17363fc3 Fixes: debbugs:13556
* emacs-lisp/lisp-mode.el (lisp-mode-variables): Add optional
parameter BAR-NOT-SYMBOL to control syntax of | for font-lock.
(lisp-mode): Pass t for it.
2013-01-26 16:13:09 +01:00
Glenn Morris
a576cc76c8 * lisp-mode.el (emacs-lisp-mode-map): Add native profiler menu entries. 2013-01-19 18:40:49 -08:00
Glenn Morris
795e7a5b32 Merge from emacs-24; up to 2012-12-11T09:51:12Z!dmantipov@yandex.ru 2013-01-19 12:38:13 -08:00
Glenn Morris
f8a42ad607 Doc fixes related to "(declare (indent symbol))" (bug#13450)
* doc/lispref/macros.texi (Indenting Macros):
Fix order of an indent symbol's arguments.

* lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Doc fix.
2013-01-15 21:03:06 -05:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Glenn Morris
c6c08d3f8f Make eval-defun on a pre-defined defcustom call any :set function
* lisp/emacs-lisp/lisp-mode.el (eval-defun-1): Doc fix.
Respect a defcustom's :set function, if appropriate. 
(eval-defun): Doc fix.

* doc/lispref/customize.texi (Variable Definitions): Mention eval-defun
on a defcustom calls the :set function when appropriate.

* etc/NEWS: Mention this.

Fixes: debbugs:109
2012-12-08 17:04:43 -08:00
Chong Yidong
9dffb5b693 Fix last change.
* emacs-lisp/lisp-mode.el (lisp-current-defun-name):
* progmodes/m4-mode.el (m4-current-defun-name):
* progmodes/perl-mode.el (perl-current-defun-name):
* textmodes/tex-mode.el (tex-current-defun-name):
* textmodes/texinfo.el (texinfo-current-defun-name): Use save-excursion.
2012-12-01 13:09:12 +08:00
Chong Yidong
ba03d0d932 Modularize add-log-current-defun.
Suggested by Jari Aalto.

* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): New.
(lisp-mode-variables): Use it.

* lisp/progmodes/cc-mode.el (c-common-init):
* lisp/progmodes/cperl-mode.el (cperl-mode): Set a value for
add-log-current-defun-function.

* lisp/progmodes/m4-mode.el (m4-current-defun-name): New function.
(m4-mode): Use it.

* lisp/progmodes/perl-mode.el (perl-current-defun-name): New.
(perl-mode): Use it.

* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): Use
lisp-current-defun-name.

* lisp/textmodes/tex-mode.el (tex-current-defun-name): New.
(tex-common-initialization): Use it.

* lisp/textmodes/texinfo.el (texinfo-current-defun-name): New.
(texinfo-mode): Use it.

* lisp/vc/add-log.el (add-log-current-defun-function): Doc fix.
(add-log-current-defun): Move mode-specific code to other files.
(add-log-lisp-like-modes, add-log-c-like-modes)
(add-log-tex-like-modes): Variables deleted.

Fixes: debbugs:2224
2012-12-01 12:57:07 +08:00
Chong Yidong
92eadba57f Convert several major modes to setq-local.
* emacs-lisp/lisp-mode.el (lisp-mode-variables, lisp-mode):
* progmodes/autoconf.el (autoconf-mode):
* progmodes/js.el (js-mode):
* progmodes/make-mode.el (makefile-mode, makefile-makepp-mode)
(makefile-bsdmake-mode, makefile-imake-mode, makefile-browse):
* progmodes/perl-mode.el (perl-mode):
* progmodes/sh-script.el (sh-mode, sh-set-shell):
* textmodes/css-mode.el (css-mode):
* textmodes/sgml-mode.el (html-mode, sgml-mode)
(sgml-tags-invisible, sgml-guess-indent):
* textmodes/tex-mode.el (tex-common-initialization)
(latex-complete-bibtex-keys, tex-shell, tex-main-file)
(doctex-mode, plain-tex-mode, latex-mode):
* textmodes/texinfo.el (texinfo-mode): Use setq-local.
2012-12-01 12:09:55 +08:00
Chong Yidong
1c4f115d4c Revamp face-spec-set to be more analogous to setq for faces.
* lisp/faces.el (face-spec-set): Change the third arg to specify
whether this function is being called via defface, customize, or a
third party.  Set the appropriate symbol properties.  Clear the
override spec if setting via Custom.  Initialize face if necessary.
(face-spec-recalc): Allow theme faces to completely replace the
defface spec, in the same way as custom faces (Bug#8454).

* lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save)
(custom-face-reset-saved, custom-face-mark-to-reset-standard):
Simplify by using the new arg to face-spec-set.

* lisp/cus-face.el (custom-declare-face): Move face initialization to
face-spec-set.
(custom-theme-set-faces): Don't initialize the face name here, as
that is now done in face-spec-set.

* lisp/emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface,
reset face-override-spec too, and use custom-declare-face.

Fixes: debbugs:4988
2012-11-25 12:50:20 +08:00
Stefan Monnier
9b851e2550 New emacs-lisp-byte-code-mode; misc minor changes.
* lisp/emacs-lisp/lisp-mode.el (emacs-list-byte-code-comment-re): New var.
(emacs-lisp-byte-code-comment)
(emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode):
New functions.
(eval-sexp-add-defvars): Don't skip defvars in column >0.
(eval-defun-2): Remove bogus interactive spec.
(lisp-indent-line): Remove redundant whole-exp code, now done in
indent-according-to-mode.
(save-match-data): Remove redundant indent data.
* lisp/emacs-lisp/benchmark.el (benchmark-run, benchmark-run-compiled):
Use `declare'.
* lisp/gnus/qp.el (quoted-printable-decode-region):
Inline+CSE+strength-reduction.
2012-09-09 21:16:13 -04:00
Stefan Monnier
4250fdf5b3 * lisp/emacs-lisp/cl.el (cl-map-keymap-recursively, cl-map-intervals)
(cl-map-extents): Add compatibility aliases.

Fixes: debbugs:12135
2012-08-08 14:56:01 -04:00
Andreas Schwab
6125983ea6 * emacs-lisp/lisp-mode.el (eval-defun-1): Handle standard value of
a defcustom that is quoted with backquote.
2012-08-07 23:52:54 +02:00
Chong Yidong
b7ccbdc2e3 In Imenu, don't show defvars with no second argument.
* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Don't
show defvars which have no second argument.

* lisp/imenu.el (imenu-generic-expression): Move documentation here
from imenu--generic-function.
(imenu--generic-function): Refer to imenu-generic-expression.

Fixes: debbugs:8638
2012-08-05 22:14:54 +08:00
Stefan Monnier
7abaf5ccc9 Autoload more carefully from Lisp. Follow aliases for function properties.
* lisp/subr.el (autoloadp): New function.
(symbol-file): Use it.
(function-get): New function.
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Use function-get and
autoload-do-load.
* lisp/emacs-lisp/lisp-mode.el (lisp-font-lock-syntactic-face-function)
(lisp-indent-function):
* lisp/emacs-lisp/gv.el (gv-get):
* lisp/emacs-lisp/edebug.el (get-edebug-spec, edebug-basic-spec):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form):
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
* lisp/emacs-lisp/autoload.el (make-autoload, autoload-print-form):
Use function-get.
* lisp/emacs-lisp/cl.el: Don't propagate function properties any more.

* src/eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
add argument, tune behavior, and adjust all callers.

* lisp/speedbar.el (speedbar-add-localized-speedbar-support):
* lisp/emacs-lisp/disass.el (disassemble-internal):
* lisp/desktop.el (desktop-load-file):
* lisp/help-fns.el (help-function-arglist, find-lisp-object-file-name)
(describe-function-1):
* lisp/emacs-lisp/find-func.el (find-function-noselect):
* lisp/emacs-lisp/elp.el (elp-instrument-function):
* lisp/emacs-lisp/advice.el (ad-has-proper-definition):
* lisp/apropos.el (apropos-safe-documentation, apropos-macrop):
* lisp/emacs-lisp/debug.el (debug-on-entry):
* lisp/emacs-lisp/cl-macs.el (cl-compiler-macroexpand):
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand):
* lisp/calc/calc.el (name): Use autoloadp & autoload-do-load.
2012-07-25 21:27:33 -04:00
Stefan Monnier
1ec4b7b259 Get rid of all the manual purecopy calls in menu-bar definitions.
* lisp/loadup.el (purify-flag): Pre-grow the hash-table to reduce the
memory use.
* lisp/bindings.el (bindings--define-key): New function.
* lisp/vc/vc-hooks.el, lisp/replace.el, lisp/menu-bar.el:
* lisp/international/mule-cmds.el, lisp/emacs-lisp/lisp-mode.el:
* lisp/buff-menu.el, lisp/bookmark.el:
* bindings.el: Use it to purecopy define-key bindings.
* src/fns.c (maybe_resize_hash_table): Output message when growing the
purify-hashtable.
2012-06-27 17:15:13 -04:00
Stefan Monnier
61b108cc62 * lisp/emacs-lisp/byte-run.el (defmacro, defun): Move from C.
(macro-declaration-function): Move var from C code.
(macro-declaration-function): Define function with defalias.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1):
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't handle
defun/defmacro any more.
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature):
Provide fallback for unknown arglist.
(byte-compile-arglist-warn): Change calling convention.
(byte-compile-output-file-form): Move print-vars binding.
(byte-compile-output-docform): Simplify accordingly.
(byte-compile-file-form-defun, byte-compile-file-form-defmacro)
(byte-compile-defmacro-declaration): Remove.
(byte-compile-file-form-defmumble): Generalize to defalias.
(byte-compile-output-as-comment): Return byte-positions.
Simplify callers accordingly.
(byte-compile-lambda): Use `assert'.
(byte-compile-defun, byte-compile-defmacro): Remove.
(byte-compile-file-form-defalias):
Use byte-compile-file-form-defmumble.
(byte-compile-defalias-warn): Remove.
* src/eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
Move to byte-run.el.
(Fautoload): Do the hash-doc more carefully.
* src/data.c (Fdefalias): Purify definition, except for keymaps.
(Qdefun): Move from eval.c.
* src/lisp.h (Qdefun): Remove.
* src/lread.c (read1): Tiny simplification.
* lib-src/make-docfile.c: Improve comment style.
(search_lisp_doc_at_eol): New function.
(scan_lisp_file): Use it.
2012-05-29 23:59:42 -04:00
Juri Linkov
e4d4f53985 * lisp/emacs-lisp/lisp-mode.el (eval-defun-2): Use `eval-sexp-add-defvars'
after the `eval-defun-1' specialcaseing
like in `edebug-eval-defun'.

* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Set `face-documentation'
like in `eval-defun-1'.

Fixes: debbugs:10181
2012-05-27 12:45:54 +03:00