[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 314c939d1e1: (js-json-mode): Don't derive from `js-mode` (bug#674
From: |
Stefan Monnier |
Subject: |
master 314c939d1e1: (js-json-mode): Don't derive from `js-mode` (bug#67463) |
Date: |
Sun, 14 Jan 2024 22:17:25 -0500 (EST) |
branch: master
commit 314c939d1e182b8d015fc9c63d445274e0494748
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
(js-json-mode): Don't derive from `js-mode` (bug#67463)
* lisp/progmodes/js.el (js--mode-setup): New function, extracted from
`js-mode`.
(js-mode): Use it.
(js-json-mode): Use it instead of inheriting from `js-mode`.
---
etc/NEWS | 5 +++++
lisp/progmodes/js.el | 7 ++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/etc/NEWS b/etc/NEWS
index da0253e97dc..03b8c3b517a 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1002,6 +1002,11 @@ which calls 'xref-find-definitions'. If the previous
one worked
better for you, use 'define-key' in your init script to bind
'js-find-symbol' to that combination again.
+** Json mode
+`js-json-mode` does not derive from `js-mode` any more so as not
+to confuse tools like Eglot or YASnippet into thinking that those
+buffers contain Javascript code.
+
** Python mode
---
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 0115feb0e97..947d91c9b1a 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -3702,6 +3702,9 @@ Currently there are `js-mode' and `js-ts-mode'."
(define-derived-mode js-mode js-base-mode "JavaScript"
"Major mode for editing JavaScript."
:group 'js
+ (js--mode-setup))
+
+(defun js--mode-setup ()
;; Ensure all CC Mode "lang variables" are set to valid values.
(c-init-language-vars js-mode)
(setq-local indent-line-function #'js-indent-line)
@@ -3924,7 +3927,9 @@ See `treesit-thing-settings' for more information.")
(put-text-property (1- ne) ne 'syntax-table syntax)))))
;;;###autoload
-(define-derived-mode js-json-mode js-mode "JSON"
+(define-derived-mode js-json-mode prog-mode "JSON"
+ :syntax-table js-mode-syntax-table
+ (js--mode-setup) ;Reuse most of `js-mode', but not as parent (bug#67463).
(setq-local js-enabled-frameworks nil)
;; Speed up `syntax-ppss': JSON files can be big but can't hold
;; regexp matchers nor #! thingies (and `js-enabled-frameworks' is nil).
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 314c939d1e1: (js-json-mode): Don't derive from `js-mode` (bug#67463),
Stefan Monnier <=