Commit graph

47 commits

Author SHA1 Message Date
Dmitry Gutov
d91ad9be5a go-ts-mode: Highlight variadic function parameter names
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Add matcher for variadic parameter declarations.
2024-06-01 17:47:57 +03:00
Noah Peart
3021421892 Add font-locking for variables in go-ts-mode range clauses (bug#71209)
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Add font-locking rule for variable names in range clauses.
* test/lisp/progmodes/go-ts-mode-tests.el (go-ts-test-font-lock):
Add font-locking test for go-ts-mode.
* test/lisp/progmodes/go-ts-mode-resources/font-lock.go: New file
for go-ts-mode font-locking tests.
2024-06-01 17:47:57 +03:00
Randy Taylor
c308f56870 ; Alphabetize go-ts-mode's treesit-font-lock-feature-list
* lisp/progmodes/go-ts-mode.el (go-ts-mode):
Rearrange features to keep alphabetical order.  (Bug#70362)
2024-04-18 17:14:41 +03:00
Eli Zaretskii
c7bcda4ac5 ; Minor change in last commit
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Rearrange features to keep alphabetical order.  (Bug#70362)
2024-04-18 13:30:20 +03:00
Noah Peart
9055dad65d Add font-locking for Go built-in functions in go-ts-mode
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Add font-locking for Go built-in functions to 'go-ts-mode'.
(Bug#70362)
2024-04-18 13:28:28 +03:00
Noah Peart
b33fb3b69c
Add font-locking for operators in go-ts-mode (bug#70361)
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): Add
font-locking rule for Go operators.
2024-04-15 21:31:51 -07:00
Eli Zaretskii
adbcf268bc Merge from origin/emacs-29
f0300fb059 ; Tweak "(emacs)Bug Reference" formatting/wording.
ea62a14ea3 Fix display of vscrolled windows
4cefa3c0b1 ; * doc/emacs/files.texi (Backup): Clarify "saving" (bug#...
db7b571aaa ; Improve documentation of 'world-clock'
6a0bb7beae * doc/emacs/misc.texi (emacsclient Options): Suggest forw...
859b4227e3 Update go-ts-mode to support latest tree-sitter-go grammar
407e85ce13 Fix c++-ts-mode defun navigation (bug#65885)
aca5064f12 ; Fix last change.
55aab2d471 ; * etc/PROBLEMS: An entry about focus issues with XFCE (...
19cee16576 ; * doc/emacs/misc.texi (emacsclient Options): Fix typo. ...
2a41b6ba51 ; * src/filelock.c (Flock_file): Doc fix (bug#70216).
2024-04-13 07:37:13 -04:00
Yuan Fu
859b4227e3
Update go-ts-mode to support latest tree-sitter-go grammar
tree-sitter-go changed method_spec to method_elem in
b82ab803d8

* lisp/progmodes/go-ts-mode.el:
(go-ts-mode--method-elem-supported-p): New function.
(go-ts-mode--font-lock-settings): Conditionally use method_elem or
method_spec in the query.
2024-04-09 22:43:52 -07:00
Stefan Monnier
c79a509384 Add non-TS modes as extra parent of TS modes (bug#68246)
Record the fact that TS modes are alternatives to the non-TS
modes using the new `derived-mode-add-parents` functionality.
Do the same for long standing similar issues with CPerl-mode.

* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode):
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode):
* lisp/textmodes/html-ts-mode.el (html-ts-mode):
* lisp/textmodes/css-mode.el (css-ts-mode):
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode, tsx-ts-mode):
* lisp/progmodes/sh-script.el (bash-ts-mode):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
* lisp/progmodes/python.el (python-ts-mode):
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode):
* lisp/progmodes/json-ts-mode.el (json-ts-mode):
* lisp/progmodes/js.el (js-ts-mode):
* lisp/progmodes/java-ts-mode.el (java-ts-mode):
* lisp/progmodes/heex-ts-mode.el (heex-ts-mode):
* lisp/progmodes/go-ts-mode.el (go-ts-mode, go-mod-ts-mode):
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode):
* lisp/progmodes/csharp-mode.el (csharp-ts-mode):
* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode):
* lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode):
Add non-TS mode as extra parent.

* lisp/progmodes/cperl-mode.el (cperl-mode): Add `perl-mode` as
extra parent.
2024-03-09 10:29:06 -05:00
Stefan Monnier
2b5d43081a (major-mode-remap(-defaults)): New var and function (bug#69191)
While `major-mode-remap-alist` provides a way for users to indicate the
major mode of their choice, we need a similar variable for the
use of packages.

This patch adds a new `major-mode-remap-defaults` and changes various
packages to obey it or make use of it.
I think it nicely cleans the regexp duplication between CC-mode and
`c-ts-mode.el` and also makes it easier/cleaner for users to override
the changes made by `*-ts-mode.el`.

* lisp/files.el (major-mode-remap-defaults): New variable.
(major-mode-remap): New function.
(set-auto-mode-0): Use it.
* doc/lispref/modes.texi (Auto Major Mode): Document them.

* lisp/textmodes/tex-mode.el (tex--redirect-to-submode):
Use `major-mode-remap`.
(major-mode-remap-defaults): Set it to remap AUCTeX modes by default.
* lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use `major-mode-remap`.
(auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/org/ox.el (org-export-to-buffer): Modernize docstring accordingly.
* lisp/progmodes/cc-mode.el (c-or-c++-mode):
* lisp/org/ox-latex.el (org-latex-export-as-latex):
* lisp/org/ox-koma-letter.el (org-koma-letter-export-as-latex):
* lisp/org/ox-beamer.el (org-beamer-export-as-latex):
Use `major-mode-remap` when available.
2024-03-03 23:58:18 -05:00
Po Lu
ecf08f0621 Merge from savannah/emacs-29
dc4e6b1329 ; Update copyright years in more files
64b3777631 ; Run set-copyright from admin.el
8e1c56ae46 ; Add 2024 to copyright years

# Conflicts:
#	doc/misc/modus-themes.org
#	doc/misc/texinfo.tex
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
#	etc/themes/modus-operandi-theme.el
#	etc/themes/modus-themes.el
#	etc/themes/modus-vivendi-theme.el
#	lib/alloca.in.h
#	lib/binary-io.h
#	lib/c-ctype.h
#	lib/c-strcasecmp.c
#	lib/c-strncasecmp.c
#	lib/careadlinkat.c
#	lib/cloexec.c
#	lib/close-stream.c
#	lib/diffseq.h
#	lib/dup2.c
#	lib/filemode.h
#	lib/fpending.c
#	lib/fpending.h
#	lib/fsusage.c
#	lib/getgroups.c
#	lib/getloadavg.c
#	lib/gettext.h
#	lib/gettime.c
#	lib/gettimeofday.c
#	lib/group-member.c
#	lib/malloc.c
#	lib/md5-stream.c
#	lib/md5.c
#	lib/md5.h
#	lib/memmem.c
#	lib/memrchr.c
#	lib/nanosleep.c
#	lib/save-cwd.h
#	lib/sha1.c
#	lib/sig2str.c
#	lib/stdlib.in.h
#	lib/strtoimax.c
#	lib/strtol.c
#	lib/strtoll.c
#	lib/time_r.c
#	lib/xalloc-oversized.h
#	lisp/auth-source-pass.el
#	lisp/emacs-lisp/lisp-mnt.el
#	lisp/emacs-lisp/timer.el
#	lisp/info-look.el
#	lisp/jit-lock.el
#	lisp/loadhist.el
#	lisp/mail/rmail.el
#	lisp/net/ntlm.el
#	lisp/net/webjump.el
#	lisp/progmodes/asm-mode.el
#	lisp/progmodes/project.el
#	lisp/progmodes/sh-script.el
#	lisp/textmodes/flyspell.el
#	lisp/textmodes/reftex-toc.el
#	lisp/textmodes/reftex.el
#	lisp/textmodes/tex-mode.el
#	lisp/url/url-gw.el
#	m4/alloca.m4
#	m4/clock_time.m4
#	m4/d-type.m4
#	m4/dirent_h.m4
#	m4/dup2.m4
#	m4/euidaccess.m4
#	m4/fchmodat.m4
#	m4/filemode.m4
#	m4/fsusage.m4
#	m4/getgroups.m4
#	m4/getloadavg.m4
#	m4/getrandom.m4
#	m4/gettime.m4
#	m4/gettimeofday.m4
#	m4/gnulib-common.m4
#	m4/group-member.m4
#	m4/inttypes.m4
#	m4/malloc.m4
#	m4/manywarnings.m4
#	m4/mempcpy.m4
#	m4/memrchr.m4
#	m4/mkostemp.m4
#	m4/mktime.m4
#	m4/nproc.m4
#	m4/nstrftime.m4
#	m4/pathmax.m4
#	m4/pipe2.m4
#	m4/pselect.m4
#	m4/pthread_sigmask.m4
#	m4/readlink.m4
#	m4/realloc.m4
#	m4/sig2str.m4
#	m4/ssize_t.m4
#	m4/stat-time.m4
#	m4/stddef_h.m4
#	m4/stdint.m4
#	m4/stdio_h.m4
#	m4/stdlib_h.m4
#	m4/stpcpy.m4
#	m4/strnlen.m4
#	m4/strtoimax.m4
#	m4/strtoll.m4
#	m4/time_h.m4
#	m4/timegm.m4
#	m4/timer_time.m4
#	m4/timespec.m4
#	m4/unistd_h.m4
#	m4/warnings.m4
#	nt/configure.bat
#	nt/preprep.c
#	test/lisp/register-tests.el
2024-01-02 10:28:14 +08:00
Po Lu
8e1c56ae46 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
Eli Zaretskii
8e8667246a Merge from origin/emacs-29
d0147ff9e5 * lisp/emacs-lisp/shortdoc.el: More and better `substring...
fa06249a9f Fix "C-x RET r" when the new encoding is UTF
679e9d7c56 ; Mention MinGW64 GCC 13.1 problems in PROBLEMS
fdc1a12ed1 Fix "vc-print-log does not erase buffer" and associated p...
d507aa7336 Add selector_expression indentation rule
1f664a0af7 Add "nixd" LSP server to Eglot
e962cf4ba7 Fix building --with-native-compilation=aot from release t...
4ca371e9cc Fix bug#64152 (Minibuffer sometimes goes "modal")
a0ccf1859c Disable target-async by default in gdb-mi.el
2bad5829ff Revert "Fix parsing of dn line if WITHDN is non-nil"
7637e361d3 Don't truncate filenames with "emacs.el" in them
2591eb1190 Improve documentation of 'minibuffer-message'
6f211bc57b Eglot: again fix positions of coinciding inlay hint overl...
a24e9e3fee ; Update ChangeLog.4 and etc/AUTHORS.
2023-06-24 07:13:42 -04: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
970f94a2dd Merge from origin/emacs-29
ede3535051 ; Fix last change
8ec786349e Fix apostrophe handling in rust-ts-mode and go-ts-mode (B...
0eba9cf651 * test/infra/Dockerfile.emba (emacs-base): Install also g...
4897c98b6c Fix 'python-util-clone-local-variables'
6b2c8dc905 Revert "Enhance Python font-lock to support multilines"
348e4504c6 Fix typo in calc.texi
03663b8798 Update to Transient v0.4.1
dc7acb1aaf Avoid errors in 'delete-forward-char' deleting static com...
2f94f6de9d Make VS-15 and VS-16 compositions work correctly
753f8aa1f1 Fix project-name for vc-aware backend in non-file buffers
17c7915ab9 ; Fix 'package-install-upgrade-built-in' check for packag...
e252ce26ea Add type_predicate 'is' as keyword in typescript-ts-mode ...
0a354d6578 Fix infloop in info-look.el
83b22139e4 Fix several todo-mode.el item editing bugs (bug#63811)
ed4cd3eddf dockerfile-ts-mode: Prevent empty categories in imenu (Bu...
2e20e318da Brush up doc strings and terminology in plstore.el
372bc1278c Add internal documentation on plstore.el
23a14e7b90 Add compact_constructor_declaration font-locking to java-...
500abc4dc3 * lisp/tmm.el (tmm-completion-delete-prompt): Add more ch...
afc1f32935 Allow to disable the DWIMish behavior of 'x' in package menu
08104c0150 Allow dired to invoke secondary browser
a3063f0bc8 Add a binding for enriched-toggle-markup
d8ba28fa39 Fix order of tmm-menubar when 'tmm-mid-prompt' is nil

# Conflicts:
#	etc/NEWS
2023-06-03 05:50:58 -04:00
Йордан Миладинов
8ec786349e Fix apostrophe handling in rust-ts-mode and go-ts-mode (Bug#63708)
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--syntax-propertize):
Treat apostrophes as strings if used to define character literals.
Treat LT and GT as pairs if used to define type parameters (formerly
they were treated as pairs only for type arguments).
* lisp/progmodes/go-ts-mode.el (go-ts-mode--syntax-table): Treat
apostrophes as strings if used to define rune literals.

Copyright-paperwork-exempt: yes
2023-06-03 11:30:18 +03:00
Dmitry Gutov
0c6311386a Merge from origin/emacs-29
79a886ba36 (package-upgrade): Don't remove the package from 'package...
c0ab4e9ca9 Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot
b4e90070f9 Fix arguments of xml.c functions as displayed in Help buf...
b1bda8228e More fixes for NetBSD/vax
a2d4cd06f4 Improve VHDL mode highlighting
2f3a514b6d Clarify documentation wrt floating point division by zero...
94e984e670 Make loaddefs-generate slightly more tolerant
aba41d2c4b ; Minor doc cleanups in go-ts-mode.el
b42ccb2e5c ; Minor grammar fix in treesit manual.
ab44c8a6f9 Fix order of rcirc-connect arguments
8eb6e33691 Fix rcirc messages printing in the wrong place
2901a3443c Prevent unnecessary modifications of 'package-vc-selected...
eaad302bd6 Rename eglot-update to eglot-upgrade
eaf25b9c6a go-ts-mode: Use iota query only if supported (Bug#63086)
cc090294d7 (rng-complete-tag): Add the (ignored) argument to the :co...
21ec6c1d5c Update to Transient v0.3.7-219-g3ded15b
8d5aa8df4a Fix inserting selection data into Mozilla programs
57562c3fd0 Recognize defstruct slot names in various eieio functions
b93eb68cc3 Use 'calendar-buffer' instead of fixed string

# Conflicts:
#	etc/EGLOT-NEWS
2023-05-06 03:41:54 +03:00
Eli Zaretskii
aba41d2c4b ; Minor doc cleanups in go-ts-mode.el
* lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p)
(go-ts-mode--other-type-node-p, go-mod-ts-mode--in-directive-p):
Doc fixes.
2023-05-04 16:37:39 +03:00
Randy Taylor
eaf25b9c6a go-ts-mode: Use iota query only if supported (Bug#63086)
iota query support was added on January 5, 2022.  To support older
versions of the tree-sitter-go grammar (like the latest tagged version,
v0.19.1, which was released on March 3, 2021), check if the query is
supported before trying to use it.

* lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p): New
function.
(go-ts-mode--font-lock-settings): Use it.
2023-05-04 00:56:19 +03:00
Evgeni Kolev
1671e2db8a Fix 'go-ts-mode's incorrect docstring inserted for methods
The docstring inserted with go-ts-mode's C-c C-d was incorrectly
prefixed with the receiver "(myStruct).":

    // (myStruct).act
    func (m *myStruct) act () {...}

The above docstring is not correct because the receiver "myStruct"
should not be in the docstring.  This commit fixes the incorrect
behavior.
* lisp/progmodes/go-ts-mode.el (go-ts-mode--defun-name): New
optional argument SKIP-PREFIX.
(go-ts-mode-docstring): Call (go-ts-mode--defun-name t)
instead of (treesit-defun-name).  (Bug#62371)
2023-03-26 15:02:52 +03:00
Stefan Kangas
6fb8a4dff7 Merge from origin/emacs-29
836044f329 Fix c-ts-mode preproc directive indentation
64980a59b6 ; * lisp/files.el (hack-local-variables): Fix typo in the...
a7cd125d49 More robustly unspoof HOME in Eglot tests (bug#61637)
6c66dbd02c Turn on Eglot inlay hints by default
246f5b541c Update ts modes missed in 4c16fd3a51 to use column-0
0bfba49ca7 Robustify Eglot for "transient" projects
ea5fd375bb Fix documentation of 'normal-mode' in buffers that don't ...
4c16fd3a51 Change tree-sitter indent anchor 'point-min' to 'column-0'
f47b393015 Fix go-ts-mode multi-line string indentation (bug#61923)
e0bf2da3db ; More accurate doc strings for 'window-at' and 'window-a...
2023-03-05 06:30:15 +01:00
Dmitry Gutov
246f5b541c Update ts modes missed in 4c16fd3a51 to use column-0
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules):
Change point-min anchor to column-0.
2023-03-04 19:45:39 +02:00
Yuan Fu
f47b393015
Fix go-ts-mode multi-line string indentation (bug#61923)
* lisp/progmodes/go-ts-mode.el:
(go-ts-mode--indent-rules): Add indent rule for multi-line sting.
2023-03-04 01:20:01 -08:00
Stefan Kangas
49e021e5be Merge from origin/emacs-29
bd5115e134 Remove Eglot activation check from find-file-hook
adc04ad524 * src/intervals.c (set_intervals_multibyte_1): Fix bug#61887
b3e930d328 Revert inadvertent change to lisp/icomplete.el in previou...
da8e4b6fe4 Revert previous change in go-ts-mode.el
7548446194 Release ERC 5.5
585faf4c17 ; More doc improvements for OClosures
2840895c1a Don't create GUI frames in batch sessions
452b5ed103 ; Fix wrong error name in erc-server-908 doc string.
1e9484f2fd ; * etc/ERC-NEWS: Mention more deprecations.
119b3a4dba Minor copyedits of documentation of OClosures
3a651773d2 Eglot: pay better attention to hints' paddingLeft/Right (...

# Conflicts:
#	etc/NEWS
2023-03-04 06:30:12 +01:00
Yuan Fu
da8e4b6fe4
Revert previous change in go-ts-mode.el
Reverts 59365f9285 and
56cd810b9d.

Reverting because the use of treesit-ready-p is very much intentional.

* lisp/progmodes/go-ts-mode.el (treesit-ready-p): Revert change.
2023-03-03 14:01:05 -08:00
Stefan Kangas
a798a29f75 Merge from origin/emacs-29
59365f9285 * lisp/progmodes/go-ts-mode.el: Use treesit-language-avai...
56cd810b9d Don’t signal warning when loading go-ts-mode.el without g...
b06d551966 Fix c-ts-mode empty line indentation (bug#61893)
6b2720778d Improve tree-sitter's prev-sibling indent anchor
2023-03-02 06:30:15 +01:00
Yuan Fu
59365f9285
* lisp/progmodes/go-ts-mode.el: Use treesit-language-available-p.
treesit-ready-p does more checks than language grammar availability.
2023-03-01 14:38:22 -08:00
Yuan Fu
56cd810b9d
Don’t signal warning when loading go-ts-mode.el without grammar
* lisp/progmodes/go-ts-mode.el: Add a QUIET flag to the call of
treesit-ready-p, so that it doesn't signal a warning if
go-mod (tree-sitter grammar) is not available.
2023-03-01 14:34:56 -08:00
Stefan Kangas
c5d319af47 Merge from origin/emacs-29
613de66281 Rename the newly added -ref- faces to -use-
f601e9666d Eglot: support multiple labels in same inlay hint
4a5eda7ed2 Eglot: don't paint hints outside requested region (bug#61...
11c1aa1eb1 ; * doc/misc/gnus.texi: Fix last change.
44949c292f ; Add `nnimap-user' to Gnus manual
6c7078c66f ; * lisp/progmodes/c-ts-mode.el (treesit-node-prev-siblin...
3d0a6c9baa Eglot: protect against unintended field text motion (bug#...
647e40f4a0 ; And yet another fix to eglot-current-linepos-function's...
9d0f856a16 Fix description of 'desktop-save-mode'
aee10ca1cb Adjust tree-sitter defun navigation (bug#61617)
edf5b97686 Simplify c-ts-mode--top-level-label-matcher
0f15286c53 New tree-sitter indent anchor standalone-parent used by c...

# Conflicts:
#	etc/NEWS
2023-02-28 06:30:13 +01:00
Dmitry Gutov
613de66281 Rename the newly added -ref- faces to -use-
* lisp/font-lock.el (font-lock-variable-use-face)
(font-lock-property-use-face): Rename from font-lock-variable-ref-face
and font-lock-property-ref-face.  Update all references (bug#61655).
2023-02-28 04:08:55 +02:00
Stefan Kangas
50b55656b9 Merge from origin/emacs-29
5cf50d6004 Check the anchor along with the offset in treesit-indent-...
497018dd5c ; Fix typos in docstrings in c-ts-common.el
03072bbdd3 ; Set indent-tabs-mode to nil in c-ts-mode indent preproc...
4a25fa4586 Align to prev sibling for c-ts-mode indentation
d25f24fe57 Fix c-ts-common-statement-offset and c-ts-common--node-is
c92360c7a3 typescript-ts-mode: Highlight non-shorthand destructuring...
a795c51f60 Add more/finer faces for tree-sitter
146bce4932 Avoid crashes in batch mode due to lack of frame face cache
244a73cd72 Add Tramp version integrated in Emacs 28.3

# Conflicts:
#	etc/NEWS
2023-02-25 06:30:14 +01:00
Dmitry Gutov
a795c51f60 Add more/finer faces for tree-sitter
* doc/lispref/modes.texi (Faces for Font Lock):
Update the list of faces (bug#61655).

* etc/NEWS: Update the list of new faces.

* lisp/cus-theme.el (custom-theme--listed-faces): Update.

* lisp/font-lock.el (font-lock-function-call-face)
(font-lock-variable-ref-face, font-lock-property-ref-face):
New faces.
(font-lock-property-name-face):
Rename from 'font-lock-property-face'.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Use new faces.  More 'enumerator' query to 'definition' feature.
(c-ts-mode--fontify-declarator, c-ts-mode--fontify-variable):
Use new faces.

* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings): Use new faces.

* lisp/progmodes/csharp-mode.el
(csharp-ts-mode--font-lock-settings): Use new faces.

* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Use new faces.

* lisp/progmodes/java-ts-mode.el
(java-ts-mode--font-lock-settings): Use new faces.

* lisp/progmodes/js.el (js--treesit-fontify-assignment-lhs)
(js--treesit-font-lock-settings): Use new faces.  Highlight
variable definitions inside array and object destructuring
patterns.

* lisp/progmodes/python.el (python--treesit-variable-p):
Exclude identifiers in parameters.
(python--treesit-settings): Use new faces.  Highlight function
parameters.  Move 'keyword' up to still highlight 'self' as
keyword.

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Use new faces.

* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--font-lock-settings): Use new faces.

* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use new faces.

* lisp/textmodes/css-mode.el (css--treesit-settings):
Use font-lock-property-ref-face.

* lisp/textmodes/toml-ts-mode.el
(toml-ts-mode--font-lock-settings):
Use font-lock-property-ref-face.

* lisp/textmodes/yaml-ts-mode.el
(yaml-ts-mode--font-lock-settings): Same.
2023-02-25 03:35:08 +02:00
Stefan Kangas
d492be400e Merge from origin/emacs-29
c9ba05af8d Fix crashes inside 'xfree' called from treesit.c
746748f5c2 Make java-ts-mode use the c-ts-common-indent-type-regexp-...
87d39a30b1 Fix c-ts-mode indentation
7cb92b5398 Fix c-ts-mode indentation
d68ff6016d Fix c-ts-mode indentation (bug#61291)
2ac8c4bbd6 (eglot-completion-at-point): Return correct values in :co...
321cbd9a60 Tighten and simplify typescript compilation-mode regexps ...
97533e73ad ; * lisp/progmodes/c-ts-common.el (treesit-node-prev-sibl...
9dfccb89fc Clarify bug-reference-auto-setup-functions docstring.
17ab426670 * lisp/treesit.el (treesit): Fix shortdoc example form (b...
5a6dfab1e4 Use c-ts-common-statement-offset in java-ts-mode (bug#61142)
c3262216ab Add array_initializer to java-ts-mode
79ab62e0bb go-ts-mode: Highlight variable declarations
1fab91d852 go-ts-mode: Fix highlighting of function name in call_exp...
07ffe902c6 c-ts-mode: Highlight "property functions" as functions
a529b0d646 rust-ts-mode: Fix highlighting of function name in call_e...
088425538f rust-ts-mode--font-lock-settings: Improve consistency
793c24a6ac Make sure 'M-x show-paren-local-mode' turns on right away
60089dcfe0 Add to bug-reference-auto-setup-functions after its decla...
26e947ccb1 * lisp/vc/vc.el (vc-find-revision-no-save): Fix parens (b...
948e343496 ; Fix byte-compilation warning
6568a1aaf9 Fix inability to turn show-paren-local-mode on manually (...
24085ba610 ; go-ts-mode--indent-rules: Indent to 0 at top level
0862a79fef Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
bb999df5d6 ; Fix whitespace of last change
929daafa1d ; Fix trivial mistake in emoji--choose-emoji
d7b4a8487f ; * lisp/isearch.el (emoji--read-emoji): Avoid compilatio...
e38ff00463 rust-ts-mode: Highlight variable declarations
d12727057d rust-ts-mode--indent-rules: Indent to 0 at top level
85705a7059 ; Move misplaces parenthesis in emoji--choose-emoji
18c43bb9d6 Ensure upper bound of font-lock region is less than point...
94f291d150 ; * lisp/paren.el (show-paren-predicate): Doc fix.  (Bug#...
3ffd0eddce Highlight more complex function parameters
58dc03ba7e No longer use transient in isearch-emoji-by-name
0c125fcc67 Make highlighting more regular across TS modes (bug#61205)
1dd751c3ac ; Improve documentation of 'proper-list-p'
96181ed3f0 Document 'plistp'
03d9d18513 Fix display of raised/lowered composed text
f13479d955 Fix installation of tree-sitter grammar on MS-Windows
0358267204 Update the Emacs FAQ for Emacs 29
2c33e2889b Fix byte-compilation of *-ts-mode.el files
b40a929a3f ; ruby-ts--syntax-propertize: Amend commentary
b80f36b88c Make c-ts-mode-set-style's effect local (bug#61245)
671e5d9fad ; * lisp/treesit.el (treesit--font-lock-level-setter): Mi...
69380a88e9 c-ts-mode: Highlight name in parameter declarations
89b550eac2 Fix switch statement indentation for go-ts-mode (bug#61238)
1a123feb18 Fix bidi reordering of sequence of whitespace characters ...
8870b54db9 Add tests for compilation support for TypeScript (bug#61104)
873a0a1508 Add support for TypeScript compilation to compile.el (bug...
3a64f81ebc Don't clobber match data in 'y-or-n-p'
4c765d93ab Refine the previous change
d99b5151f8 Add syntax-propertize-function to ruby-ts-mode
f25c15ceb7 ; Fix typos
35e238cae8 Improve documentation of 'header-line-indent-mode'
c3f58a6651 Don't casemap erc-sasl-user when set to :nick
e444115d02 Improve keymap-global-set and keymap-local-set interactiv...

# Conflicts:
#	etc/NEWS
2023-02-08 06:30:15 +01:00
Dmitry Gutov
79ab62e0bb go-ts-mode: Highlight variable declarations
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Highlight variable declarations in 'definition' feature.
2023-02-06 04:42:12 +02:00
Dmitry Gutov
1fab91d852 go-ts-mode: Fix highlighting of function name in call_expression
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Remove :override from the 'property' rules and move them above
'variable' (bug#61302).  Just like in rust-ts-mode.
2023-02-06 04:12:25 +02:00
Dmitry Gutov
24085ba610 ; go-ts-mode--indent-rules: Indent to 0 at top level 2023-02-05 18:53:44 +02:00
Dmitry Gutov
0c125fcc67 Make highlighting more regular across TS modes (bug#61205)
* doc/emacs/display.texi (Parser-based Font Lock):
Update description of treesit-font-lock-level, moving 'property' to
level 4.

* lisp/treesit.el (treesit-font-lock-level): Likewise, in docstring.

* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Do that here.

* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): Add a comment.

* lisp/progmodes/go-ts-mode.el (go-ts-mode): Add 'definition' to
level 1.  Move 'function', 'property' and 'variable' to level 4.
(go-ts-mode--font-lock-settings): Move a bunch of existing rules
to 'definition'.  Add highlighting of function parameters.

* lisp/progmodes/rust-ts-mode.el (rust-ts-mode)
(rust-ts-mode--font-lock-settings): Same.  And also change "scoped
identifiers" highlights to only match capitalized names.
2023-02-05 15:50:16 +02:00
Davide Masserut
89b550eac2 Fix switch statement indentation for go-ts-mode (bug#61238)
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add
indentation for type switch and select case blocks
* test/lisp/progmodes/go-ts-mode-resources/indent.erts: New .erts file
to test indentation of Go constructs and prevent regression of bug
fixes.
* test/lisp/progmodes/go-ts-mode-tests.el: New file with go-ts-mode
tests.
2023-02-04 19:26:05 +01:00
Eli Zaretskii
4de1171d14 ; * lisp/progmodes/go-ts-mode.el (treesit-node-end): Avoid warning. 2023-01-28 15:42:57 +02:00
Stefan Kangas
12e419ad11 Merge from origin/emacs-29
f8c95d1a76 Fix xt-mouse on terminals that report UTF-8 encoded coord...
4bf7cb71ed Fix go-ts-mode indentation and set indent offset to 8 (Bu...
ff9498624f ; * src/insdel.c (insert_from_buffer): Fix assertions.
41f497c8be Fix doc strings of window-splitting commands
cdf74254ff Fix indentation for c-ts-mode (bug#61026)
4bd06ce2a9 Fix call to treesit_record_change in insdel.c
00675aa724 Add support for building tree-sitter modules with MinGW
af28191b04 * lisp/net/tramp.el (tramp-wrong-passwd-regexp): Fix regexp.
42e02480c2 * doc/emacs/text.texi (Outline Minor Mode): New node spli...
37c1c92466 ; * etc/NEWS: Minor reordering.
cfb180329b ruby-ts-mode: Don't reindent when "class" or "def" is und...
abb3becb9f treesit-install-language-grammar: Provide default repo url
c6613403e5 Fix Dired face for directory symlinks
37454de0c8 Pacify --without-x unused function warning
9a21cb1075 ; * etc/NEWS: Fix typos.
f30a4f51fe Announce outline.el keymaps
8198803f66 ; Don't mention in the Gnus manual user options that were...
8a1498c01f Fix fontification of function-valued variables (bug#61053)
cfe26f3189 Add new java indent rules
987e53f3e2 ; * doc/misc/erc.texi: Improve Local Modules section.
3846e79c93 ; Fix filename mismatches in prop lines of ERC tests
ecf500b5e3 Handle relative file names in vc-resynch-window and vc-re...
695e9f71c3 Use named keymaps for outline buttons
e31a562396 * lisp/vc/vc-bzr.el (vc-bzr--pushpull): Return buffer's p...
deee3a9262 ; Fix last change in etc/NEWS
bc78285e68 ; * etc/NEWS: Fix typos.
c15c0f7f01 CC Mode: Change the default value of objc-font-lock-extra...
7f438ff543 Don't try to make a pipe process for remote processes in ...
cb9628373a * lisp/startup.el (command-line): Fix warning message.  (...
e6c5f32e77 * lisp/find-dired.el (find-dired): Fix bug where M-p skip...

# Conflicts:
#	etc/NEWS
2023-01-27 11:30:38 +01:00
Randy Taylor
4bf7cb71ed Fix go-ts-mode indentation and set indent offset to 8 (Bug#61006)
* lisp/progmodes/go-ts-mode.el (go-ts-mode-indent-offset): Change
default value to 8.
(go-ts-mode--indent-rules): Add indentation for parameters and
interfaces.
2023-01-26 10:29:07 +02:00
Stefan Kangas
0805972e4c Merge from origin/emacs-29
b3de81a6ee MH-E: handle removal of mhparam libdir from nmh 1.8
d63e1a8951 Use point-min to anchor top-level constructs (bug#60602)
3479333778 * lisp/org/ob-ruby.el: Fix outdated comments.
472f142598 ; ruby-ts-mode: Add a Version tag
0cf053648a ; ruby-ts-mode: Update font-lock features list in Commentary
67ee627c38 (project-try-vc): Add string-start and string-end anchors...
06953fc8e1 Make `keymap-set-after' work for menus
dcd59457b4 Use `key-parse' in `keymap-lookup'
8904a26a9d Improve `keymap-set-after' documentation
c7e02eaa3d Handle after arg correctly in `keymap-set-after'
628b624176 Don't load erc-goodies atop erc.el
40cf494b7c ; * etc/NEWS: Fix typos.
6b2f85caa6 Make tree-sitter based modes optional
b56cf28b32 ; (ruby-ts--predefined-variables): Make it a little shorter
d94dc606a0 ruby-ts-mode: Claw back half of the performance drop from...
d0d3451409 (ruby-ts-mode): Rename 'builtin-functions' to 'builtin-fu...
d66ac5285f ruby-ts-mode: Highlight builtin methods
370b1ac99e ; ruby-ts-mode.el: Add customize-group mention to commentary
7b7b2b9513 Fix c-ts-mode indent (bug#60873)
7ca71d66dc Fix various problems in treesit-explore-mode (bug#60800)
b7d6bb47ee ; * lisp/treesit.el (treesit-font-lock-fontify-region): M...
0c6bfeddb2 ; Update tree-sitter major mode manual
c289786886 ; Add commentary and dostring in c-ts-mode

# Conflicts:
#	etc/NEWS
#	lisp/progmodes/c-ts-mode.el
#	lisp/progmodes/go-ts-mode.el
2023-01-23 01:34:39 +01:00
Evgeni Kolev
f0971f94fe Extend go-ts-mode with command to add docstring to function
go-ts-mode is extended with command go-ts-mode-docstring which adds
docstring comment to the defun at point. If a comment already exists,
the point is instead moved to the top-most comment line. The command
is bound to "C-c C-d".

* lisp/progmodes/go-ts-mode.el (go-ts-mode): Extend docstring.
(go-ts-mode-docstring): New function.
(go-ts-mode--comment-on-previous-line-p): New function.
(go-ts-mode-map): New map variable.
* etc/NEWS: Mention the change.

(bug#60805)
2023-01-21 21:25:46 +01:00
Eli Zaretskii
6b2f85caa6 Make tree-sitter based modes optional
* lisp/progmodes/c-ts-mode.el: Update Commentary.  Make
'auto-mode-alist' update conditional on the tree-sitter and
grammar libraries being available.
* lisp/progmodes/cmake-ts-mode.el:
* lisp/progmodes/csharp-mode.el:
* lisp/progmodes/dockerfile-ts-mode.el:
* lisp/progmodes/go-ts-mode.el:
* lisp/progmodes/java-ts-mode.el:
* lisp/progmodes/js.el:
* lisp/progmodes/json-ts-mode.el:
* lisp/progmodes/python.el:
* lisp/progmodes/ruby-ts-mode.el:
* lisp/progmodes/typescript-ts-mode.el:
* lisp/textmodes/css-mode.el:
* lisp/textmodes/toml-ts-mode.el:
* lisp/textmodes/yaml-ts-mode.el: Make 'auto-mode-alist' update
for tree-sitter based modes be conditional on the tree-sitter and
grammar libraries being available.  (Bug#60559)
2023-01-20 10:28:26 +02:00
Evgeni Kolev
dc911e4ba5
Improve go-ts-mode Imenu, navigation and electric pair (bug#60407)
The Imenu items are extended to support "Method", "Struct",
"Interface", "Alias" and "Type".

go-ts-mode is updated to use the Imenu facility added in commit
b39dc7ab27.

Variable electric-indent-chars is set in order to improve integration
with Electric Pair mode.

* lisp/progmodes/go-ts-mode.el (go-ts-mode--imenu-1) (go-ts-mode--imenu):
Remove functions.
(go-ts-mode--defun-name, go-ts-mode--interface-node-p)
(go-ts-mode--struct-node-p, go-ts-mode--other-type-node-p)
(go-ts-mode--alias-node-p): New functions.
(go-ts-mode): Improve Imenu settings, navigation, add Electric Pair
mode settings.
2023-01-08 20:32:51 -08:00
Eli Zaretskii
cae528457c ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
Randy Taylor
fee2efe1b0
Add go-ts-mode and go-mod-ts-mode (Bug#60025)
* admin/notes/tree-sitter/build-module/batch.sh:
* admin/notes/tree-sitter/build-module/build.sh: Add go-mod support.
* etc/NEWS: Mention them.
* lisp/progmodes/eglot.el (eglot-server-programs): Add them.
* lisp/progmodes/go-ts-mode.el: New major modes with
tree-sitter support.
2022-12-15 17:20:50 -08:00