From 44b306d3510e54432b76724583ea9405f1c90686 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 9 Apr 2019 11:09:56 +0300 Subject: [PATCH] ; * etc/NEWS: Fix recently added entries. --- etc/NEWS | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/etc/NEWS b/etc/NEWS index 42e7a4f995a..620d88c32a2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1261,20 +1261,28 @@ in a terminal frame. ** JS mode +--- *** JSX syntax is now automatically detected and enabled. If a file imports Facebook's 'React' library, or if the file uses the extension '.jsx', then various features supporting XML-like syntax will be supported in 'js-mode' and derivative modes. ('js-jsx-mode' no longer needs to be enabled.) +--- *** New defcustom 'js-jsx-detect-syntax' disables automatic detection. +This is turned on by default. +--- *** New defcustom 'js-jsx-syntax' enables JSX syntax unconditionally. +This is off by default. +--- *** New variable 'js-jsx-regexps' controls JSX detection. +--- *** JSX syntax is now highlighted like SGML. +--- *** JSX code is properly indented in many more scenarios. Previously, JSX indentation usually only worked when an element was wrapped in parenthesis (e.g. in a 'return' statement or a function @@ -1284,6 +1292,7 @@ supported; and, indentation conventions align more closely with those of the React developer community, otherwise still adhering to SGML conventions. +--- *** Indentation uses 'js-indent-level' instead of 'sgml-basic-offset'. It was never really intuitive that JSX indentation would be controlled by an SGML variable. JSX is a syntax extension of JavaScript, so it @@ -1292,13 +1301,16 @@ is technically a breaking change, but it will probably align with how you would normally expect for this indentation to be controlled, and you probably won't need to change your config. +--- *** New defcustom 'js-jsx-attribute-offset' for JSX attribute indents. +--- *** New variable 'js-syntactic-mode-name' controls mode name display. Previously, the mode name was simply 'JavaScript'. Now, when a syntax extension like JSX is enabled, the mode name is 'JavaScript[JSX]'. -Setting this variable to nil can disable the new formatting. +Set this variable to nil to disable the new behavior. +--- *** New function 'js-use-syntactic-mode-name' for deriving modes. Packages deriving from 'js-mode' with 'define-derived-mode' should call this function to add enabled syntax extensions to their mode -- 2.39.2