Commit graph

11473 commits

Author SHA1 Message Date
Stefan Kangas
bc69d216c7 Modernize sql-postgres-options docstring
* lisp/progmodes/sql.el (sql-postgres-options): Don't refer to ancient
versions of PostgreSQL released in 1999 and 2001, respectively.
2023-08-24 22:07:44 +02:00
Dmitry Gutov
3907c884f0 project.el: Fixup two recent defcustoms
* lisp/progmodes/project.el (project-file-history-behavior):
Adjust positions inside 'const' forms.
(project-key-prompt-style): Correct the :type form (bug#64799).
2023-08-24 15:26:00 +03:00
Dmitry Gutov
bfafc405fe project-key-prompt-style: New option.
* lisp/progmodes/project.el (project-file-history-behavior):
Add :group and :version tags.
(project-key-prompt-style): New option (bug#64799).

* etc/NEWS: Mention it.
2023-08-23 19:36:56 +03:00
Mattias Engdegård
96ed085982 ; Update vhdl-mode and vera-mode URLs
* lisp/progmodes/vera-mode.el:
* lisp/progmodes/vhdl-mode.el: Update to (currently) working URLs.
2023-08-23 12:32:48 +02:00
Spencer Baugh
8933c1877d Use current file name for more "other project" future history
In the previous commit we added support for using the current buffer's
file name as future history for project-find-file even when switching
to another project with project-switch-project.  Make this work for
project-find-dir and project-or-external-find-file too.

* lisp/progmodes/project.el (project--find-default-from): Add.
(project-find-file, project-or-external-find-file): Use
project--find-default-from with buffer-file-name.
(project-find-dir): Use project--find-default-from with
default-directory.
2023-08-23 05:28:20 +03:00
Spencer Baugh
e3209923c3 Support adjusting file-name-history to the current project
This adds project-file-history-behavior which has the effect described in
its docstring.  Implementing a sort of sharing of file-name-history
between projects.

* lisp/progmodes/project.el (project-file-history-behavior):
New option.  (bug#63829)
(project--transplant-file-name): Add.
(project--read-file-cpd-relative): Move history manipulations to
project--read-file-name.
(project--read-file-name): New function.  Refer to
project-file-history-behavior.
(project-find-file-in, project-find-dir): Use it.
(project-or-external-find-file): Bind the new option to t, to avoid
touching the external file names.

* etc/NEWS: Announce the new option.

Co-authored-by: Dmitry Gutov <dmitry@gutov.dev>
2023-08-23 05:28:20 +03:00
Spencer Baugh
255b7e1a04 Expand project file names before storing them
Before, whatever project-root returned, we stored as the root
directory of the project in project-list and project-list-file.  This
could lead to duplicate entries or bad behavior if projects were
accessed by different file names, e.g. both /home/user/src/emacs and
~/src/emacs.

Now project-list-file contains only expanded paths and project--list
contains only abbreviated paths.  We abbreviate filenames before
setting project--list, and expand filenames before writing to
project-list-file.  We only do this for local files, though, to avoid
making remote connections; the situation will still be bad for remote
projects, but at least this is an improvement.

* lisp/progmodes/project.el (project--write-project-list): Call
expand-file-name.
(project--read-project-list, project-remember-project)
(project--remove-from-project-list): Call abbreviate-file-name.
2023-08-23 03:07:09 +03:00
Jim Porter
357c2fba98 Merge from origin/emacs-29
3296031ad7 ; Another improvement for documentation of pixelwise scro...
baeb2d71ae Support defun navigation for DEFUN in c-ts-mode (bug#64442)
781ddd7e7d Fix touchpad scrolling on MS-Windows
c125bd060e Fix order in which package-vc dependencies are resolved
500ced133a Fix building of VC package manuals with relative org link...
456ecabe9e Fix the documentation of 'cl-flet'
f6ebd1ef0d ; * src/treesit.c (Ftreesit_node_parent): Improve comment...
fac0e2d533 Avoid false "wrong passphrase" messages in EPA
8f683b51d8 Fix jsx font-lock in older tree-sitter-js grammars
d9af79ae39 Fix cloning 'face-remapping-alist' for indirect buffers
636fb267c4 Improve documentation of case transfer in replacement com...
7856d51436 Fix horizontal scrolling of images with C-f
8cf5659ec2 ; Fix defcustom in completion.el
a8c8a4e368 ; * src/fns.c (Fcopy_sequence): Doc fix.  (Bug#64960)
205d87cdca Fix unpacking ZIP archives on MS-Windows
3712e8bc38 ; Fix typos in lisp/keymap.el doc strings (bug#65329).
21b2ecee66 Fix command example in Eshell manual
26949819df ; lisp/progmodes/csharp-mode.el (treesit-query-capture): ...
221ed70b90 ; Improve documentation of 'define-alternatives'
32280205e2 Add user options mentioned in the Eshell manual to the va...
cf3145a486 * Add missing alias to `native-comp-enable-subr-trampolin...
922b649028 * Add missing alias to `native-comp-enable-subr-trampolin...
6962823c83 ; * etc/PROBLEMS: Fix typo and clarify wording.

# Conflicts:
#	doc/misc/eshell.texi
2023-08-21 18:23:11 -07:00
Stefan Kangas
c68d2581d5 Delete some Emacs 19/21 compat code
* lisp/erc/erc-goodies.el (erc-occur):
* lisp/net/newst-plainview.el (newsticker--buffer-redraw): Delete
Emacs 21 compat code.
* lisp/progmodes/sql.el (sql-accumulate-and-indent): Delete Emacs
19 compat code.
2023-08-20 18:39:51 +02:00
Stefan Kangas
fe0d134f48 * lisp/term.el (term--update-term-menu): Simplify. 2023-08-20 18:23:16 +02:00
Yuan Fu
baeb2d71ae
Support defun navigation for DEFUN in c-ts-mode (bug#64442)
Before this change, beginning/end-of-defun just ignores DEFUN in
c-ts-mode. After this change, beginning/end-of-defun can recognize
DEFUN, but a DEFUN definition is considered two defuns. Eg,
beginning/end-of-defun will stop at (1) (2) and (3) in the following
snippet:

(1)DEFUN ("treesit-node-parser",
       Ftreesit_node_parser, Streesit_node_parser,
       1, 1, 0,
       doc: /* Return the parser to which NODE belongs.  */)
  (Lisp_Object node)
(2){
  CHECK_TS_NODE (node);
  return XTS_NODE (node)->parser;
}
(3)

Ideally we want point to only stop at (1) and (3), but that'll be a
lot harder to do.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--defun-valid-p): Refactor to take in account of DEFUN body.
(c-ts-mode--emacs-defun-body-p): New function.
(c-ts-base-mode): Add DEFUN and DEFUN body to recognized types.
(c-ts-mode--emacs-defun-at-point): Now that we recognize both parts of
a DEFUN as defun, c-ts-mode--emacs-defun-at-point needs to be updated
to adapt to it.
2023-08-19 14:55:32 -07:00
dalu
9e0524a882 Add "lexical" LSP server for Elixir to Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add lexical.
It does not support MS-Windows currently.  (Bug#65359)

Copyright-paperwork-exempt: yes
2023-08-19 17:09:15 +03:00
Mattias Engdegård
cc533f2338 Show duration of compilation when it stops (bug#65251)
Patch by Helmut Eller, lightly edited.

* lisp/progmodes/compile.el (compilation--start-time): New variable.
(compilation-start): Set it.
(compilation-handle-exit): Display duration.
2023-08-18 13:23:39 +02:00
dannyfreeman
8f683b51d8 Fix jsx font-lock in older tree-sitter-js grammars
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use
queries that are backwards compatible with
tree-sitter-javascript bb1f97b.
* list/progmodes/js.el
(-jsx--treesit-font-lock-compatibility-bb1f97b): Delete unused
function.  (Bug#65234)
2023-08-17 11:05:00 +03:00
Spencer Baugh
f38bcf37dc (project-find-file): Allow current file name "other project"'s future history
* lisp/progmodes/project.el (project-find-file):
Allow using the relative file name of the current buffer in "other
project" as well (bug#63829).
2023-08-17 04:16:09 +03:00
Dmitry Gutov
155154f6f1 ; * lisp/progmodes/project.el (project-find-file-in): Update docstring. 2023-08-17 04:16:09 +03:00
Mattias Engdegård
5b87950133 Remedy wrong-looking \(:?...\) regexp constructs
When we see \(:?...\) in a regexp it very much looks like a typo
for a \(?:...\) construct and often is, so do something about
all of these (one of which being another mistake).
Doing so silences an optional relint check.

* lisp/comint.el (comint-replace-by-expanded-history-before-point):
* lisp/term.el (term-replace-by-expanded-history-before-point):
Move :? out from capturing group where it does not need to be,
to avoid confusion.
* lisp/emacs-lisp/cl-indent.el (common-lisp-loop-part-indentation):
A capturing group isn't needed here; turn it into simple bracketing.
* lisp/progmodes/sql.el (sql--completion-table):
Change :? into ?: which was clearly meant here.
2023-08-16 16:55:38 +02:00
Daniel Martín
26949819df ; lisp/progmodes/csharp-mode.el (treesit-query-capture): Declare (bug#65297). 2023-08-15 18:47:53 +03:00
Eli Zaretskii
3fc9793a26 Merge from origin/emacs-29
842dbf500e * Fix `batch-byte+native-compile' target directory.
8dbd5aa1ee Avoid crashes in 'display_count_lines' when current buffe...
47b4f4cf78 ; * doc/emacs/mini.texi (Completion Commands): Fix a typo...
78999d5213 Update csharp tree-sitter support due to upstream changes
556cb01b48 Substitute command keys in 'ielm-header' at use time
99367078e5 ; * etc/PROBLEMS: Add entry about XIM problems (bug#65205).
03e897c08f Fix rare crashes in redisplay due to problems with fontsets
b1ba06a1e4 Fix a typo in 'leuven-dark-theme.el'
e80a9dcabb ; * admin/git-bisect-start: Update failing commits
9091f42784 ; * admin/git-bisect-start: Update failing commits
344ac529ca ; * etc/PROBLEMS: Fix typo.
bccf848b26 Adapt Tramp test
71bc060e40 Properly expand the JSX indentation rules in 'js-ts-mode'
889cfb42ed * Add `emacs-lisp-native-compile' to easy-menu.
4535aafa8a * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Si...
173af0cad5 * Introduce `emacs-lisp-native-compile'.
063d7d89d7 Fix the -x switch in non-X builds
5a7fb0b39b Document that `set-mouse-color' does not work everywhere
d06fc72496 ; * doc/emacs/dired.texi (Misc Dired Features): Fix last ...
97b8ac376b Fix the effects and documentation of 'dired-free-space'
75c72e59f6 ; Fix typo
6d11b7b300 Fix cross-reference to eldoc in eglot manual
913e50aba6 Add native-compilation to Emacs Lisp mode menu
b93107c20b Fix emacs-lisp-native-compile-and-load eln target directo...
2023-08-12 13:50:38 -04:00
Stefan Kangas
11be475eee Remove compat code for XEmacs' itimer.el
* lisp/progmodes/idlwave.el (idlwave-update-routine-info)
(idlwave-start-load-rinfo-timer):
* lisp/type-break.el (type-break-cancel-function-timers)
(type-break-run-at-time): Remove XEmacs compat code.
2023-08-12 15:46:17 +02:00
J M
78999d5213 Update csharp tree-sitter support due to upstream changes
A change in tree-sitter-c-sharp grammar for csharp (commit
18a531), has removed the keyword void_keyword and advised
we should use predefined_type.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Support both old and new style of keywords in tree-sitter-c-sharp
grammar.  (Bug#65113)
2023-08-12 10:23:58 +03:00
Dmitry Gutov
28ae8440c6 Unbreak project-find-file's future history when cpd is not root
* lisp/progmodes/project.el (project-find-file): Pass in
buffer-file-name as absolute name (bug#63829).
(project--read-file-cpd-relative): Make it relative to the
appropriate common parent dir.
2023-08-12 03:58:53 +03:00
Dmitry Gutov
0bd58dd2d6 xref-find-references-and-replace: Use identifier-at-point in prompt
* lisp/progmodes/xref.el (xref-find-references-and-replace):
Use identifier-at-point in prompt as defined by backend (bug#63939).
2023-08-12 03:39:32 +03:00
Dmitry Gutov
de093d49f2 (project--keymap-prompt): Use help-key-binding face
* lisp/progmodes/project.el (project--keymap-prompt): Use
help-key-binding face and adjust the prompt to fit (bug#64799).
2023-08-12 03:34:53 +03:00
dannyfreeman
71bc060e40 Properly expand the JSX indentation rules in 'js-ts-mode'
* lisp/progmodes/js.el (js--treesit-indent-rules): Fix
'js-ts-mode' indent bug in JSX expressions. Before this
change, treesit indent mechanisms were trying to call this
compatibility function like a matching or anchor rule.
This resulted in an error when running `indent-for-tab-command`
while the cursor was in a JSX expression:

treesit--simple-indent-eval: Wrong number of
arguments: ((cl-struct-js--pitem-tags ido-cur-list t) nil "Indent rules
helper, to handle different releases of tree-sitter-javascript."

(Bug#65134)
2023-08-10 11:59:13 +03:00
Andrea Corallo
889cfb42ed * Add `emacs-lisp-native-compile' to easy-menu.
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add menu
item for emacs-lisp-native-compile.
2023-08-10 10:39:14 +02:00
Andrea Corallo
4535aafa8a * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Simplify condition. 2023-08-10 10:34:01 +02:00
Andrea Corallo
173af0cad5 * Introduce `emacs-lisp-native-compile'.
* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile): New command.
(emacs-lisp-native-compile-and-load): Make use of.
2023-08-10 10:32:02 +02:00
Eli Zaretskii
913e50aba6 Add native-compilation to Emacs Lisp mode menu
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add menu
item for emacs-lisp-native-compile-and-load.
2023-08-09 17:35:24 +03:00
Eli Zaretskii
164588b174 ; Fix whitespace in eglot.el
* lisp/progmodes/eglot.el (eglot-server-programs): Fix whitespace.
Reported by Allen Li <darkfeline@felesatra.moe>.  (Bug#65161)
2023-08-09 16:15:25 +03:00
Eric S. Raymond
fce3815921 Fix all my attributions to be correct and consistent...
...in case people are trying to track me down for questions.

.mailmap, ChangeLog.1, admin/notes/copyright, doc/emacs/ChangeLog.1,
doc/emacs/ack.texi, doc/lispref/ChangeLog.1, doc/misc/gnus.texi,
etc/ChangeLog.1, lib-src/ChangeLog.1, lisp/ChangeLog.13,
lisp/ChangeLog.14, lisp/ChangeLog.15, lisp/ChangeLog.17,
lisp/ChangeLog.3, lisp/ChangeLog.4, lisp/ChangeLog.5,
lisp/ChangeLog.6, lisp/ChangeLog.7, lisp/emacs-lisp/lisp-mnt.el,
lisp/finder.el, lisp/loadhist.el, lisp/play/cookie1.el,
lisp/progmodes/asm-mode.el, lisp/progmodes/gud.el,
lisp/progmodes/make-mode.el, lisp/term/AT386.el, src/ChangeLog.3
2023-08-08 20:07:52 -04:00
Stefan Kangas
b8c05636ca ; Fix typo 2023-08-08 19:08:56 +02:00
Stefan Kangas
10e4be740d Open Pipfile and flake8 config files in conf-mode
* lisp/progmodes/python.el (auto-mode-alist): Open Pipfile and flake8
configuration files in conf-mode.
2023-08-08 19:03:11 +02:00
Po Lu
2867f62484 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-06 07:38:10 +08:00
Michael Albinus
479c0543b6 Merge from origin/emacs-29
f2b2c752a5 Fix documentation of saveplace facilities for Dired
4ed9d61c89 ; * lisp/tab-bar.el: Autoload cl--set-substring, as that ...
30976ecd8d ; * lisp/bindings.el (mode-line-modes): Fix typo (bug#650...
8574ef314c Fix loaddef generation with ";;;foo-autoload" cookies in ...
8cbd4a02a2 Delete comment saying that project.el is experimental
2023-08-05 18:18:30 +02:00
Po Lu
a5bbc51f47 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-05 09:06:04 +08:00
Stefan Kangas
60e5f21218 Add ruff and flake8 to python-check-command
* lisp/progmodes/python.el (python-check-command): Add ruff and
flake8.
2023-08-04 14:21:26 +02:00
Stefan Kangas
8cbd4a02a2 Delete comment saying that project.el is experimental
* lisp/progmodes/project.el (Commentary): Delete comment saying that
the API is "still experimental".  It is to be considered stable
starting with the version released with Emacs 29.
Ref: https://lists.gnu.org/r/emacs-devel/2023-07/msg00415.html
2023-08-04 12:34:14 +02:00
Eli Zaretskii
dde3b9350e Merge from origin/emacs-29
0f183770c5 Fix byte-compiled files that use 'bind-key' from use-package
acfcf7f369 Fix "Paste from Kill Menu" in non X toolkit builds
04996b2124 Handle tabs in the SQL shown in the column listing
573fcf2712 Add new keyword to 'typescript-ts-mode'
db7d70d3ca ; Add commentary to 'describe-function's completion
2023-08-04 03:17:51 -04:00
Stefan Monnier
e9672b147f * lisp/progmodes/cc-mode.el (c-advise-fl-for-region): Fix compiler warning
Make sure we macro-expand `defadvice` only when we want to use it.
2023-08-03 23:43:12 -04:00
Po Lu
1dedd84e42 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-04 07:50:56 +08:00
Stefan Kangas
0c2152222a Register more Ruby files in auto-mode-alist
* lisp/progmodes/ruby-mode.el (auto-mode-alist): Add fastlane and
Caxlsx files.
2023-08-03 19:40:22 +02:00
Po Lu
1c429b7fef Merge remote-tracking branch 'origin/master' into feature/android 2023-08-03 19:50:23 +08:00
Felicián Németh
859b150f31 Eglot: send version in clientInfo (bug#62198)
* lisp/progmodes/eglot.el (eglot--version): New defconst.
(eglot--connect): Use it.
2023-08-03 13:19:02 +03:00
Eli Zaretskii
573fcf2712 Add new keyword to 'typescript-ts-mode'
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--keywords): Add "satisfies", a new operator in
Typescript 4.9.  (Bug#64924)
2023-08-03 11:31:41 +03:00
Eli Zaretskii
d727e8ee7c ; * lisp/progmodes/cperl-mode.el (cperl-method-call): Doc fix. 2023-08-03 10:28:58 +03:00
Po Lu
60dda3105c Merge remote-tracking branch 'origin/master' into feature/android 2023-08-03 08:25:47 +08:00
Harald Jörg
3c44d7a1b7 cperl-mode.el: Subroutine names are fontified correctly in all places
Subroutine names are fontified as subroutine names even if the name is also
the name of a builtin (fixing an ancient unreported bug).  Subroutine name
are just comments in comment and pod (fixing a bug introduced recently)

* lisp/progmodes/cperl-mode.el (cperl-init-faces): Move
fontification of sub declarations before that of builtins.  Don't
override existing faces when fontifying subroutine declarations.
Don't fontify method calls even if the sub names match those of
builtins.

* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-fontify-sub-names):
New tests with a subroutine name in several surroundings.

* test/lisp/progmodes/cperl-mode-resources/sub-names.pl: New resource
for the new test.
2023-08-02 23:59:42 +02:00
Stefan Kangas
1f30404ebc Don't hardcode ruby version in interpreter-mode-alist
* lisp/progmodes/ruby-mode.el (interpreter-mode-alist): Don't hardcode
ruby version.  This adds support for modern versions of Ruby like
"ruby2.7", instead of the previously hardcoded "ruby1.9".
2023-08-02 21:46:55 +02:00
Po Lu
deb8b933bc Merge remote-tracking branch 'origin/master' into feature/android 2023-08-01 08:31:14 +08:00