1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-02 10:11:05 -08:00
Commit graph

6984 commits

Author SHA1 Message Date
Alan Mackenzie
7eef16a923 C++ Mode. Fix anomaly occurring when a ">" is deleted then reinserted.
This fontification anomaly happened because after deleting the ">",
c-forward-<>-arglist parses the preceding identifier as a putative type but
stores it in c-found-types before it becomes clear it is not an unambiguous
type.  c-forward-<>-arglist fails, leaving the spurious type id in
c-found-types.  Fix this by "binding" c-found-types "to itself" in
c-forward-<>-arglist, and restoring the original value when that function call
fails.

* lisp/progmodes/cc-engine.el (c-copy-found-types): New function.
(c-forward-<>-arglist): Record the original value of c-found-types at the
beginning of the function, and restore it at the end on failure.

* lisp/progmodes/cc-mode.el (c-unfind-coalesced-tokens): Rewrite more
accurately.
2017-07-13 19:56:00 +00:00
Alan Mackenzie
dde7f2d48b Fix some bugs in c-defun-name. This fixes bug #25623.
* lisp/progmodes/cc-cmds.el (c-defun-name): Fix some bugs to do with structs,
etc.
2017-07-12 20:15:56 +00:00
Vasilij Schneidermann
7dd72d76ef Make prog-mode-map the parent of c-mode-base-map. Fixes bug #26658.
* lisp/progmodes/cc-mode.el (top level): Make prog-mode-map the parent of
c-mode-base-map if possible.
2017-07-12 17:42:12 +00:00
Alan Mackenzie
125a8a62db CC Mode: create and use c-set-keymap-parent.
* lisp/progmodes/cc-defs.el (c-set-keymap-parent): New macro.

* lisp/progmodes/cc-mode.el (top-level): Remove cc-bytecomp-defun for
set-keymap-parents.
(c-make-inherited-keymap): Use c-set-keymap-parent in place of inline code.
2017-07-12 17:03:35 +00:00
Mark Oteiza
51275358e9 Convert more uses of looking-at to following-char
More followup to Karl Fogel's commit a84da83c1.
* lisp/dired-aux.el (dired-add-entry, dired-subdir-hidden-p):
* lisp/dired-x.el (dired-mark-unmarked-files, dired-mark-sexp):
* lisp/help-fns.el (doc-file-to-man, doc-file-to-info):
* lisp/proced.el (proced-toggle-marks):
* lisp/progmodes/f90.el (f90-indent-line):
* lisp/ses.el (ses-load):
* lisp/tar-mode.el (tar-expunge): Replace instances of looking-at with
char comparisons using following-char.
2017-07-06 23:59:58 -04:00
Paul Eggert
20e9a00fb5 Spelling fixes
* lisp/org/org-table.el (org-table-sort-lines):
Fix misspelling in prompt.
* lisp/org/ox-ascii.el (org-ascii--describe-datum):
Fix misspelling in call to org-element-lineage.
2017-07-06 00:24:56 -07:00
Glenn Morris
94b2e1fc00 * lisp/progmodes/python.el (auto-mode-alist): Add .pyi. (Bug#27847) 2017-07-05 15:21:28 -04:00
Glenn Morris
8ad9567a49 Small fix for bug-reference.el
* lisp/progmodes/bug-reference.el (bug-reference-bug-regexp):
Autoload safety property.  (Bug#27481)
2017-07-05 13:32:26 -04:00
Stefan Monnier
326d0ee424 * lisp/progmodes/cc-awk.el: Mark unused args 2017-07-04 22:30:33 -04:00
Stefan Monnier
709b985e61 * lisp/progmodes/cc-bytecomp.el: Mark unused args 2017-07-04 22:29:49 -04:00
Stefan Monnier
dbc9b15392 * lisp/progmodes/cc-defs.el (lookup-syntax-properties): Move ...
... before first use
2017-07-04 22:27:51 -04:00
Stefan Monnier
71e14f3b61 * lisp/progmodes/cc-vars.el: Mark unused args 2017-07-04 22:26:20 -04:00
Stefan Monnier
d36fcad30b * lisp/progmodes/cc-langs.el: Mark unused args
(c-primary-expr-regexp): Remove unused vars ambiguous-prefix-ops and
unambiguous-prefix-ops.
2017-07-04 22:23:57 -04:00
Stefan Monnier
079d9a38e4 * lisp/progmodes/cc-engine.el: Mark unused args
(c-beginning-of-statement-1, c-guess-basic-syntax):
Remove unused var c-in-literal-cache.
(c-debug-sws-msg): Silence byte-compiler, even if we don't use the arg.
(c-append-to-state-cache): Remove unused var `bra+1s'.
(c-remove-stale-state-cache): Remove unused var `pps-point-state'.
(c-invalidate-state-cache-1): Remove unused var `pa'.
(c-forward-decl-or-cast-1): Change comments so they don't look like
outline headers.
(c-restricted-<>-arglists, c-parse-and-markup-<>-arglists):
Declare before first use.
(c-forward-decl-or-cast-1): Remove unused var `backup-kwd-sym'.
(c-backward-over-enum-header): Remove unused var `up-sexp-pos'.
2017-07-04 22:20:22 -04:00
Stefan Monnier
2fb15dcbbb * lisp/progmodes/cc-cmds.el: Remove unused vars
(c-syntactic-context): Declare as dynbound.
(c-beginning-of-defun, c-end-of-defun): Remove unused var `start'.
2017-07-04 22:00:35 -04:00
Stefan Monnier
b78cf15118 * lisp/progmodes/cc-guess.el: Remove unused var
(c-guess-view-reorder-offsets-alist-in-style): Remove redundantly bound
and computed variable `guessed-syntactic-symbols'.
2017-07-04 21:55:44 -04:00
Stefan Monnier
bc0b138451 * lisp/progmodes/cc-align.el: Mark unused arguments 2017-07-04 21:46:05 -04:00
Stefan Monnier
92e64db7e9 * lisp/progmodes/cc-mode.el: Mark unused arguments
(c-parse-quotes-before-change, c-parse-quotes-after-change):
Remove unused vars.
2017-07-04 21:33:00 -04:00
Ingo Lohmar
9ac7dccc51 Offer non-aligned indentation in lists in js-mode (Bug#27503)
* lisp/progmodes/js.el (js--proper-indentation):
New customization option 'js-indent-align-list-continuation'.
Affects argument lists as well as arrays and object properties.
* test/manual/indent/js-indent-align-list-continuation-nil.js:
Test the change.
2017-07-03 20:06:27 +02:00
Alan Mackenzie
80e200c0a0 Fix bug in yesterday's CC Mode commit.
* lisp/progmodes/cc-mode.el (c-quoted-number-head-before-point): Check a
search has succeded before using the match data.
(c-quoted-number-head-before-point, c-quoted-number-head-after-point):
Specify that the position of the extremity of the head or tail is in the
match data.
2017-07-02 12:58:27 +00:00
Alan Mackenzie
59d07875df Make C++ digit separators work. Amend the handling of single quotes generally
Single quotes, even in strings and comments, are now marked with the
"punctuation" syntax-table property, except where they are validly bounding a
character literal.  They are font locked with font-lock-warning-face except
where they are valid.  This is done in C, C++, ObjC, and Java Modes.

* lisp/progmodes/cc-defs.el (c-clear-char-property-with-value-on-char-function)
(c-clear-char-property-with-value-on-char, c-put-char-properties-on-char): New
functions/macros.

* lisp/progmodes/cc-fonts.el (c-font-lock-invalid-single-quotes): New function.
(c-basic-matchers-before): invoke c-font-lock-invalid-single-quotes.

* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Remove
c-before-after-change-digit-quote from wherever it occurs.  Insert
c-parse-quotes-before-change into the entries for the languages where it is
needed.
(c-before-font-lock-functions): Remove c-before-after-change-digit-quote from
wherever it occurs.  Insert c-parse-quotes-after-change into the entries for
the languages which need it.
(c-has-quoted-numbers): New lang-defconst/-defvar.

* lisp/progmodes/cc-mode.el (c-before-after-change-digit-quote): Remove.
(c-maybe-quoted-number-head, c-maybe-quoted-number-tail)
(c-maybe-quoted-number): New defconsts.
(c-quoted-number-head-before-point, c-quoted-number-tail-after-point)
(c-quoted-number-straddling-point, c-parse-quotes-before-change)
(c-parse-quotes-after-change): New functions.
2017-07-01 15:43:07 +00:00
Noam Postavsky
e06b547e93 Make tcl-auto-fill-mode obsolete (Bug#10772)
* lisp/progmodes/tcl.el (tcl-auto-fill-mode): Declare obsolete.
* etc/NEWS: Announce it.
2017-06-27 20:34:14 -04:00
Stefan Monnier
ebb4e61c59 * lisp/progmodes/cc-fonts.el: Remove/mark unused vars
(c-font-lock-declarators): Remove unused vars `id-end', `paren-depth',
and `brackets-after-id'.
(c-font-lock-objc-methods): Mark unused args.
2017-06-25 18:47:57 -04:00
Alan Mackenzie
b0042b7678 Make CC Mode load cl-lib rather than cl in Emacs 26.
* lisp/progmodes/cc-cmds.el (c-declaration-limits): Remove unused local
variable.

* lisp/progmodes/cc-defs.el (c--mapcan-status): Remove.
(c--cl-library): New variable.
(Top level): Amend the form which requires library cl or cl-lib.
(c--mapcan, c--set-difference, c--intersection, c--macroexpand-all)
(c--delete-duplicate): Amend to use c--cl-library instead of
c--mapcan-status.

* lisp/progmodes/cc-engine.el (c-syntactic-skip-backward)
(c-back-over-compound-identifier): Remove unused local variables.

* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Remove an unused
local variable.

* lisp/progmodes/cc-langs.el (Top level): Amend to use c--cl-library instead
of c--mapcan-status.

* lisp/progmodes/cc-styles.el (Top level): Add a cc-bytecomp-defun to try to
silence a compiler warning.
2017-06-25 13:55:50 +00:00
Alex Gramiak
671921137a Mark prolog indent variables as safe (bug#27369)
* lisp/progmodes/prolog.el (prolog-indent-width)
(prolog-left-indent-regexp, prolog-paren-indent-p)
(prolog-paren-indent): Add :safe property.
2017-06-20 21:05:38 -04:00
Alan Mackenzie
8c21f8fab9 Ensure C++ initializer lists don't get fontified.
* lisp/progmodes/cc-cmds.el (c-block-comment-flag): Move declaration to solve
compiler warning.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Add an extra
clause to handle C++ member initialization lists.
(c-font-lock-single-decl): New function, extracted from
c-font-lock-declarations.
(c-font-lock-declarations): Call c-font-lock-single-decl in place of inline
code.
(c-font-lock-cut-off-declarators): Make more rigorous by calling
c-get-fontification-context, c-forward-decl-or-cast-1, and
c-font-lock-single-decl in place of rather approximate code.
2017-06-16 11:26:59 +00:00
Alan Mackenzie
cc6a66b9a1 Fix hang in CC Mode when ":" is typed after identifier at EOB.
* list/progmodes/cc-engine.el (c-forward-declarator): Fix coding error
confusing ":" and EOB.
2017-06-16 10:42:20 +00:00
Alan Mackenzie
7a2038d7c8 Create a toggle between block and line comments in CC Mode.
Also (unrelated change) initialize the modes' keymaps at each loading.

* lisp/progmodes/cc-cmds.el (c-update-modeline): amend for the new information
on the modeline.
(c-block-comment-flag): New variable.
(c-toggle-comment-style): New function.

* lisp/progmodes/cc-langs.el (c-block-comment-starter)
(c-line-comment-starter): Make them c-lang-defvars.
(c-block-comment-is-default): New c-lang-defvar.
(comment-start, comment-end): Make the default values dependent on
c-block-comment-is-default.

* lisp/progmodes/cc-mode.el (c-mode-base-map): Define C-c C-k in this map.
(c-basic-common-init): Initialize c-block-comment-flag.
(c-mode-map, c++-mode-map, objc-mode-map, java-mode-map, idl-mode-map)
(pike-mode-map, awk-mode-map): Make entries in these key maps each time the
mode is loaded rather than just once per Emacs session.

* doc/misc/cc-mode.texi (Comment Commands): Introduce the notion of comment
style.
(Minor Modes): Define comment style.  Describe how comment style influences
the information displayed on the modeline.  Document c-toggle-comment-style.
(FAQ): Add a question about toggling the comment style.
2017-06-15 21:03:03 +00:00
Eli Zaretskii
30c0f81f9f Fix handling of Python/Guile commands with arguments in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-python-guile-commands-regexp): New
variable.
(gdb-control-commands-regexp): Use it.
(gdb-send): Don't increment gdb-control-level if the command
matches gdb-python-guile-commands-regexp and has non-empty
arguments.  Reported by David Boles <boles@ieee.org> in
http://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00009.html.
2017-06-10 11:29:58 +03:00
Glenn Morris
0cd94b8a03 ; Update some more Maintainer: header comments
; This removes some people who are absent from commit logs or mailing
; lists for upwards of a decade.
2017-06-05 21:08:07 -04:00
Glenn Morris
ac5422fd23 ; Small fixes for some Author: header comments 2017-06-05 20:35:17 -04:00
Paul Eggert
7dd9e7e95c Fix eldoc bug with curved quote
* lisp/progmodes/elisp-mode.el (elisp-get-fnsym-args-string):
Substitute quotes in documentation before returning it (Bug#27159).
2017-06-04 09:13:37 -07:00
Glenn Morris
182912c7a9 Add watch for password back to inferior python comint filter
It was removed along with other items for speed (bug#16875),
but doesn't seem to have been causing an issue, and it's useful to
have it there (bug#27154).
* lisp/progmodes/python.el (inferior-python-mode):
Add comint-watch-for-password-prompt to comint-output-filter-functions.
2017-06-02 20:06:12 -04:00
Alan Mackenzie
a12c7ea88e c-defun-name: Return fully qualified method names when wanted in C++, etc.
* lisp/progmodes/cc-cmds.el (c-defun-name): Use
c-back-over-compound-identifier in place of c-backward-token-2 near the end
of the function.
2017-05-30 17:07:12 +00:00
Dmitry Gutov
4886b2ed52 Use regexp matching instead of checking exit status
* lisp/progmodes/xref.el (xref-collect-matches):
See if the output buffer contents look like Grep output
instead of checking exit status (bug#23451).
2017-05-30 00:59:03 +03:00
Jules Tamagnan
c9097e9b5f Comply with pep 8 style guide for backslash in assignment (Bug#24809)
* lisp/progmodes/python.el (python-indent--calculate-indentation):
Increase indent by `python-indent-offset' after
`:after-backslash-assignment-continuation'.

Copyright-paperwork-exempt: yes
2017-05-28 23:33:25 -04:00
Dmitry Gutov
3bc3dc4063 Signal error if find-grep returns a nonzero status
* lisp/progmodes/xref.el (xref-collect-matches): Signal error
if find-grep returns a nonzero status (bug#23451).  Remove the
comment: even if some output is present, a non-zero status
means something went wrong and it can't be relied upon.
2017-05-29 02:55:58 +03:00
Eli Zaretskii
4b17214aab Fix GUD "Stop" display when running pdb
* lisp/progmodes/gud.el (gud-menu-map): Don't call gdb-show-stop-p
when GUD mode is 'pdb'.  (Bug#27024)
2017-05-27 15:15:18 +03:00
Wilfred Hughes
63d0a3c63f Don't treat ' as a string delimiter in RPM spec files
' is commonly used as an apostrophe in the prose sections of spec
files, which was erroneously highlighted as strings. See for example
http://kmymoney2.sourceforge.net/phb/rpm-example.html

* lisp/progmodes/sh-script.el (sh-mode-syntax-table): Treat ' as
  punctuation in RPM spec files.
2017-05-23 18:48:19 +01:00
Noam Postavsky
acd58c9198 Limit integers printed as characters (Bug#16828)
* lisp/simple.el (eval-expression-print-maximum-character): New
variable.
(eval-expression-print-format): Only display value as character if
it's less than or equal to `eval-expression-print-maximum-character'.
(eval-expression-get-print-arguments): Check
eval-expression-print-maximum-character, allow negative arg to
override it.
(eval-expression):
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp):
(elisp--eval-last-sexp-print-value): Handle new variable.
* doc/emacs/building.texi (Lisp Eval): Document new variable and
behavior.
* etc/NEWS: Announce it.
* test/lisp/progmodes/elisp-mode-tests.el
(eval-last-sexp-print-format-small-int)
(eval-last-sexp-print-format-small-int-echo)
(eval-last-sexp-print-format-large-int)
(eval-last-sexp-print-format-large-int-echo):
* test/lisp/simple-tests.el (eval-expression-print-format-small-int)
(eval-expression-print-format-small-int-echo)
(eval-expression-print-format-large-int)
(eval-expression-print-format-large-int-echo): New tests.
2017-05-19 18:16:38 -04:00
Noam Postavsky
267be4bdc2 Refactor lisp eval result printing
* lisp/simple.el (eval-expression-print-format): Don't check
`standard-output' or `current-prefix-arg'.
(eval-expression-get-print-arguments): New function, centralizes
decision about how to print results of `eval-expression' and
`eval-last-sexp'.
(eval-expression):
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp-print-value):
Use it.
2017-05-19 18:16:15 -04:00
Alan Mackenzie
0e09d00f29 Fontify C++ for loop variable as variable, even when followed by parentheses
In the following: "for (auto *Friend : Class->friends()) {", "Friend" was
getting fontified as a function, due to insufficient checking of the tokens
between it and "()".

* lisp/progmodes/cc-langs.el (c-:-op-cont-tokens, c-:-op-cont-regexp): New
lang-consts/vars.

* lisp/progmodes/cc-engine.el (c-forward-declarator): After finding a putative
declarator's identifier, check for a ":" token inside a for's parentheses, and
abort the search for "(" if this is found.
2017-05-12 21:11:49 +00:00
Wilson Snyder
e93f39d2e6 Fix various verilog-mode.el issues.
* lisp/progmodes/verilog-mode.el (verilog-read-decls): Fix SystemVerilog
2012 import breaking AUTOINST.  Reported by Johannes Schaefer.
(verilog-auto-wire-type, verilog-insert-definition): Fix AUTOWIRE using
logic in top-level non-SystemVerilog module, bug1142.  Reported by Marcin K.
(verilog-define-abbrev-table) (verilog-mode-abbrev-table): Don't expand
abbrev inside comment/strings, bug1102. Reported by Slava Yuzhaninov.
(verilog-auto): Fix AUTORESET widths pulling from AUTOREGINPUT,
msg2143. Reported by Galen Seitz.
(verilog-modify-compile-command): Fix expansion of __FLAGS__ when
compile-command is globally set, bug1119.  Reported by Galen Seitz.
2017-05-08 13:44:47 -04:00
Philipp Stephani
3c4c8ca06e Fix all unescaped character literals 2017-05-07 13:22:34 +02:00
Alan Mackenzie
bcbd8f7e4e CC Mode internal cache: Handle a cache pos being inside a two-char construct.
Cache c-state-semi-nonlit-pos-cache was failing when a cache position was,
e.g., between the two characters of an opening comment "/*", and additionally
there were an odd number of quote marks (apostrophes) in the comment.  This
happened in .../src/xdisp.c in the Emacs master branch around 2017-05-02 at
buffer position 615001.

