1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-23 22:20:24 -08:00
Commit graph

11013 commits

Author SHA1 Message Date
Dmitry Gutov
ee043a2703 tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the previous fix
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b): Make sure the
tested query is actually valid in the new grammar (bug#66646).
2023-10-21 15:05:56 +03:00
Jens Schmidt
6cf7e676e9 Silence macro expansion during completion at point
To keep risk in the current release branch low, do not avoid compiler
macros as suggested by Stefan in the bug, but rather suppress all errors.

* lisp/progmodes/elisp-mode.el (elisp--local-variables): Silence
messages.  Suppress all errors during macro expansion.  (Bug#58148)

Do not merge to master.
2023-10-05 14:00:20 -04:00
Stefan Kangas
f8bdc8dff0 ; Normalize GNU ELPA :core package statements
* lisp/emacs-lisp/let-alist.el:
* lisp/progmodes/project.el: Normalize GNU ELPA :core package
statement.
2023-10-01 01:35:23 +02:00
Stefan Kangas
9aab258b80 Add missing builtin package declarations
* lisp/finder.el (finder--builtins-alist): Add new package
directories 'leim' and 'obsolete' as part of the 'emacs' package.
Add new package directory 'use-package' as part of the
'use-package' package.
* lisp/net/eudc-capf.el:
* lisp/net/eudcb-ecomplete.el:
* lisp/net/eudcb-macos-contacts.el:
* lisp/net/eudcb-mailabbrev.el: Declare library as part of the
'eudc' package.
* lisp/mail/ietf-drums-date.el: Declare library as part of the
'ietf-drums' package.
* lisp/image/image-dired-dired.el:
* lisp/image/image-dired-external.el:
* lisp/image/image-dired-tags.el:
* lisp/image/image-dired-util.el: Declare library as part of the
'image-dired' package.
* lisp/emacs-lisp/oclosure.el:
* lisp/keymap.el:
* lisp/progmodes/c-ts-common.el: Declare library as part of the
'emacs' package.  (Bug#62751)

(cherry picked from commit 94b1de2774)
2023-09-18 01:55:28 +02:00
Eli Zaretskii
c3a7084573 ; * lisp/progmodes/flymake.el (flymake-mode): Fix 'cond'.
(cherry picked from commit 16453ed611)
2023-09-17 19:38:33 +03:00
Theodor Thornhill
cf7efabe3f Add indentation rules for type_arguments
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent
as opening braces.
2023-09-17 08:19:05 +02:00
Dmitry Gutov
bcf287bd11 typescript-ts-mode.el: Minor touches
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--indent-compatibility-b893426)
(tsx-ts-mode--font-lock-compatibility-bb1f97b):
Catch specific error.
(typescript-ts-base-mode): Improve docstring (bug#65470).
2023-09-16 23:03:44 +03:00
Dmitry Gutov
67c8271076 Improve namespacing situation WRT to recent change in typescript-ts-mode.el
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts--syntax-propertize):
Rename from ts-ts--syntax-propertize.
(tsx-ts--syntax-propertize-captures):
Rename from ts-ts--syntax-propertize-captures.
(typescript-ts--s-p-query):
Rename from ts-ts--s-p-query.
Update all references (bug#65470).
2023-09-16 23:03:44 +03:00
Eli Zaretskii
755ae813a6 ; Declare some treesit.c functions in typescript-ts-mode.el. 2023-09-16 14:26:46 +03:00
Dmitry Gutov
65f4810003 tsx-ts-mode--font-lock-compatibility-bb1f97b: Improve
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b):
Test the more complex query, because the current one leads to
false positives (mentioned in bug#65470).
2023-09-15 16:30:58 +03:00
Eli Zaretskii
ea14b0dcc2 : Doc fix.
* lisp/progmodes/prog-mode.el
(prettify-symbols-unprettify-at-point): Doc fix.
2023-09-14 09:21:28 +03:00
Stefan Kangas
01e8a0c6cb Doc fix for prettify-symbols-unprettify-at-point
* lisp/progmodes/prog-mode.el
(prettify-symbols-unprettify-at-point): Document that it has to be
set before enabling 'prettify-symbols-mode'.  (Bug#65884)
2023-09-14 08:03:13 +02:00
Dmitry Gutov
5dcc4b7eab Tweak s-p-f for js-ts-mode
* lisp/progmodes/js.el (js-ts--s-p-query):
Consider two more contexts (bug#65470).
2023-09-13 02:21:04 +03:00
Jostein Kjønigsen
1fb2fb501f typescript-ts-mode, tsx-ts-mode: Fix syntax properties for regexp and jsx
Propertize regexps as strings and JSX elements as generic strings.

* lisp/progmodes/typescript-ts-mode.el (ts-ts--s-p-query)
(tsx-ts--s-p-query): New variables.
(ts-ts--syntax-propertize, tsx-ts--syntax-propertize)
(ts-ts--syntax-propertize-captures): New functions.
(typescript-ts-mode, tsx-ts-mode): Use them (bug#65470).
2023-09-13 01:54:45 +03:00
Eli Zaretskii
946b395e7e * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Provide (bug#65895). 2023-09-12 21:45:19 +03:00
Yuan Fu
14819131ff Fix c-ts-mode BSD style indentation
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
Add else_clause.

(cherry picked from commit d392a5d3c1)
2023-09-07 08:07:25 +03:00
Theodor Thornhill
dd896ea1e6
Ignore errors when checking for object initializers (bug#63379)
Since this is merely a check for syntax, we don't really care about
any internal errors inside of backward-up-list.

* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Wrap
command in ignore-errors.
2023-09-02 19:35:00 +02:00
Stefan Kangas
0bd4661941 Doc fixes for obsolete functions and variables
* admin/notes/multi-tty:
* doc/emacs/building.texi (Debugger Operation):
* doc/misc/efaq-w32.texi (Line ends by file system):
* doc/misc/gnus.texi (Hashcash):
* lisp/emacs-lisp/eieio.el (eieio-class-parents)
(eieio-class-children):
* lisp/progmodes/perl-mode.el:
* lisp/textmodes/ispell.el (ispell-lookup-words):
* src/buffer.h: Update or delete references to variables and functions
made obsolete in Emacs 24.4.
2023-09-02 15:37:08 +02:00
Ross Timson
369f2eea10 Add "terraform-ls" LSP server to Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add "terraform-ls",
the official Terraform LSP server.  (Bug#65671)

Copyright-paperwork-exempt: yes
2023-09-01 19:58:26 +02:00
Dmitry Gutov
3f7598806e Add syntax-propertize-function to js-ts-mode
* lisp/progmodes/js.el (js-ts--s-p-query):
New variable (bug#65470).
(js-ts--syntax-propertize): New function.
(js-ts-mode): Use it.
2023-09-01 04:41:37 +03:00
Christoph Göttschkes
4860456584 Fix 'makefile-browser-client' variable initialization
* lisp/progmodes/make-mode.el (makefile-browser-client):
Initialize to nil.  (Bug#65487)

Copyright-paperwork-exempt: yes
2023-08-24 10:23:14 +03: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
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
Daniel Martín
26949819df ; lisp/progmodes/csharp-mode.el (treesit-query-capture): Declare (bug#65297). 2023-08-15 18:47:53 +03: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
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
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
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
Basil L. Contovounesios
ba60070b81 Backport: Fix some tree-sitter :match regexps
This was originally installed on 2023-06-17 in the emacs-29 release
branch and later reverted.  This backport follows the Emacs 29.1
release (bug#64019).

The shy groups were caught by modified versions of the GNU ELPA
packages xr and relint:
- https://github.com/mattiase/xr/pull/6
- https://github.com/mattiase/relint/pull/14

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special
character in regexp.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
* lisp/progmodes/js.el (js--plain-method-re):
(js--treesit-font-lock-settings):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Replace character
alternative [\\d], which matches '\' or 'd', with the most likely
intention [0-9].  Fix shy groups mistyped as optional colons.
Remove unneeded numbered :match group in rust-ts-mode.

(cherry picked from commit cd8d3f3379)
2023-07-30 17:39:34 +02:00
Vincenzo Pupillo
7da1cee56b Update CMake support due to upstream changes (bug#64922)
A recent change in tree-sitter-cmake grammar support for CMake (commit
fe9b5e0), now put arguments are wrapped in a new argument_list node.
To support the old and new version of the grammar, a new function was
added on which string syntax highlighting now depends.

* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper
function to handle different tree-sitter-cmake version.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings): Use the new function to handle
the new argument_list node.
2023-07-29 21:10:57 +02:00
Theodor Thornhill
c2d95dd00e
Remove nullptr named node from c++-ts-mode (bug#64818)
The nullptr node was changed from a named node to an unnamed node
upstream[0], which caused font locking to break. As this is a small
enough regression, no compat code is required.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove
node no longer in use.

[0]:
c75868f8b5
2023-07-24 20:18:09 +02:00
Theodor Thornhill
4e977136d3
Make compat check also check typescript
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b):
Add argument so that we run the 'treesit-query-capture' when the
language is 'typescript', not only 'tsx'.

* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use supplied argument.
2023-07-24 16:22:07 +02:00
Eli Zaretskii
ee20b50dfe ; * lisp/progmodes/typescript-ts-mode.el (treesit-query-capture): Declare. 2023-07-23 08:16:14 +03:00
Vincenzo Pupillo
2215298d90 Update JSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-javascript grammar support for
JSX (commit bb1f97b), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead

* lisp/progmodes/js.el (js-jsx--treesit-indent-compatibility-bb1f97b):
Indent helper function to handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-indent-rules): Use the new
function to handle both jsx_fragment and jsx_text.
* lisp/progmodes/js.el (js-jsx--treesit-font-lock-compatibility-bb1f97b):
Font lock helper function for handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use the new
function to handle both nested_identifier and member_expression.
2023-07-22 23:18:23 +02:00
Vincenzo Pupillo
235561a2cc Update TSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-typescript grammar support for
TSX (commit b893426), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead

* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--indent-compatibility-b893426): Indent helper function
to handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): use the new function to handle
both jsx_fragment and jsx_text.
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b): Font lock helper
function for handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use the new function to
handle both nested_identifier and member_expression.
2023-07-22 23:18:23 +02:00
Wang Diancheng
afdf54a531 * lisp/progmodes/gdb-mi.el: Fix interactive invocation of 'gud-go'.
Bug#64590.

Copyright-paperwork-exempt: yes
2023-07-15 11:38:36 +03:00
YugaEgo
673992d28e ; * lisp/progmodes/sql.el (sql-interactive-mode): Remove FIXME (bug#64602). 2023-07-14 08:27:00 +03:00
Juri Linkov
67def1f550 * lisp/progmodes/grep.el (rgrep): Fix docstring.
Instead of the incorrect key `M-c' produce the right key
with \\<read-regexp-map>\\[read-regexp-toggle-case-fold].
2023-07-03 21:50:44 +03:00
Spencer Baugh
a9b46bb25d Include a help-echo for flymake's modeline counters
This helps clarify what each of these numbers mean.  This is inspired
by 'compilation-mode-line-errors' which does the same.
* lisp/progmodes/flymake.el (flymake--mode-line-counter): Add
help-echo to mode line properties.  (Bug#64424)
2023-07-03 14:11:41 +03:00
Alan Mackenzie
7a74b8c327 C Mode: Don't fontify foo globally as type due to "struct foo"
This fixes bug#64322.

* lisp/progmodes/cc-langs.el (c-typeless-decl-kwds): Make the
entry for c-mode nil.
2023-07-01 11:17:31 +00:00
Daniel Martín
ef16339918 Make js-beginning-of-defun return non-nil on success
The docstring of 'beginning-of-defun-function' says that the
function shall return non-nil when it found the beginning
of a defun.  This is specially important because the calling
code decides when to move point depending on the return value.
* lisp/progmodes/js.el (js-beginning-of-defun)
(js--beginning-of-defun-flat): Return non-nil when the beginning
of a defun is found.  (Bug#64283)

* test/lisp/progmodes/js-tests.el (js-mode-end-of-defun): Add a unit
test.
2023-06-29 08:37:15 +03:00
Theodor Thornhill
d507aa7336
Add selector_expression indentation rule
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): New rule.
2023-06-23 15:38:01 +02:00
Eli Zaretskii
1f664a0af7 Add "nixd" LSP server to Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add "nixd".
Patch by Brian Leung <leungbk@posteo.net>.  (Bug#64214)
2023-06-22 19:33:31 +03:00
Eli Zaretskii
a0ccf1859c Disable target-async by default in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-non-stop-setting): Disable until
bug#63084 is fixed.  (Bug#64186)
2023-06-21 16:10:52 +03:00
João Távora
6f211bc57b Eglot: again fix positions of coinciding inlay hint overlays (bug#64101)
This bug originated from the previous fix, and is reproducible on non
Mac OS platforms, as long as the very latest version (at time of
writing) of the rust-analyzer server is used.

* lisp/progmodes/eglot.el (eglot--update-hints-1): Reverse
priorities when pegging overlays after (i.e. when before-string is
used).
2023-06-19 23:31:17 +01:00
Basil L. Contovounesios
02f0be0301 Revert "Fix some tree-sitter :match regexps"
This reverts commit 95091b77f0
of 2023-06-17, mistakenly pushed to emacs-29.

The patch will be installed on master instead, and backported later,
after Emacs 29.1 is released (bug#64019).

Do not merge to master.
2023-06-17 20:39:16 +01:00