1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-19 04:10:18 -08:00
Commit graph

7635 commits

Author SHA1 Message Date
Alan Mackenzie
da6deda8d4 Move defvars of c-doc-line-join-re + two others from cc-fonts.el to cc-mode.el
This is because these variables are needed at runtime even when cc-fonts.el
hasn't been loaded, as in XEmacs when font locking hasn't been enabled.

* lisp/progmodes/cc-fonts.el (c-doc-line-join-re)
(c-doc-bright-comment-start-re, c-doc-line-join-end-ch): Move definitions to
cc-mode.el.
2019-06-17 20:22:06 +00:00
Alan Mackenzie
7bf6592034 Remove the now unneeded c-font-lock-flush from CC Mode.
* lisp/progmodes/cc-defs.el (c-font-lock-flush): Delete this macro.

* lisp/progmodes/cc-engine.el (c-propertize-raw-string-opener): Delete the
call to the macro.
2019-06-17 11:00:55 +00:00
Alan Mackenzie
e6fb9a443f CC Mode: Remedy recent loss in performance
* lisp/progmodes/cc-engine.el (c-back-over-member-initializers): call
c-parse-state outside of the narrowing operation.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context)
(c-font-lock-cut-off-declarators): Replace calls to c-determine-limit with
crude position calculations for speed.
2019-06-16 15:46:12 +00:00
Alan Mackenzie
f0bf0d0779 Maintain c-syntax-table-hwm when changing syntax-table text properties
* lisp/progmodes/cc-defs.el: (c-syntax-table-hwm): Move the defvar to here
from cc-mode.el, since the variable is needed at compile time in
c-emacs-features.
(c-min-property-position): New macro.
(c-put-char-property, c-clear-char-property, c-clear-char-properties)
(c-clear-char-property-with-value-function)
(c-clear-char-property-with-value-on-char-function)
(c-put-char-properties-on-char): Adjust c-syntax-table-hwm appropriately when
syntax-table text properties are changed.

