Merge branch 'make-ts-derived-modes'
This commit is contained in:
commit
d707135952
32 changed files with 178 additions and 112 deletions
|
@ -32,9 +32,7 @@
|
|||
(electric-quote-comment . nil)
|
||||
(electric-quote-string . nil)
|
||||
(mode . bug-reference-prog)))
|
||||
(c-ts-mode . ((c-ts-mode-indent-style . gnu)
|
||||
(indent-tabs-mode . t)
|
||||
(mode . bug-reference-prog)))
|
||||
(c-ts-mode . ((c-ts-mode-indent-style . gnu))) ;Inherits `c-mode' settings.
|
||||
(log-edit-mode . ((log-edit-font-lock-gnu-style . t)
|
||||
(log-edit-setup-add-author . t)
|
||||
(vc-git-log-edit-summary-target-len . 50)
|
||||
|
|
10
etc/NEWS
10
etc/NEWS
|
@ -62,6 +62,16 @@ more details.
|
|||
|
||||
* Incompatible Changes in Emacs 30.1
|
||||
|
||||
** Tree-Sitter modes are now declared as submodes of the non-TS modes.
|
||||
In order to help the use of those Tree-Sitter modes, they are now
|
||||
declared to have the corresponding non-Tree-Sitter mode as an
|
||||
additional parent.
|
||||
This way, things like `.dir-locals.el` settings, and YASnippet
|
||||
collections of snippets automatically apply to the new Tree-Sitter modes.
|
||||
|
||||
Note that those modes still do not inherit from the non-TS mode, so
|
||||
configuration settings installed via mode hooks are not affected.
|
||||
|
||||
+++
|
||||
** URL now never sends user email addresses in HTTP requests.
|
||||
Emacs never sent email addresses by default, but it used to be
|
||||
|
|
|
@ -181,13 +181,12 @@ If nil, then no messages will ever be printed to the minibuffer."
|
|||
:type '(choice (const :tag "Align a large region silently" nil) integer)
|
||||
:group 'align)
|
||||
|
||||
(defcustom align-c++-modes '( c++-mode c-mode java-mode
|
||||
c-ts-mode c++-ts-mode)
|
||||
(defcustom align-c++-modes '( c++-mode c-mode java-mode)
|
||||
"A list of modes whose syntax resembles C/C++."
|
||||
:type '(repeat symbol)
|
||||
:group 'align)
|
||||
|
||||
(defcustom align-perl-modes '(perl-mode cperl-mode)
|
||||
(defcustom align-perl-modes '(perl-mode)
|
||||
"A list of modes where Perl syntax is to be seen."
|
||||
:type '(repeat symbol)
|
||||
:group 'align)
|
||||
|
@ -576,13 +575,13 @@ The possible settings for `align-region-separate' are:
|
|||
"="
|
||||
(group (zero-or-more (syntax whitespace)))))
|
||||
(group . (1 2))
|
||||
(modes . '(conf-toml-mode toml-ts-mode lua-mode lua-ts-mode)))
|
||||
(modes . '(conf-toml-mode lua-mode)))
|
||||
|
||||
(double-dash-comment
|
||||
(regexp . ,(rx (group (zero-or-more (syntax whitespace)))
|
||||
"--"
|
||||
(zero-or-more nonl)))
|
||||
(modes . '(lua-mode lua-ts-mode))
|
||||
(modes . '(lua-mode))
|
||||
(column . comment-column)
|
||||
(valid . ,(lambda ()
|
||||
(save-excursion
|
||||
|
|
|
@ -44,9 +44,7 @@ those hits returned.")
|
|||
|
||||
(defvar semantic-symref-filepattern-alist
|
||||
'((c-mode "*.[ch]")
|
||||
(c-ts-mode "*.[ch]")
|
||||
(c++-mode "*.[chCH]" "*.[ch]pp" "*.cc" "*.hh")
|
||||
(c++-ts-mode "*.[chCH]" "*.[ch]pp" "*.cc" "*.hh")
|
||||
(html-mode "*.html" "*.shtml" "*.php")
|
||||
(mhtml-mode "*.html" "*.shtml" "*.php") ; FIXME: remove
|
||||
; duplication of
|
||||
|
@ -55,12 +53,8 @@ those hits returned.")
|
|||
; major mode definition?
|
||||
(ruby-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml"
|
||||
"Rakefile" "Thorfile" "Capfile" "Guardfile" "Vagrantfile")
|
||||
(ruby-ts-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml"
|
||||
"Rakefile" "Thorfile" "Capfile" "Guardfile" "Vagrantfile")
|
||||
(python-mode "*.py" "*.pyi" "*.pyw")
|
||||
(python-ts-mode "*.py" "*.pyi" "*.pyw")
|
||||
(perl-mode "*.pl" "*.PL")
|
||||
(cperl-mode "*.pl" "*.PL")
|
||||
(lisp-interaction-mode "*.el" "*.ede" ".emacs" "_emacs")
|
||||
)
|
||||
"List of major modes and file extension pattern.
|
||||
|
|
|
@ -388,7 +388,6 @@ widget."
|
|||
idl-mode
|
||||
|
||||
perl-mode
|
||||
cperl-mode
|
||||
javascript-mode
|
||||
tcl-mode
|
||||
python-mode
|
||||
|
|
|
@ -4446,6 +4446,12 @@ to see whether it should be considered."
|
|||
(funcall predicate key)
|
||||
(or (not key)
|
||||
(derived-mode-p key)))
|
||||
;; If KEY is an extra parent it may remain not loaded
|
||||
;; (hence with some of its mode-specific vars missing their
|
||||
;; `safe-local-variable' property), leading to spurious
|
||||
;; prompts about unsafe vars (bug#68246).
|
||||
(if (and (symbolp key) (autoloadp (indirect-function key)))
|
||||
(ignore-errors (autoload-do-load (indirect-function key))))
|
||||
(let* ((alist (cdr entry))
|
||||
(subdirs (assq 'subdirs alist)))
|
||||
(if (or (not subdirs)
|
||||
|
|
|
@ -586,6 +586,7 @@ If a window system is unavailable, calls `hfy-fallback-color-values'."
|
|||
(defvar hfy-cperl-mode-kludged-p nil)
|
||||
|
||||
(defun hfy-kludge-cperl-mode ()
|
||||
;; FIXME: Still?
|
||||
"CPerl mode does its damnedest not to do some of its fontification when not
|
||||
in a windowing system - try to trick it..."
|
||||
(declare (obsolete nil "28.1"))
|
||||
|
|
|
@ -985,9 +985,8 @@ Return nil if there is nothing appropriate in the buffer near point."
|
|||
finally return "(python)Index")))))
|
||||
|
||||
(info-lookup-maybe-add-help
|
||||
:mode 'cperl-mode
|
||||
:regexp "[$@%][^a-zA-Z]\\|\\$\\^[A-Z]\\|[$@%]?[a-zA-Z][_a-zA-Z0-9]*"
|
||||
:other-modes '(perl-mode))
|
||||
:mode 'perl-mode
|
||||
:regexp "[$@%][^a-zA-Z]\\|\\$\\^[A-Z]\\|[$@%]?[a-zA-Z][_a-zA-Z0-9]*")
|
||||
|
||||
(info-lookup-maybe-add-help
|
||||
:mode 'latex-mode
|
||||
|
|
|
@ -1328,6 +1328,8 @@ in your configuration."
|
|||
(lambda (_pos) 'c))
|
||||
(treesit-font-lock-recompute-features '(emacs-devel)))))
|
||||
|
||||
(derived-mode-add-parents 'c-ts-mode '(c-mode))
|
||||
|
||||
;;;###autoload
|
||||
(define-derived-mode c++-ts-mode c-ts-base-mode "C++"
|
||||
"Major mode for editing C++, powered by tree-sitter.
|
||||
|
@ -1371,6 +1373,8 @@ recommended to enable `electric-pair-mode' with this mode."
|
|||
(setq-local add-log-current-defun-function
|
||||
#'c-ts-mode--emacs-current-defun-name))))
|
||||
|
||||
(derived-mode-add-parents 'c++-ts-mode '(c++-mode))
|
||||
|
||||
(easy-menu-define c-ts-mode-menu (list c-ts-mode-map c++-ts-mode-map)
|
||||
"Menu for `c-ts-mode' and `c++-ts-mode'."
|
||||
'("C/C++"
|
||||
|
|
|
@ -243,6 +243,8 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'cmake-ts-mode '(cmake-mode))
|
||||
|
||||
(if (treesit-ready-p 'cmake)
|
||||
(add-to-list 'auto-mode-alist
|
||||
'("\\(?:CMakeLists\\.txt\\|\\.cmake\\)\\'" . cmake-ts-mode)))
|
||||
|
|
|
@ -1934,6 +1934,8 @@ or as help on variables `cperl-tips', `cperl-problems',
|
|||
;; Setup Flymake
|
||||
(add-hook 'flymake-diagnostic-functions #'perl-flymake nil t))
|
||||
|
||||
(derived-mode-add-parents 'cperl-mode '(perl-mode))
|
||||
|
||||
(defun cperl--set-file-style ()
|
||||
(when cperl-file-style
|
||||
(cperl-file-style cperl-file-style)))
|
||||
|
|
|
@ -998,6 +998,8 @@ Key bindings:
|
|||
|
||||
(add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-ts-mode)))
|
||||
|
||||
(derived-mode-add-parents 'csharp-ts-mode '(csharp-mode))
|
||||
|
||||
(provide 'csharp-mode)
|
||||
|
||||
;;; csharp-mode.el ends here
|
||||
|
|
|
@ -165,6 +165,8 @@ Return nil if there is no name or if NODE is not a stage node."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'dockerfile-ts-mode '(dockerfile-mode))
|
||||
|
||||
(if (treesit-ready-p 'dockerfile)
|
||||
(add-to-list 'auto-mode-alist
|
||||
;; NOTE: We can't use `rx' here, as it breaks bootstrap.
|
||||
|
|
|
@ -226,94 +226,105 @@ automatically)."
|
|||
when probe return (cons probe args)
|
||||
finally (funcall err)))))))
|
||||
|
||||
(defvar eglot-server-programs `(((rust-ts-mode rust-mode) . ("rust-analyzer"))
|
||||
((cmake-mode cmake-ts-mode) . ("cmake-language-server"))
|
||||
(vimrc-mode . ("vim-language-server" "--stdio"))
|
||||
((python-mode python-ts-mode)
|
||||
. ,(eglot-alternatives
|
||||
'("pylsp" "pyls" ("pyright-langserver" "--stdio") "jedi-language-server" "ruff-lsp")))
|
||||
((js-json-mode json-mode json-ts-mode)
|
||||
. ,(eglot-alternatives '(("vscode-json-language-server" "--stdio")
|
||||
("vscode-json-languageserver" "--stdio")
|
||||
("json-languageserver" "--stdio"))))
|
||||
(((js-mode :language-id "javascript")
|
||||
(js-ts-mode :language-id "javascript")
|
||||
(tsx-ts-mode :language-id "typescriptreact")
|
||||
(typescript-ts-mode :language-id "typescript")
|
||||
(typescript-mode :language-id "typescript"))
|
||||
. ("typescript-language-server" "--stdio"))
|
||||
((bash-ts-mode sh-mode) . ("bash-language-server" "start"))
|
||||
((php-mode phps-mode php-ts-mode)
|
||||
. ,(eglot-alternatives
|
||||
'(("phpactor" "language-server")
|
||||
("php" "vendor/felixfbecker/language-server/bin/php-language-server.php"))))
|
||||
((c-mode c-ts-mode c++-mode c++-ts-mode objc-mode)
|
||||
. ,(eglot-alternatives
|
||||
'("clangd" "ccls")))
|
||||
(((caml-mode :language-id "ocaml")
|
||||
(tuareg-mode :language-id "ocaml") reason-mode)
|
||||
. ("ocamllsp"))
|
||||
((ruby-mode ruby-ts-mode)
|
||||
. ("solargraph" "socket" "--port" :autoport))
|
||||
(haskell-mode
|
||||
. ("haskell-language-server-wrapper" "--lsp"))
|
||||
(elm-mode . ("elm-language-server"))
|
||||
(mint-mode . ("mint" "ls"))
|
||||
((kotlin-mode kotlin-ts-mode) . ("kotlin-language-server"))
|
||||
((go-mode go-dot-mod-mode go-dot-work-mode go-ts-mode go-mod-ts-mode)
|
||||
. ("gopls"))
|
||||
((R-mode ess-r-mode) . ("R" "--slave" "-e"
|
||||
"languageserver::run()"))
|
||||
((java-mode java-ts-mode) . ("jdtls"))
|
||||
((dart-mode dart-ts-mode)
|
||||
. ("dart" "language-server"
|
||||
"--client-id" "emacs.eglot-dart"))
|
||||
((elixir-mode elixir-ts-mode heex-ts-mode)
|
||||
. ,(if (and (fboundp 'w32-shell-dos-semantics)
|
||||
(w32-shell-dos-semantics))
|
||||
'("language_server.bat")
|
||||
(eglot-alternatives
|
||||
'("language_server.sh" "start_lexical.sh"))))
|
||||
(ada-mode . ("ada_language_server"))
|
||||
(scala-mode . ,(eglot-alternatives
|
||||
'("metals" "metals-emacs")))
|
||||
(racket-mode . ("racket" "-l" "racket-langserver"))
|
||||
((tex-mode context-mode texinfo-mode bibtex-mode)
|
||||
. ,(eglot-alternatives '("digestif" "texlab")))
|
||||
(erlang-mode . ("erlang_ls" "--transport" "stdio"))
|
||||
((yaml-ts-mode yaml-mode) . ("yaml-language-server" "--stdio"))
|
||||
(nix-mode . ,(eglot-alternatives '("nil" "rnix-lsp" "nixd")))
|
||||
(nickel-mode . ("nls"))
|
||||
((nushell-mode nushell-ts-mode) . ("nu" "--lsp"))
|
||||
(gdscript-mode . ("localhost" 6008))
|
||||
((fortran-mode f90-mode) . ("fortls"))
|
||||
(futhark-mode . ("futhark" "lsp"))
|
||||
((lua-mode lua-ts-mode) . ,(eglot-alternatives
|
||||
'("lua-language-server" "lua-lsp")))
|
||||
(zig-mode . ("zls"))
|
||||
((css-mode css-ts-mode)
|
||||
. ,(eglot-alternatives '(("vscode-css-language-server" "--stdio")
|
||||
("css-languageserver" "--stdio"))))
|
||||
(html-mode . ,(eglot-alternatives '(("vscode-html-language-server" "--stdio") ("html-languageserver" "--stdio"))))
|
||||
((dockerfile-mode dockerfile-ts-mode) . ("docker-langserver" "--stdio"))
|
||||
((clojure-mode clojurescript-mode clojurec-mode clojure-ts-mode)
|
||||
. ("clojure-lsp"))
|
||||
((csharp-mode csharp-ts-mode)
|
||||
. ,(eglot-alternatives
|
||||
'(("omnisharp" "-lsp")
|
||||
("csharp-ls"))))
|
||||
(purescript-mode . ("purescript-language-server" "--stdio"))
|
||||
((perl-mode cperl-mode) . ("perl" "-MPerl::LanguageServer" "-e" "Perl::LanguageServer::run"))
|
||||
(markdown-mode
|
||||
. ,(eglot-alternatives
|
||||
'(("marksman" "server")
|
||||
("vscode-markdown-language-server" "--stdio"))))
|
||||
(graphviz-dot-mode . ("dot-language-server" "--stdio"))
|
||||
(terraform-mode . ("terraform-ls" "serve"))
|
||||
((uiua-ts-mode uiua-mode) . ("uiua" "lsp"))
|
||||
(sml-mode
|
||||
. ,(lambda (_interactive project)
|
||||
(list "millet-ls" (project-root project)))))
|
||||
(defvar eglot-server-programs
|
||||
;; FIXME: Maybe this info should be distributed into the major modes
|
||||
;; themselves where they could set a buffer-local `eglot-server-program'
|
||||
;; instead of keeping this database centralized.
|
||||
;; FIXME: With `derived-mode-add-parents' in Emacs≥30, some of
|
||||
;; those entries can be simplified, but we keep them for when
|
||||
;; `eglot.el' is installed via GNU ELPA in an older Emacs.
|
||||
`(((rust-ts-mode rust-mode) . ("rust-analyzer"))
|
||||
((cmake-mode cmake-ts-mode) . ("cmake-language-server"))
|
||||
(vimrc-mode . ("vim-language-server" "--stdio"))
|
||||
((python-mode python-ts-mode)
|
||||
. ,(eglot-alternatives
|
||||
'("pylsp" "pyls" ("pyright-langserver" "--stdio")
|
||||
"jedi-language-server" "ruff-lsp")))
|
||||
((js-json-mode json-mode json-ts-mode)
|
||||
. ,(eglot-alternatives '(("vscode-json-language-server" "--stdio")
|
||||
("vscode-json-languageserver" "--stdio")
|
||||
("json-languageserver" "--stdio"))))
|
||||
(((js-mode :language-id "javascript")
|
||||
(js-ts-mode :language-id "javascript")
|
||||
(tsx-ts-mode :language-id "typescriptreact")
|
||||
(typescript-ts-mode :language-id "typescript")
|
||||
(typescript-mode :language-id "typescript"))
|
||||
. ("typescript-language-server" "--stdio"))
|
||||
((bash-ts-mode sh-mode) . ("bash-language-server" "start"))
|
||||
((php-mode phps-mode php-ts-mode)
|
||||
. ,(eglot-alternatives
|
||||
'(("phpactor" "language-server")
|
||||
("php" "vendor/felixfbecker/language-server/bin/php-language-server.php"))))
|
||||
((c-mode c-ts-mode c++-mode c++-ts-mode objc-mode)
|
||||
. ,(eglot-alternatives
|
||||
'("clangd" "ccls")))
|
||||
(((caml-mode :language-id "ocaml")
|
||||
(tuareg-mode :language-id "ocaml") reason-mode)
|
||||
. ("ocamllsp"))
|
||||
((ruby-mode ruby-ts-mode)
|
||||
. ("solargraph" "socket" "--port" :autoport))
|
||||
(haskell-mode
|
||||
. ("haskell-language-server-wrapper" "--lsp"))
|
||||
(elm-mode . ("elm-language-server"))
|
||||
(mint-mode . ("mint" "ls"))
|
||||
((kotlin-mode kotlin-ts-mode) . ("kotlin-language-server"))
|
||||
((go-mode go-dot-mod-mode go-dot-work-mode go-ts-mode go-mod-ts-mode)
|
||||
. ("gopls"))
|
||||
((R-mode ess-r-mode) . ("R" "--slave" "-e"
|
||||
"languageserver::run()"))
|
||||
((java-mode java-ts-mode) . ("jdtls"))
|
||||
((dart-mode dart-ts-mode)
|
||||
. ("dart" "language-server"
|
||||
"--client-id" "emacs.eglot-dart"))
|
||||
((elixir-mode elixir-ts-mode heex-ts-mode)
|
||||
. ,(if (and (fboundp 'w32-shell-dos-semantics)
|
||||
(w32-shell-dos-semantics))
|
||||
'("language_server.bat")
|
||||
(eglot-alternatives
|
||||
'("language_server.sh" "start_lexical.sh"))))
|
||||
(ada-mode . ("ada_language_server"))
|
||||
(scala-mode . ,(eglot-alternatives
|
||||
'("metals" "metals-emacs")))
|
||||
(racket-mode . ("racket" "-l" "racket-langserver"))
|
||||
((tex-mode context-mode texinfo-mode bibtex-mode)
|
||||
. ,(eglot-alternatives '("digestif" "texlab")))
|
||||
(erlang-mode . ("erlang_ls" "--transport" "stdio"))
|
||||
((yaml-ts-mode yaml-mode) . ("yaml-language-server" "--stdio"))
|
||||
(nix-mode . ,(eglot-alternatives '("nil" "rnix-lsp" "nixd")))
|
||||
(nickel-mode . ("nls"))
|
||||
((nushell-mode nushell-ts-mode) . ("nu" "--lsp"))
|
||||
(gdscript-mode . ("localhost" 6008))
|
||||
((fortran-mode f90-mode) . ("fortls"))
|
||||
(futhark-mode . ("futhark" "lsp"))
|
||||
((lua-mode lua-ts-mode) . ,(eglot-alternatives
|
||||
'("lua-language-server" "lua-lsp")))
|
||||
(zig-mode . ("zls"))
|
||||
((css-mode css-ts-mode)
|
||||
. ,(eglot-alternatives '(("vscode-css-language-server" "--stdio")
|
||||
("css-languageserver" "--stdio"))))
|
||||
(html-mode . ,(eglot-alternatives
|
||||
'(("vscode-html-language-server" "--stdio")
|
||||
("html-languageserver" "--stdio"))))
|
||||
((dockerfile-mode dockerfile-ts-mode) . ("docker-langserver" "--stdio"))
|
||||
((clojure-mode clojurescript-mode clojurec-mode clojure-ts-mode)
|
||||
. ("clojure-lsp"))
|
||||
((csharp-mode csharp-ts-mode)
|
||||
. ,(eglot-alternatives
|
||||
'(("omnisharp" "-lsp")
|
||||
("csharp-ls"))))
|
||||
(purescript-mode . ("purescript-language-server" "--stdio"))
|
||||
((perl-mode cperl-mode)
|
||||
. ("perl" "-MPerl::LanguageServer" "-e" "Perl::LanguageServer::run"))
|
||||
(markdown-mode
|
||||
. ,(eglot-alternatives
|
||||
'(("marksman" "server")
|
||||
("vscode-markdown-language-server" "--stdio"))))
|
||||
(graphviz-dot-mode . ("dot-language-server" "--stdio"))
|
||||
(terraform-mode . ("terraform-ls" "serve"))
|
||||
((uiua-ts-mode uiua-mode) . ("uiua" "lsp"))
|
||||
(sml-mode
|
||||
. ,(lambda (_interactive project)
|
||||
(list "millet-ls" (project-root project)))))
|
||||
"How the command `eglot' guesses the server to start.
|
||||
An association list of (MAJOR-MODE . CONTACT) pairs. MAJOR-MODE
|
||||
identifies the buffers that are to be managed by a specific
|
||||
|
|
|
@ -753,6 +753,8 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
(treesit-major-mode-setup)
|
||||
(setq-local syntax-propertize-function #'elixir-ts--syntax-propertize)))
|
||||
|
||||
(derived-mode-add-parents 'elixir-ts-mode '(elixir-mode))
|
||||
|
||||
(if (treesit-ready-p 'elixir)
|
||||
(progn
|
||||
(add-to-list 'auto-mode-alist '("\\.elixir\\'" . elixir-ts-mode))
|
||||
|
|
|
@ -261,6 +261,8 @@
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'go-ts-mode '(go-mode))
|
||||
|
||||
(if (treesit-ready-p 'go)
|
||||
;; FIXME: Should we instead put `go-mode' in `auto-mode-alist'
|
||||
;; and then use `major-mode-remap-defaults' to map it to `go-ts-mode'?
|
||||
|
@ -439,6 +441,8 @@ what the parent of the node would be if it were a node."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'go-mod-ts-mode '(go-mod-mode))
|
||||
|
||||
(if (treesit-ready-p 'gomod)
|
||||
(add-to-list 'auto-mode-alist '("/go\\.mod\\'" . go-mod-ts-mode)))
|
||||
|
||||
|
|
|
@ -3671,8 +3671,7 @@ Treats actions as defuns."
|
|||
(remove-hook 'after-save-hook #'gdb-create-define-alist t))))
|
||||
|
||||
(defcustom gud-tooltip-modes '( gud-mode c-mode c++-mode fortran-mode
|
||||
python-mode c-ts-mode c++-ts-mode
|
||||
python-ts-mode)
|
||||
python-mode)
|
||||
"List of modes for which to enable GUD tooltips."
|
||||
:type '(repeat (symbol :tag "Major mode"))
|
||||
:group 'tooltip)
|
||||
|
@ -3708,10 +3707,9 @@ only tooltips in the buffer containing the overlay arrow."
|
|||
#'gud-tooltip-activate-mouse-motions-if-enabled)
|
||||
(dolist (buffer (buffer-list))
|
||||
(with-current-buffer buffer
|
||||
(if (and gud-tooltip-mode
|
||||
(memq major-mode gud-tooltip-modes))
|
||||
(gud-tooltip-activate-mouse-motions t)
|
||||
(gud-tooltip-activate-mouse-motions nil)))))
|
||||
(gud-tooltip-activate-mouse-motions
|
||||
(and gud-tooltip-mode
|
||||
(derived-mode-p gud-tooltip-modes))))))
|
||||
|
||||
(defvar gud-tooltip-mouse-motions-active nil
|
||||
"Locally t in a buffer if tooltip processing of mouse motion is enabled.")
|
||||
|
|
|
@ -187,6 +187,8 @@ With ARG, do it many times. Negative ARG means move backward."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'heex-ts-mode '(heex-mode))
|
||||
|
||||
(if (treesit-ready-p 'heex)
|
||||
;; Both .heex and the deprecated .leex files should work
|
||||
;; with the tree-sitter-heex grammar.
|
||||
|
|
|
@ -254,6 +254,9 @@ This has effect only if `search-invisible' is set to `open'."
|
|||
|
||||
;;;###autoload
|
||||
(defvar hs-special-modes-alist
|
||||
;; FIXME: Currently the check is made via
|
||||
;; (assoc major-mode hs-special-modes-alist) so it doesn't pay attention
|
||||
;; to the mode hierarchy.
|
||||
(mapcar #'purecopy
|
||||
'((c-mode "{" "}" "/[*/]" nil nil)
|
||||
(c-ts-mode "{" "}" "/[*/]" nil nil)
|
||||
|
|
|
@ -406,6 +406,8 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
("Method" "\\`method_declaration\\'" nil nil)))
|
||||
(treesit-major-mode-setup))
|
||||
|
||||
(derived-mode-add-parents 'java-ts-mode '(java-mode))
|
||||
|
||||
(if (treesit-ready-p 'java)
|
||||
(add-to-list 'auto-mode-alist '("\\.java\\'" . java-ts-mode)))
|
||||
|
||||
|
|
|
@ -3916,6 +3916,8 @@ See `treesit-thing-settings' for more information.")
|
|||
(add-to-list 'auto-mode-alist
|
||||
'("\\(\\.js[mx]\\|\\.har\\)\\'" . js-ts-mode))))
|
||||
|
||||
(derived-mode-add-parents 'js-ts-mode '(js-mode))
|
||||
|
||||
(defvar js-ts--s-p-query
|
||||
(when (treesit-available-p)
|
||||
(treesit-query-compile 'javascript
|
||||
|
|
|
@ -164,6 +164,8 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
|
||||
(treesit-major-mode-setup))
|
||||
|
||||
(derived-mode-add-parents 'json-ts-mode '(json-mode))
|
||||
|
||||
(if (treesit-ready-p 'json)
|
||||
(add-to-list 'auto-mode-alist
|
||||
'("\\.json\\'" . json-ts-mode)))
|
||||
|
|
|
@ -798,6 +798,8 @@ Calls REPORT-FN directly."
|
|||
|
||||
(add-hook 'flymake-diagnostic-functions #'lua-ts-flymake-luacheck nil 'local))
|
||||
|
||||
(derived-mode-add-parents 'lua-ts-mode '(lua-mode))
|
||||
|
||||
(when (treesit-ready-p 'lua)
|
||||
(add-to-list 'auto-mode-alist '("\\.lua\\'" . lua-ts-mode)))
|
||||
|
||||
|
|
|
@ -7128,6 +7128,8 @@ implementations: `python-mode' and `python-ts-mode'."
|
|||
(add-to-list 'auto-mode-alist '("\\.py[iw]?\\'" . python-ts-mode))
|
||||
(add-to-list 'interpreter-mode-alist '("python[0-9.]*" . python-ts-mode))))
|
||||
|
||||
(derived-mode-add-parents 'python-ts-mode '(python-mode))
|
||||
|
||||
;;; Completion predicates for M-x
|
||||
;; Commands that only make sense when editing Python code.
|
||||
(dolist (sym '(python-add-import
|
||||
|
|
|
@ -1210,6 +1210,8 @@ leading double colon is not added."
|
|||
|
||||
(setq-local syntax-propertize-function #'ruby-ts--syntax-propertize))
|
||||
|
||||
(derived-mode-add-parents 'ruby-ts-mode '(ruby-mode))
|
||||
|
||||
(if (treesit-ready-p 'ruby)
|
||||
(add-to-list 'major-mode-remap-defaults
|
||||
'(ruby-mode . ruby-ts-mode)))
|
||||
|
|
|
@ -474,6 +474,8 @@ See `prettify-symbols-compose-predicate'."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'rust-ts-mode '(rust-mode))
|
||||
|
||||
(if (treesit-ready-p 'rust)
|
||||
(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-ts-mode)))
|
||||
|
||||
|
|
|
@ -1639,6 +1639,8 @@ not written in Bash or sh."
|
|||
(setq-local treesit-defun-type-regexp "function_definition")
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'bash-ts-mode '(sh-mode))
|
||||
|
||||
(advice-add 'bash-ts-mode :around #'sh--redirect-bash-ts-mode
|
||||
;; Give it lower precedence than normal advice, so other
|
||||
;; advices take precedence over it.
|
||||
|
|
|
@ -505,6 +505,8 @@ This mode is intended to be inherited by concrete major modes."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'typescript-ts-mode '(typescript-mode))
|
||||
|
||||
(if (treesit-ready-p 'typescript)
|
||||
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode)))
|
||||
|
||||
|
@ -562,6 +564,8 @@ at least 3 (which is the default value)."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'tsx-ts-mode '(tsx-mode))
|
||||
|
||||
(defvar typescript-ts--s-p-query
|
||||
(when (treesit-available-p)
|
||||
(treesit-query-compile 'typescript
|
||||
|
|
|
@ -1830,6 +1830,8 @@ can also be used to fill comments.
|
|||
|
||||
(add-to-list 'auto-mode-alist '("\\.css\\'" . css-ts-mode))))
|
||||
|
||||
(derived-mode-add-parents 'css-ts-mode '(css-mode))
|
||||
|
||||
;;;###autoload
|
||||
(define-derived-mode css-mode css-base-mode "CSS"
|
||||
"Major mode to edit Cascading Style Sheets (CSS).
|
||||
|
|
|
@ -134,6 +134,8 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
|
||||
(treesit-major-mode-setup))
|
||||
|
||||
(derived-mode-add-parents 'html-ts-mode '(html-mode))
|
||||
|
||||
(if (treesit-ready-p 'html)
|
||||
(add-to-list 'auto-mode-alist '("\\.html\\'" . html-ts-mode)))
|
||||
|
||||
|
|
|
@ -153,6 +153,8 @@ Return nil if there is no name or if NODE is not a defun node."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'toml-ts-mode '(toml-mode))
|
||||
|
||||
(if (treesit-ready-p 'toml)
|
||||
(add-to-list 'auto-mode-alist '("\\.toml\\'" . toml-ts-mode)))
|
||||
|
||||
|
|
|
@ -169,6 +169,8 @@ boundaries. JUSTIFY is passed to `fill-paragraph'."
|
|||
|
||||
(treesit-major-mode-setup)))
|
||||
|
||||
(derived-mode-add-parents 'yaml-ts-mode '(yaml-mode))
|
||||
|
||||
(if (treesit-ready-p 'yaml)
|
||||
(add-to-list 'auto-mode-alist '("\\.ya?ml\\'" . yaml-ts-mode)))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue