1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-14 01:50:22 -08:00
Commit graph

7635 commits

Author SHA1 Message Date
Dmitry Gutov
5e627fa5f5 Rename multifile.el to fileloop.el
* lisp/multifile.el: Rename to fileloop.el as discussed in
https://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00475.html.
Update symbol prefixes and all callers
2019-02-07 12:23:09 +03:00
Dmitry Gutov
1289ae999b ; project-ignores: Add some TODOs 2019-02-07 12:23:08 +03:00
Juri Linkov
94b320849e Make window choice in xref commands configurable
Previously, it wasn't easy to tell xref.el commands like
xref-find-definitions or xref-find-definitions-other-window how to
choose a window for the *xref* buffer or how to find windows for
displaying the results after choosing a candidate.  This patch makes
that task easier, but keeps the current behaviour intact.

Co-authored-by: João Távora <joaotavora@gmail.com>

* lisp/progmodes/xref.el (xref--show-pos-in-buf): Simplify.
2019-02-06 22:50:02 +00:00
Felicián Németh
2f55b971b4 Fix Bug#34221
* lisp/progmodes/project.el (project--files-in-directory):
Support remote files.  (Bug#34221)
2019-02-02 13:22:53 +01:00
Dmitry Gutov
b01a4295c2 js--re-search-backward-inner: Fix infloop
Fix JS indentation infloop reported in
https://github.com/mooz/js2-mode/issues/513.

* lisp/progmodes/js.el (js--re-search-backward-inner): Account for
multiline string literals.
* test/manual/indent/js.js: New test example.
2019-02-01 03:02:06 +03:00
Glenn Morris
08bc407a22 Merge from origin/emacs-26
b94d767 (origin/emacs-26) Minor copyedits in last manual change
73508e6 Improve documentation of face numbers
bf235ce * doc/emacs/custom.texi (Authentication): Refer to the "Help ...
ceccb3c New node Authentication in the Emacs manual
9078f34 Fix a loop in c-fl-decl-start.  This fixes bug #34186.
a177fe7 Fix LaTeX output of month and day from cal-tex.el
90177d7 Avoid elisp crash for OpenPGP User IDs with no e-mail address
68e55a0 image-mode: Do not use default scaling (bug#33990)
b6c762a create-image: Expand documentation (bug#33990)
928d342 Improve documentation of 'isearch-filter-predicate'
9034dd6 Fix cursor column positioning on Grep hits

# Conflicts:
#	doc/emacs/custom.texi
2019-01-30 09:12:15 -08:00
Juri Linkov
0f94d422f1 More checks for live buffers.
* lisp/dired-x.el (dired-jump): Check if archive/tar superior buffer
was killed by the user.

* lisp/progmodes/ruby-mode.el (ruby-flymake--helper): Check if source buffer
was killed by the user immediately after visiting and before process finishes.
2019-01-28 22:27:22 +02:00
Alan Mackenzie
239386806e Detect when we hit limit in backward search in c-just-after-func-arglist-p
This fixes a bug reported by Yasushi SHOJI <yasushi.shoji@gmail.com> to
emacs-devel on 2018-11-26, where wrong analysis and fontification occurred.

* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Add new parameter
HIT-LIM which, if non-nil causes the function to return nil rather than 'same
when we reach the backward search limit without finding the beginning of
statement.
(c-just-after-func-arglist-p): Supply argument t to this new parameter in call
to c-beginning-of-statement-1.
2019-01-28 10:54:42 +00:00
Alan Mackenzie
9078f34e84 Fix a loop in c-fl-decl-start. This fixes bug #34186.
* lisp/progmodes/cc-mode.el (c-fl-decl-start) In the pair of operations
c-syntactic-skip-backward and c-forward-syntactic-ws, ensure the latter
doesn't come back to the position before the former, and break out of the
enclosing loop if it does.
2019-01-25 16:14:00 +00:00
Alan Mackenzie
9eaf5e052a Extend electric-pair-mode actions to < and >, and also to ( and ) in literals
* lisp/progmodes/cc-cmds.el (c-electric-lt-gt): Actuate electric-pair-mode if
a < or > is typed in a context where this is meaningful (#include, or
template).
(c-electric-paren): Allow electric-pair-mode activity in a comment or string.

* lisp/progmodes/cc-defs.el (c-make-keywords-re): Fix a bug where lists of
source symbols could get overwritten when parameter adorn is set to
'appendable.

* list/progmodes/cc-langs.el (c-cpp-include-key): New lang const and var.
2019-01-22 14:37:54 +00:00
Alan Mackenzie
f97b734ffb Revert "Fix electric-pair-tests by disabling bug#33794's fix with a variable"
This reverts commit be505726b6.
2019-01-22 14:30:30 +00:00
Trevor Spiteri
9034dd6c70 Fix cursor column positioning on Grep hits
* lisp/progmodes/grep.el (grep-match-face): Move before first
use, to avoid byte-compilation warning.
(grep-regexp-alist): Don't quote grep-match-face.  (Bug#34068)

Copyright-paperwork-exempt: yes
2019-01-19 09:51:20 +02:00
Dmitry Gutov
8198d4be6b ; Update the commentary 2019-01-19 03:57:58 +03:00
Dmitry Gutov
b6af090022 Misc ignore-related project.el changes
* lisp/progmodes/project.el (project-ignores): Don't append the
default ignores list, just use vc-directory-exclusion-list.
(project--dir-ignores): Use the default ignores if the dir is
outside of the current project.
(project-files): Use project--dir-ignores to support external
roots better.
2019-01-19 03:54:58 +03:00
Dmitry Gutov
fbe87d0f8f Rebase project-find-regexp on top of project-files
* lisp/progmodes/project.el (project--files-in-directory):
New function.
(project-files, project-find-regexp): Use it.
(project--dir-ignores): New function.
(project--find-regexp-in): Remove.
(project--process-file-region): New function.
(project--find-regexp-in-files): New function.
(project-find-regexp, project-or-external-find-regexp): Use it, and
project-files as well.
2019-01-18 06:46:36 +03:00
Dmitry Gutov
afc8a41f48 ; Update the number 2019-01-18 06:46:35 +03:00
Dmitry Gutov
d8da0916ff Make 'project-files' the "canonical" generic of the two
* lisp/progmodes/project.el (project-files): Move the actual
command building and invocation here.
(project-file-completion-table): Delegate to 'project-files'.
2019-01-18 06:46:35 +03:00
João Távora
be505726b6 Fix electric-pair-tests by disabling bug#33794's fix with a variable
The variable c--disable-fix-of-bug-33794, which should be removed in
the short term in favor of a permanent solution, is introduced.

It is bound to nil by default.  This means that breakage is still
happening in actual c-mode and c++-mode usage, though the tests no
longer show it.

To get around this breakage, put

   (setq c--disable-fix-of-bug-33794 t)

In your init file.  Evidently, you will lose the fix for bug#33794,
but that only affects a small corner case of c-toggle-auto-newline,
which is not turned on by default.

See https://lists.gnu.org/archive/html/emacs-devel/2019-01/msg00360.html
for more information.

* lisp/progmodes/cc-cmds.el (c--disable-fix-of-bug-33794): New
variable.
(c--with-post-self-insert-hook-maybe): New macro.
(c-electric-pound, c-electric-brace, c-electric-slash)
(c-electric-star, c-electric-semi&comma, c-electric-colon)
(c-electric-lt-gt, c-electric-paren): Use it.
(c-electric-paren, c-electric-brace): Check
c--disable-fix-of-bug-33794.

* test/lisp/electric-tests.el (c--disable-fix-of-bug-33794):
Forward declare.
(electric-pair-test-for)
(electric-layout-int-main-kernel-style)
(electric-modes-in-c-mode-with-self-insert-command): Use it.
2019-01-17 18:49:10 +00:00
João Távora
80cbfb61c5 Fix flymake-proc--delete-temp-directory if temp dir ends in slash
Fixes: bug#34074

Reported by 林宝龙 <lbl52001@gmail.com>.

* lisp/progmodes/flymake-proc.el
 (flymake-proc--delete-temp-directory):  Use directory-file-name.
2019-01-17 14:38:44 +00:00
Alan Mackenzie
223e7b8787 Make CC Mode and electric-pair-mode work together. This fixes bug #33794
* lisp/progmodes/cc-cmds.el (c-electric-pound, c-electric-slash)
(c-electric-star, c-electric-semi&comma, c-electric-colon, c-electric-lt-gt):
Bind post-self-insert-hook to nil around calls to self-insert-command to
protect against arbitrary functionality confusing CC Mode.
(c-do-brace-electrics): New function, extracted from c-electric-brace and
enhanced.
(c-electric-brace): Bind post-self-insert-hook to nil around the call to
self-insert-command.  When electric-pair-mode is configured, call
electric-pair-post-self-insert-function.  Handle any deletion done by this
function.  Call c-do-brace-electrics for the inserted brace, and perhaps for a
brace inserted by electric-pair-self-insert-function.
(c-electric-paren): Bind post-self-insert-hook to nil around the call to
self-insert-command.  When electric-pair-mode is configured, call
electric-pair-post-self-insert-function.
2019-01-15 15:54:02 +00:00
Pierre Téchoueyres
c48ea7c08c Check that feature exist in `sql-set-product-feature' (Bug#30494).
* lisp/progmodes/sql.el (sql-set-product-feature): Add test for
feature existence.
2019-01-12 13:32:29 +02:00
Leo Liu
ebd5b5a413 * lisp/progmodes/js.el: Remove unused (require 'thingatpt). 2019-01-08 12:37:22 +08:00
João Távora
42c1332494 New flymake-supress-zero-counters defcustom
A feature suggested by Yuri Khan <yurivkhan@gmail.com>.

* lisp/progmodes/flymake.el (flymake-suppress-zero-counters): New
variable.  (flymake--mode-line-format): Use it.
2019-01-05 12:12:00 +00:00
João Távora
04d3315271 Fix Flymake tests for GCC 8.2.0
Fixes: bug#33872

"Now you have two problems..."

* lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics):
Adjust regexp.
2019-01-05 11:38:36 +00:00
John Shahid
16e2554880 Unbreak Flymake's diagnostics buffer when revisiting source
Fixes: bug#33881
Copyright-paperwork-exempt: yes

* lisp/progmodes/flymake.el (flymake-show-diagnostics-buffer):
Set flymake--diagnostics-buffer-source before reverting.
2019-01-05 11:38:36 +00:00
Joel Rosdahl
a3c79d44cc Fix electric indent bug in python-mode after dedenting colon
* list/progmodes/python.el (python-indent-post-self-insert-function):
Use markers instead of positions when reindenting statement(s) after
inserting electric colon to avoid reindenting too many
statements (bug#22663).

* test/lisp/progmodes/python-tests.el (python-indent-electric-colon-2):
Improve test case to also verify the fix of bug#22663.

Copyright-paperwork-exempt: yes
2019-01-05 11:02:02 +02:00
Paul Eggert
a04bf15130 Update more copyright years
Update some other copyright years automatically, by running:
Run 'UPDATE_COPYRIGHT_YEAR=2019 \
UPDATE_COPYRIGHT_USE_INTERVALS=1 \
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79 admin/update-copyright'
followed by 'admin/merge-gnulib'.
2018-12-31 18:47:22 -08:00
Paul Eggert
ba809612c0 Merge from origin/emacs-26
2fcf2df Fix copyright years by hand
26bed8b Update copyright year to 2019
2814292 Fix value of default frame height.  (Bug#33921)
2018-12-31 17:57:29 -08:00
Paul Eggert
26bed8ba10 Update copyright year to 2019
Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
2019-01-01 01:01:13 +00:00
Alan Mackenzie
83bbb48142 CC Mode - use font-lock-comment-delimiter-face on block comment end delimiters
In particular when the default comment type is currently line comments.  Do
this by setting font-lock-comment-end-skip.

* lisp/progmodes/cc-cmds.el (c-font-lock-comment-end-skip): New lang const.
(font-lock-comment-end-skip): New c-lang-setvar.
2018-12-30 18:38:36 +00:00
Dmitry Gutov
8f9d93f305 project-find-file: Move the common parent directory to the prompt
* lisp/progmodes/project.el (project--completing-read-strict):
Extract the common parent directory of all files first
(https://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00444.html).
2018-12-29 02:15:35 +02:00
Dmitry Gutov
9916410fa8 Prepend 'rubocop' with 'bundle exec' when appropriate 2018-12-25 18:23:01 +02:00
Dmitry Gutov
e533848dd3 ; Documentation updates 2018-12-25 17:32:10 +02:00
Dmitry Gutov
a361cc88a1 Use rubocop --lint when no .rubocop.yml
* lisp/progmodes/ruby-mode.el (ruby-flymake-rubocop): When no
config file found, only run lint cops (bug#31760).
2018-12-25 17:16:22 +02:00
Dmitry Gutov
fd244507c5 xref-goto-xref: Highlight the exact symbol after the jump
* lisp/progmodes/xref.el (xref-goto-xref): Bind
'xref--current-item' to highlight the exact symbol after the jump
and not the whole line.
2018-12-24 05:11:02 +02:00
Dmitry Gutov
d4c1518474 ; Don't require semantic/symref, it's unnecessary now 2018-12-24 04:37:24 +02:00
Glenn Morris
62112a77f1 Merge from origin/emacs-26
081fb69 (origin/emacs-26) Check result from c-backward-token-2 to avo...
f4ea746 cl-make-random-state was not copying its arg
2018-12-20 07:51:17 -08:00
Alan Mackenzie
081fb694c3 Check result from c-backward-token-2 to avoid infinite loop
This fixes bug #33784.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): While moving back
over enclosing parentheses, check that c-backward-token-2 actually moves.
2018-12-20 12:21:16 +00:00
Michael Albinus
80e98568aa Fix Bug#33524
* lisp/progmodes/flymake-proc.el
(flymake-proc-create-temp-with-folder-structure):
Unquote file-name.  (Bug#33524)
2018-12-18 17:44:13 +01:00
Paul Eggert
ef144113f3 Some more flatten-tree aliases
* lisp/allout.el (allout-flatten):
* lisp/progmodes/hideif.el (hif-flatten):
Now an obsolete alias for flatten-tree.  All callers changed.
* lisp/org/org-protocol.el (org-protocol-flatten):
Make it an alias for flatten-tree if available.
* lisp/progmodes/js.el (js--flatten-list):
Remove alias.  We shouldn’t need obsolete function aliases for
private functions.
2018-12-17 10:26:15 -08:00
Alex Branham
36b05dc842 New function flatten-tree
Co-authored-by: Basil L. Contovounesios <contovob@tcd.ie>

* doc/lispref/lists.texi: Document `flatten-tree'.

* lisp/progmodes/js.el (js--maybe-join):
* lisp/printing.el (pr-switches):
* lisp/lpr.el (lpr-print-region):
* lisp/gnus/nnimap.el (nnimap-find-wanted-parts):
* lisp/gnus/message.el (message-talkative-question):
* lisp/gnus/gnus-sum.el (gnus-remove-thread)
(gnus-thread-highest-number, gnus-thread-latest-date):
* lisp/eshell/esh-util.el (eshell-flatten-and-stringify):
* lisp/eshell/esh-opt.el (eshell-eval-using-options):
* lisp/eshell/esh-ext.el (eshell-external-command):
* lisp/eshell/em-xtra.el (eshell/expr):
* lisp/eshell/em-unix.el (eshell/rm, eshell-mvcpln-template)
(eshell/cat, eshell/make, eshell-poor-mans-grep, eshell-grep)
(eshell/du, eshell/time, eshell/diff, eshell/locate):
* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
* lisp/eshell/em-term.el (eshell-exec-visual):
* lisp/eshell/em-dirs.el (eshell-dirs-substitute-cd, eshell/cd):
* lisp/eshell/em-basic.el (eshell/printnl):
Use new flatten-tree.

* lisp/progmodes/js.el (js--flatten-list):
* lisp/lpr.el (lpr-flatten-list):
* lisp/gnus/message.el (message-flatten-list):
* lisp/eshell/esh-util.el (eshell-flatten-list):
Obsolete in favor of Emacs-wide `flatten-tree'.

* lisp/subr.el (flatten-list): Alias to `flatten-tree' for
discoverability.

* lisp/subr.el (flatten-tree): New defun.

* test/lisp/subr-tests.el (subr-tests-flatten-tree): New test.
2018-12-17 12:15:09 +01:00
Michael Albinus
09a6cc4778 Fix Bug#33524
* lisp/progmodes/flymake-proc.el
(flymake-proc-create-temp-with-folder-structure):
Unquote file-name.  (Bug#33524)
2018-12-17 11:56:05 +01:00
João Távora
7407f89fe7 Allow per-diagnostic overlay properties in Flymake
* lisp/progmodes/flymake.el (Version): Bump to 1.0.3.
(flymake--diag): Add new field overlay-properties.
(flymake-make-diagnostic): New optional arg overlay-properties.
(flymake--highlight-line): Use it.
2018-12-13 00:10:50 +00:00
Nobuyoshi Nakada
3729a3f88f Support Ruby block arguments ending with , or *
* lisp/progmodes/ruby-mode.el (ruby-smie--forward-token):
Recognize punctuation before "closing-|" as a separate token.
(ruby-smie--backward-token): Same (bug#33487).

* test/lisp/progmodes/ruby-mode-tests.el
(ruby-forward-sexp-jumps-do-end-block-with-no-args)
(ruby-backward-sexp-jumps-do-end-block-with-no-args)
(ruby-forward-sexp-jumps-do-end-block-with-empty-args)
(ruby-backward-sexp-jumps-do-end-block-with-empty-args)
(ruby-forward-sexp-jumps-do-end-block-with-args)
(ruby-backward-sexp-jumps-do-end-block-with-args)
(ruby-forward-sexp-jumps-do-end-block-with-any-args)
(ruby-forward-sexp-jumps-do-end-block-with-expanded-one-arg)
(ruby-forward-sexp-jumps-do-end-block-with-one-and-any-args)
(ruby-backward-sexp-jumps-do-end-block-with-one-and-any-args):
New tests.
2018-12-11 03:14:35 +02:00
Glenn Morris
037aabba49 Merge from origin/emacs-26
2075864 (origin/emacs-26) CC Mode: stop extra parens on expression ca...
2018-12-10 09:43:05 -08:00
Glenn Morris
e60fc320e3 Merge from origin/emacs-26
5a7451c CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer t...
b0ed9d1 * lisp/emacs-lisp/cursor-sensor.el: Add motivation
2018-12-10 09:43:05 -08:00
Alan Mackenzie
2075864c77 CC Mode: stop extra parens on expression causing false fontification as type
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): recognize
arithmetic operator followed by several open parentheses, not just one, as not
being an argument list.
2018-12-10 14:30:40 +00:00
Alan Mackenzie
5a7451c383 CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer to type a"
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When testing for an
identifier after "a *", on failure additionally check for a digit, setting a
new flag variable got-number if one is found.  In the test for CASE 18, check
this flag.
2018-12-10 12:12:02 +00:00
Alan Mackenzie
f6a69957d6 CC Mode: Compensate for backward-sexp ignoring trailing commas after {...}
This fixes bug #32808.

* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): New variable
comma-delimited, set when we're about to scan backward over a comma.  Do not
reckon a brace block as bounding a statement when it is followed or preceded
by a comma (except when argument comma-delim is non-nil).
(c-guess-basic-syntax, CASE 9C): Call c-beginning-of-statement-1 with argument
comma-delim changed to non-nil.
2018-12-07 17:39:38 +00:00
João Távora
8e8b811538 Keep Flymake compatible with Emacs 26.1 builds --without-x
* lisp/progmodes/flymake.el (flymake-double-exclamation-mark):
Don't define if 'define-fringe-bitmap isn't fbound.
(Version): Bump to 1.0.2
2018-12-06 12:51:16 +00:00