Commit graph

10231 commits

Author SHA1 Message Date
Eli Zaretskii
dcb11202ac ; * lisp/progmodes/project.el (project-buffers): Doc fix. 2022-11-04 15:56:30 +02:00
Dmitry Gutov
a248eb3d18 ; Minor rephrase 2022-11-04 12:41:00 +02:00
Dmitry Gutov
7d47651d01 project-buffers: Describe the default implementation
* lisp/progmodes/project.el (project-buffers):
Describe what the default implementation is doing (bug#58784).
2022-11-04 03:16:36 +02:00
Dmitry Gutov
ef45bfacb2 project-kill-buffer-conditions: Skip Gnus modes as well
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Skip Gnus modes as well (bug#58839).
2022-11-04 03:03:29 +02:00
Dmitry Gutov
44f23dac25 project-kill-buffer-conditions: Skip hidden ones
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Make exception for "hidden" buffers (bug#58839).
2022-11-04 02:59:12 +02:00
Juri Linkov
969d71d11c Add the parameter :noquery to open-network-stream (bug#58948)
* doc/lispref/processes.texi (Network): Add :noquery for open-network-stream.

* lisp/net/network-stream.el (open-network-stream): Pass the
parameter :noquery to make-network-process.  Doc fix.

* lisp/progmodes/eglot.el (eglot--connect): Pass `:noquery t' to
eglot--inferior-bootstrap to use in open-network-stream call, like
`:noquery t' is passed to make-process in other places.
2022-11-02 20:22:10 +02:00
Dmitry Gutov
835295381b project-switch-project: Avoid altering default-directory in cb
* lisp/progmodes/project.el (project-switch-project):
Avoid altering default-directory in the current buffer, even
temporarily (bug#58784).
2022-11-02 01:30:08 +02:00
Stephen Leake
4cc32937c0 Fix eglot-shutdown-all: Match current eglot-shutdown signature 2022-10-31 17:30:02 -07:00
Stefan Kangas
e5da2c3d61 Prefer defvar-keymap in simula.el
* lisp/progmodes/simula.el (simula-mode-map): Prefer
defvar-keymap.
2022-10-30 21:33:35 +01:00
Stefan Kangas
e6881f2e15 ; Delete duplicate definition from simula.el
* lisp/progmodes/simula.el (simula-mode-menu): Delete duplicate
menu definition.
2022-10-30 21:33:35 +01:00
Stefan Kangas
16686bdb86 Prefer defvar-keymap in etags.el
* lisp/progmodes/etags.el (select-tags-table-mode-map): Prefer
defvar-keymap.
2022-10-30 13:16:03 +01:00
Stefan Kangas
81d7827f34 Prefer defvar-keymap in ps-mode.el
* lisp/progmodes/ps-mode.el (ps-mode-map, ps-run-mode-map): Prefer
defvar-keymap.
2022-10-29 17:08:51 +02:00
Alan Mackenzie
dfde4fc82b c-get-fontification-context: Refine the last non-default arm of the cond
This fixes bug #58772.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Make the function
return (decl . nil) when MATCH-POS is in the second paren list of something
like DEFUN (..) (..).  Tidy up untidy code with save-excursion's for greater
accuracy.  Set a c-type text property value c-decl-arg-start to speed up
future calls.  Reindent the entire function.
2022-10-29 10:04:37 +00:00
Stefan Kangas
aa23bf987a ; Minor cleanups in make-mode.el
* lisp/progmodes/make-mode.el
(makefile-query-one-target-method-function)
(makefile-insert-macro, makefile-insert-target)
(makefile-insert-target-ref, makefile-backslash-region)
(makefile-browser-next-line, makefile-browser-previous-line)
(makefile-remember-target): Minor cleanups.
2022-10-29 03:42:46 +02:00
Stefan Kangas
cabb496d6e Remove redundant requires from make-mode.el
* lisp/progmodes/make-mode.el (imenu, dabbrev, add-log): Remove
redundant requires.
2022-10-28 22:30:31 +02:00
Stefan Kangas
4fc5670a72 Minor doc fixes in make-mode.el
* lisp/progmodes/make-mode.el:
(makefile-insert-macro, makefile-pickup-everything)
(makefile-backslash-region): Minor doc fixes.
(makefile-browse): Use substitute-command-keys.
2022-10-28 22:23:08 +02:00
Stefan Kangas
bf0e4d1b03 Prefer defvar-keymap in make-mode.el
* lisp/progmodes/make-mode.el (makefile-mode-map)
(makefile-browser-map): Prefer defvar-keymap.
2022-10-28 22:23:08 +02:00
Stefan Kangas
6f42782a57 Prefer make-temp-name in make-mode.el
* lisp/progmodes/make-mode.el
(makefile-generate-temporary-filename): Make obsolete in favor of
'make-temp-name'.  Simplify.
(makefile-save-temporary): Don't use above obsolete function.
2022-10-28 22:23:08 +02:00
Stefan Kangas
dee3d93e73 Ensure temp file is deleted in makefile overview
* lisp/progmodes/make-mode.el (makefile-create-up-to-date-overview):
Ensure temp file is always deleted.
2022-10-28 22:23:08 +02:00
Alan Mackenzie
622724e95d CC Mode: Fontify cast types without adding them to c-found-types
* lisp/progmodes/cc-engine.el (c-forward-type): Test for the special new
value `just-one' of c-promote-possible-types, and if found, fontify the type,
but don't add it to c-found-types.
(c-forward-decl-or-cast-1): Add the new &optional parameter inside-macro.
Whilst checking for a cast construct, analyze the text following the closing
paren more rigorously.
Check for, and allow, the closing paren of a macro arglist before the putative
cast construct.

* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): In the lambda
function, pass the parameter inside-macro to c-forward-decl-or-cast-1.

* lisp/progmodes/cc-langs.el (c-primary-expr-regexp-details): New
c-lang-defvar which calculates `c-primary-expr-regexp' and three match
numbers for various sub-expressions in the regexp.
(c-primary-expr-regexp): Now extracted from `c-primary-expr-regexp-details'.
(c-per-++---match, c-per-&*+--match, c-per-\(-match): New
c-lang-defconsts/vars extracted from `c-primary-expr-regexp-details'.
2022-10-28 17:50:33 +00:00
Alan Mackenzie
f9ed80f9d0 CC Mode: Fix wrong fontification of enum foo bar; in Objective C Mode
This fixes bug #58795 and bug #58796.

* lisp/progmodes/cc-langs.el (c-type-prefix-kwds): Add the missing entry for
objc.
2022-10-28 12:15:18 +00:00
Eli Zaretskii
e953490603 ; * lisp/progmodes/gud.el (gud-gdb): Doc fix. (Bug#58826) 2022-10-28 09:23:12 +03:00
kobarity
7ac3d91eb2 Disable completion/ElDoc/FFAP when Python program is running
* lisp/progmodes/python.el (python-completion-at-point)
(python-ffap-module-path, python-eldoc--get-doc-at-point): Add check
using `python-util-comint-end-of-output-p'.
(python-util-comint-end-of-output-p): New function.
* test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt):
Use `python-util-comint-end-of-output-p'.
(python-completion-at-point-while-running-1)
(python-ffap-module-path-1)
(python-ffap-module-path-while-running-1)
(python-eldoc--get-doc-at-point-1)
(python-eldoc--get-doc-at-point-while-running-1): New tests.
(Bug#58713)
2022-10-27 19:04:14 +03:00
Stefan Kangas
db2ed9f333 ; Fix several symbol name typos 2022-10-26 23:04:23 +02:00
Alan Mackenzie
b7e59b9e19 c-find-decl-spots: Replace an arbitrary search limit by a parameter
The old arbitrary limit led to errors thrown whilst fontifying large areas of
syntactic whitespace containing "#undef", as in src/comp.c.

* lisp/progmodes/cc-engine.el (c-find-decl-spots): Replace the limit argument
to two calls of c-forward-syntactic-ws by the parameter `cfd-limit'.
2022-10-26 16:02:49 +00:00
Basil L. Contovounesios
38bcad5451 Pacify recent unused/ignored lexvar warnings
Lexvars with special names like 'ignored' or 'unused' are no longer
treated specially.

* lisp/ansi-color.el (ansi-color-process-output):
* lisp/cus-edit.el (customize-apropos-options):
* lisp/cus-theme.el (customize-create-theme):
* lisp/dired-aux.el (dired-hide-all):
* lisp/emacs-lisp/crm.el (crm--choose-completion-string):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-revert):
* lisp/ido.el (ido-choose-completion-string):
* lisp/international/mule-diag.el (describe-font-internal):
* lisp/mail/sendmail.el (sendmail-user-agent-compose):
* lisp/progmodes/fortran.el (fortran-uncomment-region):
* lisp/progmodes/prolog.el (prolog-inferior-guess-flavor):
* lisp/progmodes/ruby-mode.el (ruby-indent-line, ruby-indent-exp):
* lisp/url/url.el (url-mm-callback):
* lisp/xwidget.el (xwidget-webkit-history-reload): Prepend an
underscore to unused function parameter names.
* lisp/emacs-lisp/cconv.el (cconv--dummy-var): Remove unused
constant.
* lisp/files.el (hack-local-variables-filter): Remove unused lexvar.
2022-10-26 16:35:59 +03:00
Stefan Kangas
c8fe6aae0a eglot: Prefer ensure-list on Emacs 28 or later
* lisp/progmodes/eglot.el (eglot--ensure-list): Make into alias
for 'ensure-list' on Emacs 28 or later.
2022-10-25 16:42:58 +02:00
Robert Pluim
8c3b8c3667 Fix eglot defcustom types
* lisp/progmodes/eglot.el (eglot-autoreconnect): Allow for 'nil'.
(eglot-connect-timeout): Allow for 'nil' and add descriptions.
(eglot-sync-connect): Split boolean into 'nil' and 't' and add descriptions.
(eglot-confirm-server-initiated-edits): Change 'symbol' type to 'const'.
2022-10-25 16:22:07 +02:00
Alan Mackenzie
1e1be54156 Test face name variables are bound before using them in cc-fonts.el
This fixes bug #58641.

Also, set c-reference-face-name to font-lock-constant face in preference to
c-label-face-name.

* lisp/progmodes/cc-fonts.el (c-preprocessor-face-name, c-label-face-name)
(c-constant-face-name, c-reference-face-name): Test variables with the same
name as font-lock faces are bound before accessing their values.
(c-reference-face-name): Use font-lock-constant face in preference to
c-label-face-name.
2022-10-25 13:30:45 +00:00
Robert Pluim
5b90a718ee * lisp/progmodes/eglot.el: Remove not very funny joke. 2022-10-25 15:16:55 +02:00
Brian Leung
bb95e597a9 eglot-server-programs: Account for new ts-mode
At the time of writing, this exists only in the unmerged tree-sitter
branch.  It is not harmful to include, however.

* lisp/progmodes/eglot.el (eglot-server-programs): Add new major mode
to be used with the typescript-language-server.  (Bug#58769)
2022-10-25 12:13:25 +02:00
Brian Leung
566e410287 eglot-server-programs: Account for new js-json-mode
js-json-mode derives from js-mode, so this reordering is necessary to
prevent js-mode's eglot server from starting if a user has something
like this in their config:

    (add-to-hook 'js-json-mode #'eglot-ensure)
    (add-to-hook 'js-mode #'eglot-ensure)

* lisp/progmodes/eglot.el (eglot-server-programs): Move the
json-language-server info before the entry for js-mode, and add on
js-json-mode.  (Bug#58769)
2022-10-25 12:13:25 +02:00
João Távora
0b1eda215d Fix M-x eglot breakage due to typo
* lisp/progmodes/eglot.el (eglot): Fix bug.
2022-10-25 10:34:08 +01:00
Stephen Leake
31945b6c3f * lisp/progmodes/eglot.el (eglot): Ensure managed-major-mode is a list 2022-10-25 02:15:13 -07:00
Stefan Monnier
9bfe00dda6 * lisp/progmodes/compile.el (compilation-mode-line-errors): Use defvar
This is not really a constant, e.g. it's modified in `grep.el`.
2022-10-24 14:25:02 -04:00
Mauro Aranda
4b40b790ae Fix last change in perl-mode
* lisp/progmodes/perl-mode.el (perl--syntax-exp-intro-regexp): Escape
$.  Reported by Mattias Engdegård.
2022-10-21 07:45:27 -03:00
Brian Leung
3ad9ac25a8 Add the "nil" language server to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add the "nil"
language server.  Put it before rnix-lsp since it is more featureful
and more actively updated.  (Bug#58676)
Ref: https://github.com/oxalica/nil
2022-10-21 10:20:20 +02:00
Brian Leung
81177e77cf Add lua-language-server to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add
lua-language-server.  It is, at the time of writing, more actively
developed and more popular than the lua-lsp server, so prioritize
that.  (Bug#58676)
2022-10-21 10:20:20 +02:00
Eli Zaretskii
1324baea72 Add Eglot to the menu bar
* lisp/progmodes/eglot.el (eglot): Improve the doc string.
* lisp/menu-bar.el (menu-bar-tools-menu): Add Eglot to the menu.
2022-10-20 20:50:34 +03:00
João Távora
8b3a700327 ; fix warning about order of defvaralias/defconst
* lisp/progmodes/eglot.el (eglot-{}): Declare alias before thing
  being aliased.
2022-10-20 13:49:49 +01:00
João Távora
0186faf2a1 ; Merge from https://github.com/joaotavora/eglot 2022-10-20 12:16:19 +01:00
Mauro Aranda
7ee5b0f85f Improve HERE document detection in perl-mode
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Detect indented HERE documents when using a bare identifier.
(perl--syntax-exp-intro-keywords): Recognize HERE documents that come
after die, warn and eval.
(perl--syntax-exp-intro-regexp): Identify HERE documents when printing
to a filehandle with printf? and when they appear after a fat comma.

* test/lisp/progmodes/cperl-mode-resources/here-docs.pl: Add more tests.
2022-10-20 07:34:38 -03:00
João Távora
806734c1b1 Expose eglot-{} to be used in eglot-workspace-configuration
* eglot.el (eglot-{}): New variable alias.

GitHub-reference: per https://github.com/joaotavora/eglot/issues/1084
2022-10-20 11:10:06 +01:00
João Távora
9801e217f9 Rework header of eglot.el
* eglot.el (Commentary): Rework.
2022-10-20 10:50:47 +01:00
João Távora
eb9d6281b5 Do use eglot-connect-timeout if eglot-sync-connect is t
Reported by Eli Zaretskii <eliz@gnu.org>

* eglot.el (eglot--connect): Use eglot-connect-timeout in the case
eglot-sync-connect is t.
2022-10-20 10:50:47 +01:00
Stefan Kangas
25cf39162e Prefer defvar-keymap in modula2.el
* lisp/progmodes/modula2.el (m2-mode-map): Prefer defvar-keymap.
2022-10-20 09:36:11 +02:00
Alan Mackenzie
fb8276a17c CC Mode: Cease adding types to found-types too eagerly
This fixes bug #58537 and bug #58539.

* lisp/progmodes/cc-engine.el (c-forward-type): Remove trailing whitespace
from an identifier before passing it to c-add-type.
(c-forward-decl-or-cast-1): CASE 3: Do not recognize two consecutive
identifiers as type + variable/function unless certain conditions are met.
CASE 10: Do not recognize the "type" as a found type unless certain condtions
are met.  (Near end): Do not recognize the identifier in a cast as a type
unless certain conditions are met.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Recognize being
in declaration parens when there is a syntactially wrong "foo ((bar))"
preceding the match position.

* lisp/progmodes/cc-mode.el (c-update-new-id): Set c-new-id-is-type
unconditionally to nil to prevent a second identifier being wrongly marked as
a type.
2022-10-19 14:52:14 +00:00
Alan Mackenzie
baa39e4849 * lisp/progmodes/cc-defs.el Remove setting of inhibit-point-motion-hooks 2022-10-18 10:00:26 +00:00
Alan Mackenzie
c2b79d9148 CC Mode: Don't fontify as types variables with the same names as struct tags
This fixes bug #58534.

* lisp/progmodes/cc-engine.el (c-forward-type): Only regard "struct" keywords
which create self contained types (e.g. C++'s "typename") as creating found
types.

* lisp/progmodes/cc-langs.el (c-self-contained-typename-kwds
(c-self-contained-typename-key): New language consts and variable.
2022-10-17 20:33:26 +00:00
Stefan Kangas
1e9341672d Prefer defvar-keymap in fortran.el
* lisp/progmodes/fortran.el (fortran-mode-map): Prefer
defvar-keymap.
2022-10-17 20:24:55 +02:00