]> code.delx.au - gnu-emacs-elpa/blobdiff - README.md
Update README
[gnu-emacs-elpa] / README.md
index 19cd7e1488eb4f239ee6ca8fd66bf97b61b3eed4..beecc925107e2a88cb70dfa6a1b63425557f593c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -22,23 +22,6 @@ See <http://code.google.com/p/js2-mode/wiki/InstallationInstructions> for detail
 Differences between original js2-mode.el
 ========================================
 
-Support for abbreviated destructuring assignments
--------------------------------------------------
-
-    let {a, b}       = {a: 10, b: 20}; // Abbreviated   (Not supported in original js2-mode.el)
-    let {a: a, b: b} = {a: 10, b: 20}; // Same as above (Supported in original js2-mode.el)
-
-    (function ({responseText}) { /* */ })(xhr); // As the argument of function
-
-Support for expression closure in property value
-------------------------------------------------
-
-    let worker = {
-        get age() 20,
-        get sex() "male",
-        fire: function () _fire()
-    };
-
 Supported more popular indentation style
 ----------------------------------------
 
@@ -65,7 +48,42 @@ When js2-consistent-level-indent-inner-bracket-p is nil
                        return validate(v);
                    });
 
-Fixed the odd indentation of "else if" with no braces
+Fixed ugly indentation with multi-line variable declaration
+-----------------------------------------------------------
+
+In original js2-mode.el,
+
+    var foo = 10,
+    bar = 20,
+    baz = 30;
+
+In this js2-mode.el,
+
+    var foo = 10,
+        bar = 20,
+        baz = 30;
+
+Support for abbreviated destructuring assignments
+-------------------------------------------------
+
+    let {a, b}       = {a: 10, b: 20}; // Abbreviated   (Not supported in original js2-mode.el)
+    let {a: a, b: b} = {a: 10, b: 20}; // Same as above (Supported in original js2-mode.el)
+
+    (function ({responseText}) { /* */ })(xhr); // As the argument of function
+
+    for (let [k, { name, age }] in Iterator(obj)) // nested
+        print(k, name, age);
+
+Support for expression closure in property value
+------------------------------------------------
+
+    let worker = {
+        get age() 20,
+        get sex() "male",
+        fire: function () _fire()
+    };
+
+Fixed odd indentation of "else if" with no braces
 -----------------------------------------------------
 
 In original js2-mode.el,
@@ -82,6 +100,49 @@ In this js2-mode.el,
     else if (bar)
         return bar;  // fixed
 
+Fixes in Imenu support
+----------------------
+
+Supports element-get form:
+
+    foo["bar"] = function() {};
+    foo[647] = function() {};
+
+Proper position for functions in nested object literals:
+
+    foo = {
+        bar: function() {}, // ok in original
+        baz: {
+             boop: function() {} // fixed here
+        },
+    }
+
+Imenu support for function nesting
+----------------------------------
+
+Supports one level of nesting:
+
+    function foo() {
+        function bar() { // shown as foo.bar
+            function baz() {} // hidden
+        }
+    }
+
+Top-level function can be anonymous wrapper:
+
+    (function() {
+        var foo = function() {}; // shown as foo
+    })();
+
+Examples of output:
+
+* [Underscore.js](https://github.com/documentcloud/underscore/blob/master/underscore.js)
+-> <https://gist.github.com/824262>
+* [Backbone.js](https://github.com/documentcloud/backbone/blob/master/backbone.js)
+-> <https://gist.github.com/824260>
+
+No support for library-specific extension methods like _.extend.
+
 Bugs
 ====