* lisp/progmodes/cc-engine.el (c-truncate-lit-pos-cache): Remove the now
unneeded setting of c-syntax-table-hwm, and the unneeded declaration of
c-syntax-table-hwm.
2019-06-16 11:52:01 +00:00
Dmitry Gutov
83095a89f6 Fix regressions in xref-find-definitions and ...-other-window
* lisp/progmodes/xref.el:
(xref--display-buffer-in-other-window)
(xref--display-buffer-in-window): New functions.
(xref--show-pos-in-buf): Use them (bug#33870)
2019-06-16 03:50:54 +03:00
Wilson Snyder
4262e13a09 Clean up verilog-mode.el documentation examples to match behavior.
* verilog-mode.el (verilog-auto, verilog-auto-arg)
(verilog-auto-ascii-enum, verilog-auto-inout)
(verilog-auto-inout-comp, verilog-auto-inout-in)
(verilog-auto-inout-modport, verilog-auto-inout-module)
(verilog-auto-inout-param, verilog-auto-input)
(verilog-auto-insert-lisp, verilog-auto-inst)
(verilog-auto-inst-param, verilog-auto-inst-param-value)
(verilog-auto-output, verilog-auto-output-every, verilog-auto-reg)
(verilog-auto-reg-input, verilog-auto-reset, verilog-auto-sense)
(verilog-auto-tieoff, verilog-auto-undef, verilog-auto-unused)
(verilog-auto-wire, verilog-inject-auto, verilog-read-sub-decls):
Clean up documentation examples to match behavior.
2019-06-15 08:16:05 -04:00
Stefan Kangas
2a364d84c1 Remove another variable obsolete since Emacs 22
* lisp/progmodes/cc-langs.el: Remove obsolete variable
c-opt-op-identitier-prefix.
* etc/NEWS: Announce it.  (Bug#36173)
2019-06-15 13:15:53 +03:00
Stefan Monnier
cf5aa2f39a * lisp/progmodes/ps-mode.el (ps-mode-octal-region): Simplify. 2019-06-13 17:40:32 -04:00
Lars Ingebrigtsen
69d3d69d4c project.el compilation warning fix
* lisp/progmodes/project.el (xref--regexp-to-extended)
(xref--convert-hits): Declare more xref functions to avoid
compilation warnings.
2019-06-13 16:16:57 +02:00
Alan Mackenzie
6b5388794b Depessimize bits of CC Mode for long C macros.
* lisp/progmodes/cc-engine.el (c-end-of-macro): Check for being in a
degenerate zero length "macro", when setting the macro cache.
(c-determine-+ve-limit): Add in a missing goto-char form for when start-pos is
non-nil.
(c-back-over-member-initializers): Add a search limit parameter.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Add a search limit
to c-go-up-list-backward.
(c-font-lock-cut-off-declarators): Add a search limit to
c-back-over-member-initializers.

* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): Don't
set c-new-END to the end of logical line (which might be a long macro).
(c-after-change-mark-abnormal-strings): Calculate end-hwm in place of the
setting of c-new-END (above).  Use this as a search limit rather than
c-new-END.
2019-06-13 14:10:02 +00:00
Alan Mackenzie
25b1376516 CC Mode: replace an erroneous re-search-forward with search-forward
Move two declarations to a more suitable point in the cc-engine.el.

* lisp/progmodes/cc-engine.el (c-after-change-unmark-raw-strings): Change an
re-search-forward to search-forward.
(c-semi-lit-near-cache, c-semi-near-cache-limit): Move the declarations.
2019-06-13 10:06:33 +00:00
Alan Mackenzie
95c400a508 Move declaration of c-syntax-table-hwm to avoid compiler warnings.
This variable was declared after an invocation of a defsubst which used it,
the defsubst being in another file.

* lisp/progmodes/cc-mode (c-syntax-table-hwm): Move the declaration to earlier
in the file.
2019-06-13 08:46:30 +00:00
Lars Ingebrigtsen
4752de8349 Avoid string-make-multibyte in ps-mode.el
* lisp/progmodes/ps-mode.el (ps-mode-octal-region): Avoid usage of
string-make-multibyte, but work in both unibyte and multibyte buffers.
2019-06-13 03:12:03 +02:00
Lars Ingebrigtsen
986e333eaa Revert previous ps-mode.el change
* lisp/progmodes/ps-mode.el (ps-mode-octal-region): Revert
previous change because the `string-make-unibyte' insertion was
the previous single change (in 2013) to this file, so it must have
some subtle meaning or other.
2019-06-13 02:54:24 +02:00
Lars Ingebrigtsen
5b7ec43c61 Add ps-mode-tests.el and remove a compilation warning
* lisp/progmodes/ps-mode.el (ps-mode-octal-region): Remove a
string-make-unibyte that apparently had no effect here.
* test/lisp/progmodes/ps-mode-tests.el: New file.
2019-06-13 02:48:41 +02:00
Lars Ingebrigtsen
982af7f516 Fix warning about obsolete func calling obsolete func in etags.el
* lisp/progmodes/etags.el (find-tag-other-frame): Don't give a
warning about an obsolete function calling another obsolete function.
2019-06-13 01:33:27 +02:00
Lars Ingebrigtsen
6d63f68f33 Touch ups to the XEmacs deletion patch for idlw-shell.el
* lisp/progmodes/idlw-shell.el (idlwave-xemacs-hack-mouse-track):
Fix up previous obsoletion.
2019-06-13 00:16:17 +02:00
Lars Ingebrigtsen
1f03c52173 Remove XEmacs support from idlw-shell.el
* lisp/progmodes/idlw-shell.el (idlwave-shell-make-temp-file)
(idlwave-shell-mouse-examine)
(idlwave-xemacs-hack-mouse-track, idlwave-display-buffer)
(idlwave-shell-debug-line-map)
(idlwave-shell-make-new-bp-overlay, idlwave-shell-mode-map):
Remove XEmacs support.
2019-06-13 00:08:57 +02:00
Alan Mackenzie
468517c8b8 CC Mode: Add a workaround for syntax-ppss ignoring syntax-table prop changes
* lisp/progmodes/cc-engine.el (c-truncate-lit-pos-cache): Maintain the new
variable c-syntax-table-hwm after buffer changes.

* lisp/progmodes/cc-mode.el (c-syntax-table-hwm): New variable.
(c-before-change): Set c-syntax-table-hwm to "infinity".
(c-after-change): Call syntax-ppss-flush-cache, just before a font locking is
due to take place.
2019-06-12 19:17:22 +00:00
Dmitry Gutov
2a05c5dbd3 Omit the misplaced and unnecessary shyness qualifier
* lisp/progmodes/ruby-mode.el (ruby-find-library-file):
Omit the misplaced and unnecessary shyness qualifier.
Suggested by Mattias Engdegård <mattiase@acm.org>.
2019-06-10 03:50:44 +03:00
Dmitry Gutov
5f5555da87 Unbreak saving xref--original-window, etc
* lisp/progmodes/xref.el (xref--show-xref-buffer)
(xref--show-defs-buffer-at-bottom): Move major mode calls earlier.
So that local variable values are not lost.
2019-06-10 03:11:59 +03:00
Dmitry Gutov
4f479aeb4b Rename xref--pop-to-location to xref-pop-to-location
* lisp/progmodes/xref.el (xref-pop-to-location):
Rename from xref-pop-to-location.  So that third-party
xref-show-definitions-function implementations can use it safely
(bug#36144).  Update all callers.
2019-06-09 17:14:46 +03:00
Dmitry Gutov
ec563971ec Add a built-in alternative for xref-show-definitions-function
* lisp/progmodes/xref.el (xref--transient-buffer-mode-map):
New variable.
(xref--transient-buffer-mode): New major mode.
(xref--button-map): Remove the RET binding (it was unnecessary in
the first place).
(xref--show-common-initialize):
Extract from xref--show-xref-buffer.
(xref--show-defs-buffer-at-bottom): New function.
2019-06-09 17:14:46 +03:00
Stefan Kangas
b7e26952f0 Fix TODO to convert defvar with leading '*' to defcustom
* etc/TODO: Remove done TODO to remove '*' from defvar.
* doc/misc/gnus.texi: Remove leading '*' from defvar example.
* lisp/kermit.el (kermit-esc-char): Convert to defcustom.
* lisp/desktop.el (desktop-header):
* lisp/obsolete/cc-compat.el (c-indent-level)
(c-brace-imaginary-offset, c-brace-offset, c-argdecl-indent)
(c-label-offset, c-continued-statement-offset)
(c-continued-brace-offset): Remove leading '*' from docstring.
* lisp/progmodes/dcl-mode.el: Remove leading '*' from docstring in
comment.
* test/manual/cedet/tests/test.el: Add comment asking if example of
defvar with leading '*' should be removed.
(Bug#35994)  (The previous commit is also for the same bug.)
2019-06-09 10:08:33 +03:00
Glenn Morris
d26b49e5a4 ; Fix recent maintainer header removals
The convention is that no "Maintainer" means "Author" is the maintainer.
2019-06-08 10:21:16 -07:00
Paul Eggert
ca7b6a4451 Remove retired maintainers from comments
* lisp/international/quail.el, lisp/language/ind-util.el:
* lisp/language/indian.el, lisp/mail/smtpmail.el, lisp/mwheel.el:
* lisp/obsolete/longlines.el, lisp/progmodes/idlw-complete-structtag.el:
* lisp/progmodes/idlw-help.el, lisp/progmodes/idlw-shell.el:
* lisp/progmodes/idlw-toolbar.el, lisp/progmodes/idlwave.el:
* lisp/progmodes/simula.el, lisp/ps-print.el, lisp/ps-samp.el:
Remove Maintainer: lines for maintainers who have retired.
2019-06-04 12:42:47 -07:00
Jackson Ray Hamilton
ea09b9fe34
Specify the matching chars for JSX open/close parenthesis
* lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Indicate the
matching parenthesis character (since JSX’s < and > aren’t typical
parenthesis) for the sake of packages like rainbow-delimiters which
need that information.
2019-06-04 09:05:40 -07:00
Jackson Ray Hamilton
c4214e4dc1
Revert "Add extra text property to fix issue with js2-mode integration"
This reverts commit 382a508ed2.

We ended up deciding against using this in js2-mode.  Instead,
js2-mode may eventually use js-mode’s syntax-propertize-function to
set syntax-table text properties.
2019-06-04 09:05:30 -07:00
Alan Mackenzie
30b0c5bf42 Change default offset of CC Mode syntactic symbol inlambda to 0
It's previous default was c-lineup-inexpr-block.  This change is mainly to
prevent excessive indentation of the innards of C++ lambda functions.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Amend the offset for inlambda
to 0.

* doc/misc/cc-mode.texi (FAQ): Amend the answer to the question about this
matter.
2019-06-02 14:05:33 +00:00
Alan Mackenzie
bd5ca55979 Debug and disentangle the literal cacheing in CC Mode
(Final Commit)

* lisp/progmodes/cc-engine.el (c-semi-trim-near-cache): Correct a comparison
with the wrong ...-limit variable.
(c-semi-pp-to-literal): Remove a wrong setting of c-lit-pos-cache-limit.
(c-full-get-near-cache-entry): Eliminate extravagant and unneeded coding.
(c-state-cache-init, c-record-parse-state-state): No longer manipulate
c-lit-pos-cache, which is no longer regarded as part of c-parse-state.

* lisp/progmodes/cc-mode.el (c-basic-common-init): Call
c-truncate-lit-pos-cache to initialize the literal cache.
2019-06-01 20:15:13 +00:00
Alan Mackenzie
99bc4af9c8 * lisp/progmodes/cc-engine.el: Permute certain literal cacheing functions 2019-06-01 20:08:27 +00:00
Alan Mackenzie
9dee49ed64 Tidy up the literal cacheing in CC Mode, optimizing c-full-pp-to-literal
(Intermediate commit)

* lisp/progmodes/cc-engine.el, lisp/progmodes/cc-fonts.el
* lisp/progmodes/cc-mode.el : Rename:
c-state-semi-nonlit-pos-cache -> c-lit-pos-cache,
c-state-semi-nonlit-pos-cache-limit -> c-lit-pos-cache-limit,
c-state-semi-nonlit-near-cache -> c-semi-lit-near-cache,
c-truncate-semi-nonlit-pos-cache -> c-truncate-lit-pos-cache,
c-state-semi-trim-near-cache -> c-semi-trim-near-cache,
c-state-semi-get-near-cache-entry -> c-semi-get-near-cache-entry,
c-state-semi-put-near-cache-entry -> c-semi-put-near-cache-entry,
c-state-semi-pp-to-literal -> c-semi-pp-to-literal,
c-state-full-pp-to-literal -> c-full-pp-to-literal,
c-state-semi-trim-cache -> c-trim-lit-pos-cache.

* lisp/progmodes/cc-engine.el (c-semi-near-cache-limit): New variable.
(c-truncate-lit-pos-cache): This now truncates the cache variables for all
three lit- sub-caches.
(c-semi-put-near-cache-entry): Increase c-semi-near-cache-limit to the
position of the new entry.
(c-full-near-cache-limit, c-full-lit-near-cache): New variables.
(c-full-trim-near-cache, c-full-get-near-cache-entry)
(c-full-put-near-cache-entry): New functions.
(c-full-pp-to-literal): Amend to use the new functions, and to optimize the
use of the available caches, similarly to c-semi-pp-to-literal.
2019-06-01 19:56:07 +00:00
Alan Mackenzie
57e9141a9c Optimize one of CC Mode's syntax caches for long comments and strings.
* lisp/progmoes/cc-langs.el (c-block-comment-awkward-chars): New lang
constant and variable.

* lisp/progmodes/cc-engine.el (c-state-semi-nonlit-pos-cache): Enhance the
doc comment.
(c-state-semi-get-near-cache-entry, c-state-semi-pp-to-literal): Reuse entry
if the sought position is in a literal, and lies between the literal start and
the entry's position.
(c-cache-to-parse-ps-state, c-parse-ps-state-below): Amend such that instead
of cacheing a state for a position after a backslash or first character of a
2-character comment delimiter, this is done for the previous character
position.
2019-05-30 19:37:25 +00:00
Dmitry Gutov
a01693a45c Rename xref-refresh-results to xref-revert-buffer
* lisp/progmodes/xref.el (xref-revert-buffer): Rename from
'xref-refresh-results' (https://debbugs.gnu.org/35737#40).
2019-05-30 20:09:53 +03:00
Dmitry Gutov
27f5627104 New command ruby-find-library-file
* lisp/progmodes/ruby-mode.el (ruby-find-library-file):
New command.
(ruby-mode-map): Add binding for it.
2019-05-30 20:09:53 +03:00
Dmitry Gutov
b367a3dee1 ; Remove unused piece of code and update a docstring 2019-05-30 20:09:53 +03:00
Stefan Monnier
fe0cb43fb8 * lisp/subr.el (add-hook): Turn append into depth (bug#35508)
Make it possible to control the relative ordering of functions on hooks by
specifying `depth` in the same was as was possible with `add-function`.

* lisp/electric.el (electric--sort-post-self-insertion-hook):
Delete function.
(electric-indent-mode, electric-layout-mode, electric-quote-mode):
* lisp/elec-pair.el (electric-pair-mode): Use new `depth` arg instead of
electric--sort-post-self-insertion-hook.

* lisp/emacs-lisp/syntax.el (syntax-propertize, syntax-ppss):
Use new `depth` arg to make sure noone accidentally gets added
after syntax-ppss-flush-cache.

* doc/lispref/modes.texi (Setting Hooks): Document new `depth` arg.

* test/lisp/subr-tests.el (subr-tests-add-hook-depth): New test.
2019-05-29 15:56:14 -04:00
Paul Eggert
852d281769 Update author/maintainer info
Update email addresses and fix spellings of some author and
maintainer names.
2019-05-26 01:00:16 -07:00
Paul Eggert
797ee5871e Remove Maintainer: when it duplicates Author:
The convention is that a file with Author: but not Maintainer:
means the author is a maintainer, which makes it confusing
when a file lists the same person as author and maintainer.
Avoid the confusion by removing the duplicate Maintainer: line.
2019-05-26 01:00:15 -07:00
Dmitry Gutov
2be225c3a0 ; Minor docstring change 2019-05-26 01:49:00 +03:00
Paul Eggert
f744797af1 Go back to "Maintainer: emacs-devel@gnu.org"
Restore lines saying "Maintainer: emacs-devel@gnu.org" when there is
no special maintainer for a file.  Although this wasn't documented
it was common practice and removing the lines didn't have consensus.
2019-05-25 14:25:18 -07:00
Dmitry Gutov
5ce082d636 ; xref--create-fetcher: Add some further clarification 2019-05-26 00:18:51 +03:00
Dmitry Gutov
d0df779224 Expand some xref documentation
* lisp/progmodes/xref.el (xref-show-xrefs-function)
(xref-show-definitions-function, xref--create-fetcher):
Add or extend the docstring.
2019-05-26 00:18:51 +03:00
Dmitry Gutov
157d506dd7 Rename xref--revert-xref-buffer to xref-refresh-results
* lisp/progmodes/xref.el (xref-refresh-results):
Rename from xref--revert-xref-buffer (bug#35702).
2019-05-25 00:43:44 +03:00
Dmitry Gutov
e309818ece Support reverting in xref-find-definitions results as well
* lisp/progmodes/xref.el (xref--show-xref-buffer): Expect the
first argument to always be a function (bug#35702).  Handle a
FETCHED-XREFS entry in ALIST.
(xref--show-defs-buffer): Update accordingly.
(xref--create-fetcher): Extract from xref--find-xrefs.
(xref--find-definitions): Use it.
2019-05-25 00:43:44 +03:00
Dmitry Gutov
8cdb9d9d24 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2019-05-24 04:53:39 +03:00
Dmitry Gutov
62349fe82a Support "reverting" Xref buffers (bug#35702)
* lisp/progmodes/xref.el (xref--fetcher): New variable.
(xref--xref-buffer-mode-map): Add binding for 'g'.
(xref--revert-xref-buffer): New command.
(xref--show-xref-buffer): Accept a function as the first argument.
(xref--show-xrefs): Same.
(xref--find-xrefs): Pass the above a fetcher function.

* lisp/progmodes/project.el (project-find-regexp)
(project-or-external-find-regexp): Same.

* lisp/dired-aux.el (dired-do-find-regexp): Same.
2019-05-24 04:50:44 +03:00
Dmitry Gutov
1cadab78e2 Make xref-find-definitions more customizable
* lisp/progmodes/xref.el (xref--show-defs-buffer): New function.
Move a bit of logic from xref--show-defs to make it more
customizable.
(xref--push-markers): New function, extracted from
xref--show-xrefs.
(xref-show-definitions-function): Set to the new function.
2019-05-23 01:30:50 +03:00
Dmitry Gutov
49a363c875 Separate xref-find-definitions' behavior from other commands
* lisp/progmodes/xref.el (xref-show-definitions-function):
New variable.
(xref--show-defs): Split off from xref--show-xrefs.
(xref--find-definitions): Use it.
(xref--not-found-error): New function.
(xref--show-xrefs): Simplify.  Show the list buffer even when
there is just one item in the list.  Remove the last argument.

* lisp/dired-aux.el (dired-do-find-regexp): Update accordingly.
2019-05-23 01:29:33 +03:00
Alan Mackenzie
5856512911 C Mode: Fix indentation of DEFUN's function's argument list.
Formally, when DEFUNs still used knr argument lists, these were indented by
the syntactic context knr-argdecl-intro (5 columns).  Since this is no longer
the case, we now just use c-basic-offset (2 columns in "gnu" style).

* lisp/progmodes/cc-align.el (c-indent-gnu-DEFUN-intro-cont): Modernize the
indentation.  Amend the doc string accordingly.
2019-05-21 11:47:14 +00:00