summaryrefslogtreecommitdiff
path: root/lisp/progmodes/java-ts-mode.el
AgeCommit message (Collapse)Author
2026-02-22Fix broken `FOO-mode-indent-offset` conventionStefan Monnier
Variable names to control indentation have never been standardized, but over the years some conventions have naturally arisen, mostly the use of `FOO-indent-offset`, `FOO-basic-offset`, or `FOO-indent-level` for `FOO-mode`. When the new TS modes were introduced, a mistake was made that I failed to catch at the time, where those modes used `FOO-mode-indent-offset` instead of the "standard" `FOO-indent-offset`. In order to save packages like `editorconfig-mode` and `indent-bars-mode` from having to cater to yet-another-convention, rename those vars to what they should have been all along. * lisp/editorconfig.el (editorconfig-indentation-alist): Remove the ad-hoc entries for the deviating modes using `FOO-mode-indent-offset`. * lisp/textmodes/toml-ts-mode.el (toml-ts-indent-offset): * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-js-css-indent-offset) (mhtml-ts--js-css-indent-offset): * lisp/textmodes/html-ts-mode.el (html-ts-indent-offset): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-indent-offset): * lisp/progmodes/php-ts-mode.el (php-ts-indent-offset) (php-ts-js-css-indent-offset, php-ts-html-indent-offset): * lisp/progmodes/json-ts-mode.el (json-ts-indent-offset): * lisp/progmodes/java-ts-mode.el (java-ts-indent-offset) (java-ts-method-chaining-indent-offset): * lisp/progmodes/go-ts-mode.el (go-ts-indent-offset): * lisp/progmodes/csharp-mode.el (csharp-ts-indent-offset): * lisp/progmodes/cmake-ts-mode.el (cmake-ts-indent-offset): * lisp/progmodes/c-ts-mode.el (c-ts-indent-offset): Rename `FOO-mode-indent-offset` to `FOO-indent-offset`, with obsolete alias.
2026-01-01; Add 2026 to copyright years.Sean Whitton
2025-11-02Fix fontification for var in java-ts-mode (bug#79626)Yuan Fu
* lisp/progmodes/java-ts-mode.el: (java-ts-mode--font-lock-settings): Add font-lock rule for "var".
2025-10-23Remove cached font-lock settings in java-ts-modeYuan Fu
After the changes made in bug#79363, we don't need the cache anymore. * lisp/progmodes/java-ts-mode.el: (java-ts-mode--font-lock-settings-cached): Remove variable. (java-ts-mode--font-lock-settings): Remove use of the variable.
2025-10-23Fix field access fontification in java-ts-mode (bug#79625)Yuan Fu
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): Remove the field_access rule.
2025-10-16Check if treesit-major-mode-remap-alist is bound in ts-modes autoload formsJuri Linkov
* lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/lua-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/python.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/typescript-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/markdown-ts-mode.el: * lisp/textmodes/mhtml-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: * lisp/textmodes/yaml-ts-mode.el: In autoload forms replace '(treesit-available-p)' with (boundp 'treesit-major-mode-remap-alist). Calling 'treesit-available-p' in loaddefs.el is too early since the tree-sitter library might not be loaded yet. Checking if 'treesit-major-mode-remap-alist' is bound is equivalent to checking if Emacs is compiled with tree-sitter support. (bug#79622)
2025-10-09Fix font lock in java-ts-modeRoi Martin
Fix font lock in java-ts-mode when the tree-sitter grammar is automatically installed (Bug#79363). * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): Evaluate the rules only after the tree-sitter grammar is installed. (java-ts-mode): Call the new `java-ts-mode--font-lock-settings' function.
2025-08-18Silence byte-compile warnings when treesit is not availableJuri Linkov
* lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/lua-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/typescript-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/markdown-ts-mode.el: * lisp/textmodes/mhtml-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: * lisp/textmodes/yaml-ts-mode.el: Declare 'treesit-major-mode-remap-alist' and 'treesit-language-available-p' to silence warnings that are false alarms. Also improve docstrings.
2025-08-14New user option 'treesit-enabled-modes' (bug#79180)Juri Linkov
* lisp/treesit.el (treesit-enabled-modes): New user option. * src/treesit.c (treesit-major-mode-remap-alist): New variable. * lisp/progmodes/c-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/mhtml-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: Add ts-mode mapping to 'treesit-major-mode-remap-alist' for ts-modes that already have the corresponding non-ts mode association in 'auto-mode-alist'. * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode-maybe): * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode-maybe): * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-maybe): * lisp/progmodes/go-ts-mode.el (go-ts-mode-maybe) (go-mod-ts-mode-maybe, go-work-ts-mode-maybe): * lisp/progmodes/heex-ts-mode.el (heex-ts-mode-maybe): * lisp/progmodes/lua-ts-mode.el (lua-ts-mode-maybe): * lisp/progmodes/php-ts-mode.el (php-ts-mode-maybe): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode-maybe): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode-maybe) (tsx-ts-mode-maybe): * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode-maybe): * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-maybe): Add a wrapper function to 'auto-mode-alist' for ts-modes that have no corresponding non-ts mode. Also add a mapping to 'treesit-major-mode-remap-alist' for the case when a non-ts mode is installed from an external source to be able to customize it with 'treesit-enabled-modes'.
2025-06-20Use keyword :commit with full hashes for treesit-language-source-alist.Juri Linkov
* lisp/treesit.el (treesit-language-source-alist): Document the format that uses keywords. (treesit--install-language-grammar-1): Remove args 'revision', 'source-dir', 'cc', 'c++', 'commit'. Use 'args' to process the keywords, and use the remaining list as the previous list of arguments. (treesit--install-language-grammar-1): Let-bind 'treesit--install-language-grammar-full-clone' and 'treesit--install-language-grammar-blobless' to t when 'commit' is non-nil (bug#78542). * lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/python.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/typescript-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/html-ts-mode.el: * lisp/textmodes/markdown-ts-mode.el: * lisp/textmodes/toml-ts-mode.el: * lisp/textmodes/yaml-ts-mode.el: Use the keyword :commit with full hashes instead of tags in 'treesit-language-source-alist'. * lisp/treesit-x.el (define-treesit-generic-mode): Simplify the keyword :copy-queries. (gitattributes-generic-ts-mode, liquid-generic-ts-mode): Add keywords :commit and :copy-queries to :source. * admin/tree-sitter/treesit-admin.el (treesit-admin--unversioned-treesit-language-source-alist): Handle :revision and :commit as well. (treesit-admin--find-latest-compatible-revision): Process the keywords in the recipe.
2025-04-18Lock tree-sitter language grammars to verified versions.Juri Linkov
* admin/notes/tree-sitter/build-module/build.sh: Update org for toml/yaml. * admin/tree-sitter/treesit-admin.el (treesit-admin--builtin-language-sources): Add verified versions. * lisp/progmodes/c-ts-mode.el: Append language source to treesit-language-source-alist. (c-ts-mode, c++-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/cmake-ts-mode.el: Append language source to treesit-language-source-alist. (cmake-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/csharp-mode.el: Append language source to treesit-language-source-alist. (csharp-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/dockerfile-ts-mode.el: Append language source to treesit-language-source-alist. (dockerfile-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/elixir-ts-mode.el: Append language source to treesit-language-source-alist. (elixir-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/go-ts-mode.el: Append language source to treesit-language-source-alist. (go-ts-mode, go-mod-ts-mode, go-work-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/heex-ts-mode.el: Append language source to treesit-language-source-alist. (heex-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/java-ts-mode.el: Append language source to treesit-language-source-alist. (java-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/js.el: Append language source to treesit-language-source-alist. (js-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/json-ts-mode.el: Append language source to treesit-language-source-alist. (json-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/lua-ts-mode.el: Append language source to treesit-language-source-alist. (lua-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist): Update versions from comments in ts-modes. Append to treesit-language-source-alist. (php-ts-mode-install-parsers): Use treesit-language-source-alist directly. (php-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/ruby-ts-mode.el: Append language source to treesit-language-source-alist. (ruby-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/rust-ts-mode.el: Append language source to treesit-language-source-alist. (rust-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/sh-script.el: Append language source to treesit-language-source-alist. (bash-ts-mode): Use treesit-ensure-installed. * lisp/progmodes/typescript-ts-mode.el: Append language source to treesit-language-source-alist. (typescript-ts-mode, tsx-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/css-mode.el: Append language source to treesit-language-source-alist. (css-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/html-ts-mode.el: Append language source to treesit-language-source-alist. (html-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/markdown-ts-mode.el: Append language source to treesit-language-source-alist. (markdown-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--language-source-alist): Append to treesit-language-source-alist. (mhtml-ts-mode-install-parsers): Use treesit-language-source-alist directly. (mhtml-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/toml-ts-mode.el: Append language source to treesit-language-source-alist. (toml-ts-mode): Use treesit-ensure-installed. * lisp/textmodes/yaml-ts-mode.el: Append language source to treesit-language-source-alist. (yaml-ts-mode): Use treesit-ensure-installed. * test/infra/Dockerfile.emba: Add verified versions to treesit-language-source-alist.
2025-04-09New command 'treesit-toggle-sexp-mode' (bug#76676).Juri Linkov
* lisp/treesit.el (treesit-forward-sexp): Don't use 'treesit-sexp-type-regexp' reserved for list commands to override their default 'list' thing. (treesit-down-list, treesit-up-list): Use 'treesit-sexp-type-regexp' instead of 'list' when it's non-nil. (treesit-toggle-sexp-mode): New command. * lisp/progmodes/c-ts-mode.el (c-ts-mode--thing-settings): Improve 'sexp' thing settings to exclude the top-level "translation_unit" that just moves to EOF and also "comment". * lisp/progmodes/elixir-ts-mode.el (elixir-ts--sexp-regexp): Remove. (elixir-ts--forward-sexp): Remove to use the default 'sexp' navigation. (elixir-ts--with-parens-0-p, elixir-ts--with-parens-1-p): New internal functions. (elixir-ts-mode): Add 'treesit-thing-settings' instead of 'forward-sexp-function' (bug#76788). * lisp/progmodes/heex-ts-mode.el (heex-ts--sexp-regexp): Remove. (heex-ts--forward-sexp): Remove to use the default 'sexp' navigation. (heex-ts--thing-settings): New variable. (heex-ts-mode): Use 'heex-ts--thing-settings' instead of 'forward-sexp-function'. * lisp/progmodes/java-ts-mode.el (java-ts-mode): Improve 'sexp' thing to use settings like in c-ts-mode. * lisp/progmodes/php-ts-mode.el (php-ts-mode): Improve 'sexp' thing settings to exclude the top-level "program" that just moves to EOF and also "comment". * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Improve 'sexp' thing to use settings like in c-ts-mode. * lisp/textmodes/css-mode.el (css--treesit-thing-settings): Add 'sexp' thing. Add "string_value" to 'text' thing. * lisp/textmodes/html-ts-mode.el (html-ts-mode--treesit-things-settings): Improve 'sexp' thing to use settings like in c-ts-mode. Add "doctype" to the 'list' thing.
2025-03-16Add some keywords to java-ts-mode--keywords (bug#75154)Yuan Fu
* lisp/progmodes/java-ts-mode.el: (java-ts-mode--keywords): Add keywords, remove @interface.
2025-03-16Move around java-ts-mode font-lock rules (bug#75154)Yuan Fu
* lisp/progmodes/java-ts-mode.el: (java-ts-mode--font-lock-settings): Move constant feature down so it overrides expression and definition.
2025-03-16Use c-ts-common baseline rule in java-ts-mode (bug#75154)Yuan Fu
Use it for function parameters. * lisp/progmodes/java-ts-mode.el: (java-ts-mode--standalone-predicate): New function. (java-ts-mode--indent-rules): Comment out rules for function parameters and statements, and add c-ts-common-baseline-indent-rule as fallback. (java-ts-mode): Setup. (java-ts-mode--first-line-on-multi-line-string): Mark BOL as unused. * test/lisp/progmodes/java-ts-mode-resources/indent.erts: New test.
2025-03-16Add indentation for multi-line string in java-ts-mode (bug#75154)Yuan Fu
* lisp/progmodes/java-ts-mode.el: (java-ts-mode--first-line-on-multi-line-string): New function. (java-ts-mode--indent-rules): Add rules.
2025-03-16Add java-ts-mode-method-chaining-indent-offset (bug#75154)Yuan Fu
Default method chaining to indent 8 spaces. * lisp/progmodes/java-ts-mode.el: (java-ts-mode-method-chaining-indent-offset): New custom option. (java-ts-mode--indent-rules): Use java-ts-mode-method-chaining-indent-offset.
2025-03-05Improve treesit settings for java-ts-mode (bug#73404, bug#76493)Juri Linkov
* lisp/progmodes/java-ts-mode.el (java-ts-mode): Add the 'list' thing to 'treesit-thing-settings'. Set 'treesit-outline-predicate'.
2025-03-01Merge from origin/emacs-30Eli Zaretskii
563b6f94511 Constant highlighting no longer captures Java annotations e15dcb2db5c Improve wording of lsh docstring 0cc651acddb ; * admin/check-doc-strings: Add note for future developm... 3c9b1c3cd18 Don't document deleted xwidget functions 9e9b78dda94 ; Improve lsh and ash documented argument names
2025-02-23Constant highlighting no longer captures Java annotationsVincenzo Pupillo
* lisp/progmodes/java-ts-mode.el (java-ts-mode--fontify-constant): New function. (java-ts-mode--font-lock-settings): Use it.
2025-01-02Update copyright year to 2025Stefan Kangas
Run "TZ=UTC0 admin/update-copyright".
2025-01-01Update copyright year to 2025Paul Eggert
Run "TZ=UTC0 admin/update-copyright".
2024-12-30Add verified grammar version comment for tree-sitter modesYuan Fu
* lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/lua-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/textmodes/css-mode.el: * lisp/textmodes/html-ts-mode.el: Add comments.
2024-12-12Declare tree-sitter functions with a new macroYuan Fu
* lisp/progmodes/c-ts-mode.el: * lisp/progmodes/cmake-ts-mode.el: * lisp/progmodes/csharp-mode.el: * lisp/progmodes/dockerfile-ts-mode.el: * lisp/progmodes/elixir-ts-mode.el: * lisp/progmodes/go-ts-mode.el: * lisp/progmodes/heex-ts-mode.el: * lisp/progmodes/java-ts-mode.el: * lisp/progmodes/json-ts-mode.el: * lisp/progmodes/lua-ts-mode.el: * lisp/progmodes/php-ts-mode.el: * lisp/progmodes/ruby-ts-mode.el: * lisp/progmodes/rust-ts-mode.el: * lisp/progmodes/js.el: * lisp/progmodes/python.el: * lisp/progmodes/sh-script.el: * lisp/progmodes/c-ts-common.el: * lisp/progmodes/prog-mode.el: * lisp/progmodes/typescript-ts-mode.el: Use new macro. * lisp/treesit.el (treesit-declare-unavailable-functions): New macro.
2024-09-21Add user option to enable Doxygen syntax highlighting (bug#72814)Vincenzo Pupillo
Both 'c-ts-mode' and 'java-ts-mode' have a new user option, 'c-ts-mode-enable-doxygen' and 'java-ts-mode-enable-doxygen' (defaults to nil) which allow to enable syntax highlighting of comment blocks based on the Doxygen grammar. * lisp/progmodes/c-ts-mode.el: Add the 'c-ts-mode-enable-doxygen' user option variable to disable doxygen grammar. Notifies the user if doxygen grammar is not available. * lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode): Use the new 'c-ts-mode-enable-doxygen' option. * lisp/progmodes/java-ts-mode.el: Add the 'java-ts-mode-enable-doxygen' user option variable to disable doxygen grammar. Notifies the user if doxygen grammar is not available. * lisp/progmodes/java-ts-mode.el (java-ts-mode): Use the new 'java-ts-mode-enable-doxygen' option. * etc/NEWS: Document the change.
2024-07-13; Fix last changeEli Zaretskii
* lisp/progmodes/java-ts-mode.el (java-ts-mode): * lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode): Load the Doxygen grammar quietly, so that if it isn't available, the user is not annoyed. (Bug#71874)
2024-07-13Fontify doxygen support to 'c-ts-mode', 'c++-ts-mode' and 'java-ts-mode'Vincenzo Pupillo
Add doxygen support to 'c-ts-mode', 'c++-ts-mode' and 'java-ts-mode' using tree-sitter-doxygen from github.com/tree-sitter-grammars. * lisp/progmodes/c-ts-common.el (c-ts-mode-doxygen-comment-font-lock-settings): Add font locking rules for doxygen comment. * lisp/progmodes/c-ts-mode.el (c-ts-mode--feature-list): Add 'document' feature. (c-ts-mode--doxygen-comment-regex): New regular expression for doxygen comments. (c-ts-mode, c++-ts-mode): Add support for doxygen parser. * lisp/progmodes/java-ts-mode.el (java-ts-mode): Add support for doxygen parser. (Bug#71874)
2024-07-07Checkdoc fixes in progmodesStefan Kangas
* lisp/progmodes/cperl-mode.el (cperl-file-style) (cperl-continued-brace-offset, cperl-tips-faces): * lisp/progmodes/eglot.el (eglot-confirm-server-edits, eglot) (eglot-list-connections-mode, eglot--outstanding-inlay-hints-region) (eglot--outstanding-inlay-regions-timer): * lisp/progmodes/etags.el (etags-goto-tag-location) (etags--xref-apropos-additional): * lisp/progmodes/flymake.el (flymake-autoresize-margins): * lisp/progmodes/gdb-mi.el (gdb-mouse-until, gdb-mouse-jump): * lisp/progmodes/hideif.el (hif-parse-macro-arglist): * lisp/progmodes/idlw-help.el (idlwave-html-help-location): * lisp/progmodes/idlwave.el (idlwave-reserved-word-upcase): * lisp/progmodes/java-ts-mode.el (java-ts-mode--string-highlight-helper): * lisp/progmodes/js.el (js--chained-expression-p): * lisp/progmodes/pascal.el (pascal-mode, pascal-comment-area): * lisp/progmodes/python.el (python--treesit-fontify-union-types): * lisp/progmodes/ruby-mode.el (ruby-align-chained-calls) (ruby-block-indent, ruby-rubocop-use-bundler): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--prettify-symbols-compose-p): * lisp/progmodes/verilog-mode.el (verilog-cache-has-lisp) (verilog-auto-insert-lisp, verilog-highlight-region): * lisp/progmodes/xref.el (xref--get-history): Various checkdoc fixes.
2024-03-09Add non-TS modes as extra parent of TS modes (bug#68246)Stefan Monnier
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-02-24Merge from origin/emacs-29Eli Zaretskii
01ebc95114f Fix 'help-quick-toggle' afe49c7e2a2 ; * admin/authors.el (authors-aliases): Fix last change. 8b1f10f8cf4 ; Normalize Morgan Smith's attributions. 70cf4b694b3 ; * etc/PROBLEMS: Describe input lags due to GTK IM (bug#... f28a557c7d4 * doc/lispref/modes.texi (Tabulated List Mode): Update. d6131b5902a * lisp/net/tramp.el (tramp-methods): Fix typo in docstrin... 2eb85a9de1a ; * lisp/emacs-lisp/pcase.el (pcase-let*, pcase-let): Ano... 4c6653f23ae ; * lisp/emacs-lisp/pcase.el (pcase-let*, pcase-let): Doc... 5a64d2c7595 java-ts-mode: Indentation for opening brace on a separate... 9e56bd5ed87 Removed decommissioned PGP keyservers e56f0ef51bf org: Fix security prompt for downloading remote resource 65ba3274652 Revert "Update to Org 9.6.19" 07a392f445e Update to Org 9.6.19
2024-02-17java-ts-mode: Indentation for opening brace on a separate lineDmitry Gutov
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Support putting the opening brace on a separate line (bug#67556). * test/lisp/progmodes/java-ts-mode-resources/indent.erts: Add a test.
2024-01-02Merge from savannah/emacs-29Po Lu
dc4e6b13296 ; Update copyright years in more files 64b37776318 ; Run set-copyright from admin.el 8e1c56ae467 ; 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; Add 2024 to copyright yearsPo Lu
2023-09-26Extract feature list of java-ts-mode to a variableYuan Fu
* lisp/progmodes/java-ts-mode.el: (java-ts-mode--feature-list): New variable. (java-ts-mode): Extract out.
2023-09-23Merge from origin/emacs-29Eli Zaretskii
94bef169e2e Document shell-command-to-string security considerations b74d9e8bad9 Fix shell-indirect-setup-hook :type (Bug#66051) f549d4330f3 Remove column quoting from sqlite-mode cf7efabe3ff Add indentation rules for type_arguments
2023-09-17Add indentation rules for type_argumentsTheodor Thornhill
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent as opening braces.
2023-09-07Fix java-ts-mode tests (bug#65738)john muhl
* admin/notes/tree-sitter/build-module/batch.sh (languages): Add Java. * lisp/progmodes/java-ts-mode.el (java-ts-mode): Pass a list to 'treesit-thing-settings'.
2023-09-01Obsolete treesit-block/sexp/sentence/text-type-regexpYuan Fu
And replace them with treesit-thing-settings. * doc/lispref/positions.texi (List Motion): Remove mention of treesit-sexp/sentence-type-regexp. * lisp/progmodes/c-ts-mode.el (c-ts-base-mode) * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode) * lisp/progmodes/java-ts-mode.el (java-ts-mode) * lisp/progmodes/js.el (js-ts-mode) * lisp/progmodes/json-ts-mode.el (json-ts-mode) * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode) * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode) (tsx-ts-mode) * lisp/progmodes/heex-ts-mode.el (heex-ts-mode) * lisp/progmodes/sh-script.el (bash-ts-mode) * lisp/progmodes/prog-mode.el (prog-fill-reindent-defun) * lisp/textmodes/html-ts-mode.el (html-ts-mode): Replace treesit-sexp/sentence/text-type-regexp with treesit-thing-settings. * lisp/treesit.el (treesit-sexp-type-regexp) (treesit-sentence-type-regexp): Mark obsolete. (treesit-block-type-regexp): Remove. * lisp/treesit.el (treesit-forward-sexp) (treesit-transpose-sexps) (treesit-beginning-of-defun) (treesit-end-of-defun) (treesit-forward-sentence) (treesit-defun-at-point): Make use of treesit-thing-settings. (treesit-thing-definition) (treesit-thing-defined-p): New functions. (treesit-major-mode-setup): Replace treesit-sexp/sentence-type-regexp with treesit-thing-settings.
2023-07-30Backport: Fix some tree-sitter :match regexpsBasil L. Contovounesios
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 cd8d3f3379ec7179fac4bb8e9c40658be15a64f6)
2023-06-17Fix some tree-sitter :match regexpsBasil L. Contovounesios
This was originally installed on 2023-06-17 in the emacs-29 release branch and later reverted. The intention is to backport it after Emacs 29.1 is released. 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 (bug#64019).
2023-06-17Revert "Fix some tree-sitter :match regexps"Basil L. Contovounesios
This reverts commit 95091b77f0bbb2ae1aa94ef4a413626e7d434d58 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-17Fix some tree-sitter :match regexpsBasil L. Contovounesios
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 (bug#64019).
2023-06-17Merge from origin/emacs-29Eli Zaretskii
84d2da003e1 ; Fix example in the Flymake manual 0a1459f1d9b * doc/misc/calc.texi (Advanced Math Functions): Correct c... 92faf1f5645 Consider 'dired-kill-when-opening-new-dired-buffer' in mo... bafe71a69fc ; Fix use-package.texi markup 018e4ca6c5d ; * doc/misc/calc.texi (Advanced Math Functions): Fix las... 1952dbd4c5f Fix Gamma function definition in calc.texi f73f82d7e89 Fix subscripts in the Calc manual 70fc7c41ef3 Improve documentation of 'declare' forms c8357582389 ; * src/lread.c (bytecode_from_rev_list): Avoid C++ comment. 28478574961 Improve tree-sitter docs 0e9307eb2b8 Fix some Texinfo markup in manuals 8dc08333eea Fix bol/bos anchors in tree-sitter :match regexps 8225ade6151 ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: F... 1f0527a312a ; Fix last change in tex-mode.el 4da479920e6 * lisp/subr.el (with-restriction): Tweak indent rule 36aa9bd8183 ; Fix previous change aaeaf608d89 Fix setting region in the minibuffer 1383efe01d0 Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has sta... bdb0bc2b4e4 Fix tex-mode display-buffer issues 90047c38ce9 Add test for when 'completion-auto-help' is 'visible' 2c623e4feb9 Avoid errors in 'apropos-documentation' after 'eval-buffer' dd3b98121cc ; * doc/emacs/indent.texi (Indentation Commands): Fix las... 904edf1f076 Mention indent-rigidly in the Emacs manual
2023-06-13Fix bol/bos anchors in tree-sitter :match regexpsBasil L. Contovounesios
Further regexp fixes to follow separately (bug#64019#29). * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--font-lock-settings): * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): * lisp/progmodes/js.el (js--treesit-font-lock-settings): * lisp/progmodes/python.el (python--treesit-settings): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--font-lock-settings): * test/src/treesit-tests.el (treesit-query-api): Anchor :match regexps at beginning/end of string, not line.
2023-06-03Merge from origin/emacs-29Eli Zaretskii
ede3535051a ; Fix last change 8ec786349e1 Fix apostrophe handling in rust-ts-mode and go-ts-mode (B... 0eba9cf6511 * test/infra/Dockerfile.emba (emacs-base): Install also g... 4897c98b6c4 Fix 'python-util-clone-local-variables' 6b2c8dc9050 Revert "Enhance Python font-lock to support multilines" 348e4504c6d Fix typo in calc.texi 03663b8798a Update to Transient v0.4.1 dc7acb1aafe Avoid errors in 'delete-forward-char' deleting static com... 2f94f6de9d6 Make VS-15 and VS-16 compositions work correctly 753f8aa1f14 Fix project-name for vc-aware backend in non-file buffers 17c7915ab94 ; Fix 'package-install-upgrade-built-in' check for packag... e252ce26eab Add type_predicate 'is' as keyword in typescript-ts-mode ... 0a354d65784 Fix infloop in info-look.el 83b22139e4c Fix several todo-mode.el item editing bugs (bug#63811) ed4cd3eddf7 dockerfile-ts-mode: Prevent empty categories in imenu (Bu... 2e20e318da2 Brush up doc strings and terminology in plstore.el 372bc1278c2 Add internal documentation on plstore.el 23a14e7b902 Add compact_constructor_declaration font-locking to java-... 500abc4dc37 * lisp/tmm.el (tmm-completion-delete-prompt): Add more ch... afc1f329356 Allow to disable the DWIMish behavior of 'x' in package menu 08104c01504 Allow dired to invoke secondary browser a3063f0bc87 Add a binding for enriched-toggle-markup d8ba28fa394 Fix order of tmm-menubar when 'tmm-mid-prompt' is nil # Conflicts: # etc/NEWS
2023-05-30Add compact_constructor_declaration font-locking to java-ts-modeTheodor Thornhill
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): New pattern.
2023-03-14Merge from origin/emacs-29João Távora
4b6f2a7028b * lisp/progmodes/xref.el: Bump the version. 24c8b146bbc * lisp/progmodes/xref.el (xref--xref-buffer-mode): Split ... 46f9e53c3da Fix import of keys in buffer created by epa-search-keys 36ade0704e1 Fix connection-local variables settings e759905d2e0 ; Minor copyedits in EGLOT-NEWS ba22a2c346b Bump Eglot version to 1.12 54e123a5055 Update Eglot's manual about eglot-workspace-configuration 812597f864c ; * lisp/novice.el (disabled-command-function): Add note ... 4a603c98499 Amend last Eglot commit (bug#62065) b916ec88b2f Make eglot-ensure's post-command-hook run a bit later (bu... 1c05175c21a Fix display of disabled-command help text 3ce37db9882 Remove mention of old dotted-list reader quirk from manual 42335c2c1f1 Fix value history shown for 'gc-cons-percentage' fffbce29349 TRework fix for bug#62106 8bc12a27362 ; * etc/NEWS: Fix last change. 2ac068d294e ; Remove 'ns-popup-font-panel' from documentation 5bc32d008fb Add missing indentation rule for rust-ts-mode (Bug#62109) 0404924930d ; One more improvement to ELisp "internals" appendix. c857775ca61 Fix bug#62106 0fedbfa6a9d ; Minor improvement of documentation of GC thresholds b0b24ad2fc5 Add missing rust-ts-mode highlight query for scoped_type_... c0cf69f7a17 Make "case" keyword a dedenter in Python db178517ce7 ; * lisp/arc-mode.el (w32-get-console-codepage): Declare. 157a91b54be Fix decoding non-ASCII file names in zip archives on MS-W... 4803f972047 Fix copying binary files from zip archives 679f528b953 Skip ruby-ts-syntax-propertize-symbol unless treesitter i... 081cc7aa8e0 ; * doc/misc/eglot.texi (Project-specific configuration):... 1de513a29fa Fix enums and unions appearing as structs in c-ts-base-mo... ecdfd584a52 ruby-ts-mode: Fine-tune s-p-f on symbols (bug#62086) 29228e24f20 python-info-dedenter-opening-block-positions: Fix to supp... 01b65d442ad Autoload Eglot helper funtion eglot--debbugs-or-github-bu... 50a3559c5a7 Add chapter on advanced server configuration to Eglot manual 2e7460c2315 ; * lisp/progmodes/java-ts-mode.el (treesit-query-capture... 255eeee0e06 java-ts-mode: detect if text_block is supported. 6fe9075ff38 Revert workaround introduced in Bug#56271 f175141aead Fix searching for end of string in python-nav-end-of-stat... # Conflicts: # etc/NEWS
2023-03-09; * lisp/progmodes/java-ts-mode.el (treesit-query-capture): Declare.Eli Zaretskii
2023-03-09java-ts-mode: detect if text_block is supported.Vincenzo Pupillo
A recent commit in tree-sitter-java (issue #141) removed support for the text_block node type from the grammar. To support the old released version and the new one, a helper function was added on which the string syntax highlighting now depends. (bug#61913) * lisp/progmodes/java-ts-mode.el (java-ts-mode--string-highlight-helper): New helper function that return the right query string (java-ts-mode--font-lock-settings): Use it Copyright-paperwork-exempt: yes
2023-03-05Merge from origin/emacs-29Stefan Kangas
836044f329a Fix c-ts-mode preproc directive indentation 64980a59b65 ; * lisp/files.el (hack-local-variables): Fix typo in the... a7cd125d490 More robustly unspoof HOME in Eglot tests (bug#61637) 6c66dbd02c7 Turn on Eglot inlay hints by default 246f5b541c5 Update ts modes missed in 4c16fd3a512 to use column-0 0bfba49ca7c Robustify Eglot for "transient" projects ea5fd375bb2 Fix documentation of 'normal-mode' in buffers that don't ... 4c16fd3a512 Change tree-sitter indent anchor 'point-min' to 'column-0' f47b3930158 Fix go-ts-mode multi-line string indentation (bug#61923) e0bf2da3db6 ; More accurate doc strings for 'window-at' and 'window-a...