Commit graph

8606 commits

Author SHA1 Message Date
Harald Jörg
c4c9a60c13 cperl-mode: Avoid abbrev expansion in variable names
* lisp/progmodes/cperl-mode.el (cperl-electric-else): Don't expand
scalar variables like '$continue' as keywords.  (Bug#47902)
* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-hyperactive-electric-else): Verify that keywords are
expanded but variable names aren't.
2021-04-20 22:47:13 +02:00
Stefan Kangas
0a4dc70830 ; Normalize and add missing first and last lines 2021-04-19 12:21:01 +02:00
Stefan Kangas
07bb2cbf55 Don't hard-code "~/.emacs.d/" in two more places
* lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group):
* lisp/progmodes/js.el (js-js-tmpdir): Don't hard-code
"~/.emacs.d/".
2021-04-19 09:50:13 +02:00
Philipp Stephani
6ebc6e12cf Add quoted filename support to 'project-find-regexp' (Bug#47799).
This is only a band-aid; it would be better to fix xref.el to work
with quoted filenames as well.

* lisp/progmodes/project.el (project--find-regexp-in-files): Unquote
filenames before passing them to 'xref-matches-in-files'.
* test/lisp/progmodes/project-tests.el (project/quoted-directory):
Also test 'project-find-regexp'.
2021-04-18 21:59:25 +02:00
Stefan Kangas
fb9f5501d8 ; Fix typos: emacs lisp -> Emacs Lisp 2021-04-16 14:54:02 +02:00
Stefan Kangas
289ec2d911 ; Remove some useless comments 2021-04-16 14:54:02 +02:00
Dmitry Gutov
f955df1788 Improve quoting of directory names in project/xref
* lisp/progmodes/project.el (project--files-in-directory):
Quote LOCALDIR a bit earlier, to affect
xref--find-ignores-arguments as well (bug#47799).

* lisp/progmodes/xref.el (xref-matches-in-directory):
Quote the dir passed to xref--rgrep-command.
2021-04-16 03:52:44 +03:00
Dmitry Gutov
4180429d5d project--files-in-directory: Handle errors reported by 'find'
* lisp/progmodes/project.el (project--files-in-directory):
Handle errors reported by 'find' (bug#47799).
2021-04-16 03:38:23 +03:00
Philipp Stephani
157bfc1812 Improve project support for quoted directory names (Bug#47799)
* lisp/progmodes/project.el (project--files-in-directory): Unquote
directory name before passing it to 'find'.
(project--remote-file-names): Requote local filenames if the original
directory is quoted.
* test/lisp/progmodes/project-tests.el (project/quoted-directory): New
unit test.
2021-04-15 18:41:04 +02:00
Alan Mackenzie
31f8ae53be CC Mode: Put debug specs inside declare forms. Add missing debug specs.
* lisp/progmodes/cc-bytecomp.el, lisp/progmodes/cc-cmds.el,
lisp/progmodes/cc-defs.el, lisp/progmodes/cc-engine.el,
lisp/progmodes/cc-fonts.el, lisp/progmodes/cc-langs.el,
lisp/progmodes/cc-mode.el: Change the explicit def-edebug-spec for many macros
into a (declare (debug ...) ..) form.  Add such forms to macros which were
previously lacking def-edebug-spec forms.
2021-04-15 10:11:20 +00:00
Filipp Gunbin
57347554a1 Java Mode: Change the syntax of character @ to prefix syntax
lisp/progmodes/cc-langs.el (c-make-mode-syntax-table): Change the syntax of @
as indicated.
2021-04-14 19:27:00 +00:00
Juri Linkov
94586ba26f * lisp/progmodes/gud.el (gud-repeat-map): New variable (bug#47688).
(gud-gdb): Populate gud-repeat-map with repeating keys.
2021-04-14 21:11:45 +03:00
Wilson Snyder
3cb0229d75 * lisp/progmodes/verilog-mode.el (vl-memory): Add missing defvar. 2021-04-12 13:36:05 -04:00
Stefan Monnier
07671edbf0 * lisp/progmodes/vhdl-mode.el: Add note about XEmacs compatibility 2021-04-12 10:46:07 -04:00
Lars Ingebrigtsen
72db25ef54 Adjust verilog-mode to changes in the completion framework
* lisp/progmodes/verilog-mode.el (verilog-func-completion): Don't
bug out on `C-M-i' (which expects no point movement) (bug#47652).
(verilog-declaration-end): There may be no semicolons; don't bug out.
2021-04-12 11:45:33 +02:00
Shitikanth Kashyap
f2ab4cec7a Fix python-shell-switch-to-shell redisplay bug
* lisp/progmodes/python.el (python-shell-switch-to-shell):
Redisplay the switched-to window faster (bug#47679).

Copyright-paperwork-exempt: yes
2021-04-12 10:43:42 +02:00
Stefan Monnier
c45bfd3c4a * lisp/**/*.el: Avoid positional args to define-minor-mode
Back in Emacs-21.1, `define-minor-mode` grew keywords arguments to
replace its old positional arguments.  Let's make sure we don't use
the old-style any more.

* lisp/org/ox-beamer.el (org-beamer-mode-map): Move initialization
into declaration.
(org-beamer-mode):
* lisp/textmodes/tildify.el (tildify-mode):
* lisp/textmodes/sgml-mode.el (html-autoview-mode):
* lisp/textmodes/rst.el (rst-minor-mode):
* lisp/textmodes/remember.el (remember-notes-mode):
* lisp/textmodes/ispell.el (ispell-minor-mode):
* lisp/tar-mode.el (tar-subfile-mode):
* lisp/strokes.el (strokes-mode):
* lisp/so-long.el (so-long-minor-mode):
* lisp/shell.el (shell-dirtrack-mode):
* lisp/scroll-all.el (scroll-all-mode):
* lisp/ruler-mode.el (ruler-mode):
* lisp/rect.el (rectangle-mark-mode):
* lisp/progmodes/sh-script.el (sh-electric-here-document-mode):
* lisp/outline.el (outline-minor-mode):
* lisp/org/org.el (org-cdlatex-mode):
* lisp/org/org-table.el (org-table-header-line-mode)
(org-table-follow-field-mode, orgtbl-mode):
* lisp/org/org-src.el (org-src-mode):
* lisp/org/org-list.el (org-list-checkbox-radio-mode):
* lisp/org/org-indent.el (org-indent-mode):
* lisp/org/org-capture.el (org-capture-mode):
* lisp/obsolete/pc-select.el (pc-selection-mode):
* lisp/obsolete/iswitchb.el (iswitchb-mode):
* lisp/net/rcirc.el (rcirc-omit-mode, rcirc-multiline-minor-mode)
(rcirc-track-minor-mode):
* lisp/net/goto-addr.el (goto-address-mode, goto-address-prog-mode):
* lisp/image-mode.el (image-minor-mode):
* lisp/ibuf-ext.el (ibuffer-auto-mode):
* lisp/gnus/gnus-cite.el (gnus-message-citation-mode):
* lisp/font-core.el (font-lock-mode):
* lisp/erc/erc.el (define-erc-module):
* lisp/erc/erc-track.el (erc-track-minor-mode):
* lisp/erc/erc-fill.el (erc-fill-mode):
* lisp/epa-mail.el (epa-mail-mode):
* lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode):
* lisp/dirtrack.el (dirtrack-mode, dirtrack-debug-mode):
* lisp/dired-aux.el (dired-isearch-filenames-mode):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-mode):
* lisp/cedet/semantic/decorate/mode.el (semantic-decoration-mode):
* lisp/autoarg.el (autoarg-mode, autoarg-kp-mode):
* lisp/vc/pcvs.el (cvs-minor-mode):
Avoid old-style positional args to `define-minor-mode`.
2021-04-11 23:47:14 -04:00
Stefan Monnier
828e688bef * lisp/progmodes/sql.el (sql-mode-ansi-font-lock-keywords): Fix declaration 2021-04-11 22:34:58 -04:00
Stefan Monnier
4315a0bb26 * lisp/progmodes/bug-reference.el: Avoid old-style define-minor-mode
(bug-reference-mode, bug-reference-prog-mode): Remove redundant args.
2021-04-11 18:02:34 -04:00
Alan Mackenzie
3f5fe0cdfc Convert CC Mode to lexical binding in Emacs
lisp/progmodes/cc-align.el, lisp/progmodes/cc-awk.el,
lisp/progmodes/cc-bytecomp.el, lisp/progmodes/cc-cmds.el,
lisp/progmodes/cc-defs.el, lisp/progmodes/cc-engine.el,
lisp/progmodes/cc-fonts.el, lisp/progmodes/cc-guess.el,
lisp/progmodes/cc-langs.el, lisp/progmodes/cc-menus.el,
lisp/progmodes/cc-mode.el, lisp/progmodes/cc-styles.el,
lisp/progmodes/cc-subword.el, lisp/progmodes/cc-vars.el: Mark these files with
a `lexical-binding' setting in line 1.

lisp/progmodes/cc-align.el, lisp/progmodes/cc-engine.el,
lisp/progmodes/cc-vars.el (c-syntactic-context, c-syntactic-element): Declare
these as special variables.

lisp/progmodes/cc-bytecomp.el (cc-bytecomp-debug-msg): prefix the parameter
ARGS with a _, and remove an `ignore' call.

lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Remove `kluge-start',
an unused variable.
(c-while-widening-to-decl-block): Add an extra parameter, which suppresses
the generation of a setting of variable `where'.
(c-defun-name-and-limits): Remove variable `where' from the function and use
the new argument to the previous macro.

lisp/progmodes/cc-engine.el (c-cache-to-parse-ps-state): Remove two unneeded
variables, `last' and `intermediate'.

lisp/progmodes/cc-fonts.el (c-font-lock-c++-using): Remove unused variable.

lisp/progmodes/cc-langs.el (c-vsemi-status-unknown-p-fn): Replace the doc
string with the more precise one from stand-alone CC Mode.

lisp/progmodes/cc-styles.el (c-set-offset): Give the `ignored' parameter a
leading _.
2021-04-10 19:20:14 +00:00
João Távora
c50b5907e0 Fail earlier if stale Flymake report functions called
If a Flymake backend calls a "stale" report function,
flymake--handle-report might be called for a backend function that is
no longer in the flymake--backend-state hash table.  This patch makes
that erroneous situation slightly more explicit.

* lisp/progmodes/flymake.el (flymake--handle-report): Improve
error reporting.
2021-04-10 11:19:34 +01:00
Dmitry Gutov
0db2126d71 Don't stop when before space or closing paren
* lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
Don't stop when before space or closing paren (bug#47665).
2021-04-10 01:51:39 +03:00
Alan Mackenzie
f493a9bef4 CC Mode: fix c-where-wrt-brace-construct to cope with class declarations
Make the function correctly recognize a brace block preceded by an
introductory line without a parameter list.

* lisp/progmodes/cc-cmds.el (c-where-wrt-brace-contruct): Reintroduce the use
of c-beginning-of-decl-1, which was removed some weeks ago, in place of a
c-syntactic-skip-backward.  Reformulate the code generally.
2021-04-09 20:52:49 +00:00
Stefan Monnier
e7ee3f7330 Merge branch 'vhdl-mode-lexbind' into trunk 2021-04-09 10:26:42 -04:00
Stefan Kangas
caeb86b439 * lisp/progmodes/cmacexp.el: Use lexical-binding. 2021-04-09 15:20:56 +02:00
Stefan Monnier
5b1e7af7bf * lisp/progmodes/vhdl-mode.el: Use lexical-binding
Use #' to quote function names to get better compiler diagnostics.
Wrap some lines to avoid arguments "hidden" in positions that are easy
to misread.
Prefix unused arguments with a semi-colon to silence compiler warnings.
Fix a few comments that used ;;; even though they were not headings.

(vhdl-emacs-21): Delete variable.
Replace all uses with (not (featurep 'xemacs)) instead since `vhdl-mode`
has been incompatible with Emacs<21 for more than 10 years already.
(vhdl-prepare-search-1): Add Edebug declaration.
(vhdl-prepare-search-2): Add Edebug declaration and use
`with-syntax-table`.
(vhdl-visit-file): Add Edebug and indentation declaration.
Move the bulk of the code to a function for easier debugging.
(vhdl--visit-file): New function extracted from `vhdl-visit-file`.
Be careful not to modify syntax tables in unrelated buffers.
(vhdl-speedbar-refresh): Remove unused var `pos`.
(vhdl-backward-sexp): Remove unused var `last-forward`.
(vhdl-electric-tab, vhdl-minibuffer-tab, vhdl-line-expand):
Rename arg to avoid conflict with the `prefix-arg`
global variable.
(vhdl-align-region-1): Remove unused var `indent`.
(vhdl-character-to-event): Actually give a body to that poor function.
(vhdl-template-context): Remove unused vars `entity-exists` and `string`.
(vhdl-template-group): Remove unused var `start`.
(vhdl-template-argument-list): Remove unused var `start`.
(vhdl-port-paste-context-clause): Remove unused var `margin`.
(vhdl-port-paste-testbench): Remove unused var `source-buffer`.
(vhdl-hs-minor-mode): Declare function `hs-hide-all`.
(vhdl-get-hierarchy): Rename arguments `ent-alist`, `conf-alist`, and
`conf-key` and bind those dynamically scoped var via `let` instead
since arguments can't be dynamically scoped.
(vhdl-speedbar-insert-hierarchy, vhdl-compose-configuration-architecture):
Same thing with arguments `ent-alist` and `conf-alist`.
(vhdl-cache-version): Declare variable.
(speedbar-expand-line, speedbar-edit-line): Declare functions.
(vhdl-speedbar-update-current-unit): Declare before first use.
(vhdl-compose-new-component): Remove unused var `project`.
(lazy-lock-minimum-size): Declare variable.
(vhdl-submit-bug-report): Declare variable `reporter-prompt-for-summary-p`.
2021-04-08 19:43:20 -04:00
Stefan Monnier
d365c947b5 * lisp/progmodes/vhdl-mode.el: Use progress-reporter
This was actually prompted by a backward compatibility problem
(because of the use of Emacs-27's `time-convert`).  The new code
seems to work fine in Emacs-25.
It also fixes a minor bug that made the echo area messages of
`vhdl-indent-region` compete with those of `indent-region`.

(vhdl-progress-info): Delete variable.
(vhdl--progress-reporter): New var to replace it.
(vhdl-update-progress-info): Delete function.
(vhdl-indent-line): Call progress-reporter-update instead.
(vhdl-indent-region): Make it an obsolete alias of `indent-region`.
Change all users.
(vhdl-align-region-groups, vhdl-align-region, vhdl-fix-case-region-1):
Use `make-progress-reporter` and `progress-reporter-update`.
2021-04-08 14:44:37 -04:00
Dmitry Gutov
1ff7cde102 Add explicit support for C-g or ESC ESC ESC after keymap prompt
* lisp/progmodes/project.el (project-switch-project):
Add explicit support for C-g or ESC ESC ESC after keymap prompt
(bug#47620).
2021-04-07 03:25:18 +03:00
Dario Gjorgjevski
5d293f4f74 Allow complex key bindings in project-switch-project
* lisp/progmodes/project.el (project-switch-project): Replace
read-event with an overriding local map and read-key-sequence to allow
for complex key bindings to be read (bug#47620).
2021-04-07 03:24:49 +03:00
Stefan Monnier
ccd616aeb0 * lisp/progmodes/ps-mode.el: Use lexical-binding
And prefer #' to quote function names.
2021-04-06 14:05:58 -04:00
Dario Gjorgjevski
ddc4bba413 Do not search the global keymap in project--keymap-prompt
* lisp/progmodes/project.el: (project--keymap-prompt) Pass
project--keymap-prompt as a list to where-is-internal so that the
global keymap is not searched at all (bug#47501).
2021-04-05 18:15:16 +02:00
Stefan Kangas
6686a31591 Remove local uniquify functions in favour of seq-uniq
* lisp/emacs-lisp/seq.el (seq-uniq): Add autoload cookie.
* lisp/pcomplete.el: (pcomplete-uniquify-list): Use seq-uniq.
* lisp/eshell/esh-util.el (eshell-uniqify-list)
(eshell-uniquify-list):
* lisp/nxml/rng-util.el (rng-uniquify-equal):
* lisp/progmodes/idlwave.el (idlwave-uniquify):
* lisp/textmodes/artist.el (artist-uniq): Make into obsolete
function aliases for seq-uniq.  Update callers.
* lisp/nxml/rng-util.el (rng-uniquify-eq): Make obsolete in favor
of seq-uniq.  Update callers.
2021-04-05 15:14:19 +02:00
Harald Jörg
258a17855b cperl-mode: Don't reposition the window when writing messages
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Avoid
printing messages while point is off-screen (Bug#47549).
2021-04-04 22:19:01 +02:00
Stefan Monnier
0b613c90a5 * lisp/progmodes/simula.el: Use lexical-binding
(simula-tab-always-indent): Mark as obsolete.
(simula-mode-map): Don't bind TAB.
(simula-indent-command): Mark as obsolete.
(hilit-set-mode-patterns): Remove obsolete support for hilit19.
(simula-mode-syntax-table): Move initialization code into the declaration.
2021-04-02 19:51:41 -04:00
Juri Linkov
a789d8a3a0 * lisp/progmodes/xref.el: Change xref-file-name-display and xref-match face.
* lisp/progmodes/xref.el (xref-file-name-display): Change the default value
to 'project-relative' (bug#47012).
(xref-match)<face>: Inherit from 'match'.
2021-04-02 11:25:05 +03:00
Dmitry Gutov
4798dc0c51 Fix C-u project-find-regexp's default dir
* lisp/progmodes/project.el (project-find-regexp):
Default read-directory-name to the current default-directory when
called with C-u (bug#47012).
2021-04-02 01:24:57 +03:00
Stefan Monnier
0c8ea6be09 * lisp/progmodes/cfengine.el: Use lexical-binding 2021-04-01 18:16:52 -04:00
Stefan Monnier
cf1ac9d830 * lisp/progmodes/dcl-mode.el: Clarify what is meant by DCL 2021-04-01 17:23:55 -04:00
Stefan Kangas
33f00364cf Use lexical-binding in executable.el and add tests
* lisp/progmodes/executable.el: Use lexical-binding.
* test/lisp/progmodes/executable-tests.el: New file.
2021-04-01 19:55:32 +02:00
Stefan Kangas
4a538c4861 Remove redundant #' before lambda in progmodes/*.el
* lisp/progmodes/cc-styles.el (c-set-offset):
* lisp/progmodes/ebnf-yac.el (ebnf-yac-token-table):
* lisp/progmodes/ebnf2ps.el (ebnf-format-float, ebnf-map-name):
* lisp/progmodes/grep.el (lgrep, rgrep-default-command):
* lisp/progmodes/inf-lisp.el:
* lisp/progmodes/octave.el (octave-lookfor):
* lisp/progmodes/python.el (python-pdbtrack-tracking-finish): Remove
redundant #' before lambda.
2021-04-01 16:26:44 +02:00
Stefan Monnier
c1ce074763 * lisp/progmodes/dcl-mode.el: Use lexical-binding
(dcl-guess-option-value, dcl-save-local-variable)
(dcl-save-nondefault-options): Strength-reduce `eval` to `symbol-value`.
2021-03-31 18:15:28 -04:00
Stefan Kangas
f236b516b6 Use lexical-binding in progmodes/inf-lisp.el
* lisp/progmodes/inf-lisp.el: Use lexical-binding.  Doc fixes.
(inferior-lisp-mode-map, lisp-mode-map)
(inferior-lisp-install-letter-bindings): Quote function symbols as such.
(inferior-lisp-menu, lisp-compile-string, lisp-eval-string)
(lisp-show-variable-documentation): Doc fixes.
2021-03-31 12:59:37 +02:00
Luke Lee
8ac3132957 Fix incorrect regular expression for more general text replacements.
* lisp/progmodes/hideif.el (hif-evaluate-macro): fix regexp to trim
  off leading/trailing spaces, but not within.
2021-03-31 11:42:33 +08:00
Stefan Kangas
d47db03829 * lisp/progmodes/cwarn.el: Use lexical-binding. 2021-03-31 00:07:03 +02:00
Mattias Engdegard
c2e90d1119 lisp/progmodes/verilog-mode.el internal code cleanup.
* lisp/progmodes/verilog-mode.el (verilog-at-close-struct-p):
Internal code cleanup.
2021-03-30 07:54:41 -04:00
Dmitry Gutov
24c92b35b5 Provide information to show icons with Elisp completions
* lisp/progmodes/elisp-mode.el (elisp--company-kind): New function.
(elisp-completion-at-point): Use it.  And a couple of anonymous
:company-kind functions too.
2021-03-30 03:42:11 +03:00
Stefan Monnier
5a5cccb6ac lisp/progmodes/verilog-mode.el: Prepare for lexical-binding.
* lisp/progmodes/verilog-mode.el: Activate lexical-binding.
Insert newlines to avoid some situations where arguments were easy
to misunderstand.
(verilog-set-compile-command): Strength-reduce `eval` to `symbol-value`.
(verilog-error-regexp-add-emacs): Replace `mapcar` => `mapc` since
the result is not used.
(verilog-surelint-off): Remove always-nil var `dir`.
(verilog-do-indent): Minor simplification of the code.
(verilog-pred): Delete var.  It was always nil.
(verilog-flag): Delete var; pass the corresponding data via
explicit arguments instead.
(verilog-keyword-completion): Use `dolist`.
(verilog-completion-response): Rename to `verilog--complete-with-action`.
Change calling convention to match that of `complete-with-action`.
Use `complete-with-action` instead when available.
Adjust all callers.
(verilog-completion, verilog-comp-defun): Change arg names so they
don't collide with dynamically scoped vars, and let-bind `verilog-str`
explicitly instead.  Use `with-current-buffer`.
(verilog-batch-execute-func): Use `with-current-buffer`.
(verilog-complete-word): Don't convert the completion list into
a completion alist, since lists work just as well.
(verilog-showscopes): Use `with-current-buffer`.
(verilog-symbol-detick, verilog-symbol-detick-text)
(verilog-signals-matching-enum): Strength-reduce `eval` to `symbol-value`.
(verilog--insert-indent): Rename from `verilog--insert-indent`.
Add `indent-pt` argument.
(verilog-insert-indent): New macro wrapper to provide the old
calling convention.
(verilog-auto-assign-modport, verilog-auto-inout-modport):
Remove always-nil var `direction-re`.
(verilog--auto-inst-first): Rename from `verilog-auto-inst-first`.
Add `indent-pt` argument.
(verilog-auto-inst-port): Adjust call accordingly.
2021-03-29 18:35:01 -04:00
Stefan Monnier
66d04c0438 * lisp/progmodes/verilog-mode.el: Use #' where appropriate. 2021-03-29 18:07:25 -04:00
Wilson Snyder
b4831acebd lisp/progmodes/verilog-mode.el: Fix indentation of enum.
* lisp/progmodes/verilog-mode.el (verilog-at-close-struct-p): Fix
indentation of enum with multiple objects. Reported by punzik. (#1716).
2021-03-29 18:03:33 -04:00
Juri Linkov
b6552b1d7c * lisp/progmodes/project.el (project-regexp-history-variable): New variable.
(project--read-regexp): Use it as HISTORY arg of 'read-regexp' with
'grep-regexp-history' default (bug#47012).
2021-03-29 22:34:51 +03:00