* lisp/progmodes/cc-defs.el (c-emacs-features): Repurpose symbol
pps-extended-state to mean that there are at least 11 elements in the parser
state.

* lisp/progmodes/cc-engine.el (c-cache-to-parse-ps-state)
(c-parse-ps-state-to-cache): Rewrite these to use enhanced cache element list
types which indicate potentially being inside two-char constructs.
(c-parse-ps-state-below): Rewrite to use the new versions of the above two
functions.
2017-05-07 09:27:00 +00:00
Dmitry Gutov
f5ca518b92 ; xref-collect-matches: Add a TODO 2017-05-04 18:27:15 +03:00
Dmitry Gutov
09f566eeda ; Fix the comment back 2017-05-02 01:51:36 +03:00
Dmitry Gutov
c99a3b90a0 Speed up project-find-regexp for simple regexps
* lisp/progmodes/xref.el (xref--regexp-syntax-dependent-p):
New function.
(xref--collect-matches): Use it.  Don't try to enable the
appropriate major mode and file-local variables if the regexp
does not depend on the buffer's syntax (bug#26710).
(xref--collect-matches-1): Don't syntax-propertize in that
case either.
2017-05-02 00:09:30 +03:00
Bartosz Duszel
6a151cf8d5 Don't pass the value of point to 'push-mark', as that's the default.
* lisp/textmodes/bib-mode.el (mark-bib):
* lisp/simple.el (mark-whole-buffer, yank):
* lisp/ses.el (ses--advice-yank, ses-mark-row, ses-mark-column):
* lisp/progmodes/xscheme.el (xscheme-yank):
* lisp/progmodes/verilog-mode.el (verilog-mark-defun):
* lisp/progmodes/perl-mode.el (perl-mark-function):
* lisp/progmodes/pascal.el (pascal-mark-defun):
* lisp/progmodes/meta-mode.el (meta-mark-defun):
* lisp/progmodes/icon.el (mark-icon-function):
* lisp/progmodes/cc-cmds.el (c-mark-function):
* lisp/obsolete/vip.el (ex-goto):
* lisp/obsolete/vi.el (vi-put-before):
* lisp/mouse.el (mouse-yank-primary):
* lisp/menu-bar.el (menu-bar-select-yank):
* lisp/mail/sendmail.el (mail-yank-original):
* lisp/hexl.el (hexl-beginning-of-buffer, hexl-end-of-buffer):
* lisp/emulation/viper-cmd.el (viper-mark-beginning-of-buffer)
(viper-mark-end-of-buffer):
* lisp/cedet/semantic/senator.el (senator-mark-defun):
* lisp/allout.el (allout-mark-topic): Remove unnecessary argument
`(point)' from calls to `push-mark'.  (Bug#25565)
2017-04-28 11:25:26 +03:00
Alan Mackenzie
d354fc3828 Fix fontification of C++ declaration with type FOO::FOO.
* lisp/progmodes/cc-engine.el (c-find-decl-spots): Initialize
cfd-top-level properly.
(c-forward-decl-or-cast-1): On finding FOO::FOO, check it is followed by "("
before deciding it is a constructor.

* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Negate the
result of the c-bs-at-toplevel-p call passed to c-font-lock-declarators
(simple bug fix).
2017-04-22 14:45:24 +00:00