summaryrefslogtreecommitdiff
path: root/test/manual
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-01-12 23:15:00 -0700
committerTom Tromey <tom@tromey.com>2017-01-13 12:38:36 -0700
commit502390822f9c0068898ae41285b37568bf0e4d1c (patch)
tree08d55c4c60eeb803935779d6541db7ef171b02bd /test/manual
parentb47f97218efb8d9966e084bdfd8a86e8c47cf81d (diff)
downloademacs-502390822f9c0068898ae41285b37568bf0e4d1c.tar.gz
Add chained indentation to js-mode
Bug#20896 * lisp/progmodes/js.el (js-chain-indent): New variable. (js--skip-term-backward, js--skip-terms-backward) (js--chained-expression-p): New functions. (js--proper-indentation): Call js--chained-expression-p. * test/manual/indent/js-chain.js: New file. * test/manual/indent/js.js: Add (non-)chained indentation test.
Diffstat (limited to 'test/manual')
-rw-r--r--test/manual/indent/js-chain.js29
-rw-r--r--test/manual/indent/js.js4
2 files changed, 33 insertions, 0 deletions
diff --git a/test/manual/indent/js-chain.js b/test/manual/indent/js-chain.js
new file mode 100644
index 00000000000..2a290294026
--- /dev/null
+++ b/test/manual/indent/js-chain.js
@@ -0,0 +1,29 @@
+// Normal chaining.
+let x = svg.mumble()
+ .zzz;
+
+// Chaining with an intervening line comment.
+let x = svg.mumble() // line comment
+ .zzz;
+
+// Chaining with multiple dots.
+let x = svg.selectAll().something()
+ .zzz;
+
+// Nested chaining.
+let x = svg.selectAll(d3.svg.something()
+ .zzz);
+
+// Nothing to chain to.
+let x = svg()
+ .zzz;
+
+// Nothing to chain to.
+let x = svg().mumble.x() + 73
+ .zzz;
+
+// Local Variables:
+// indent-tabs-mode: nil
+// js-chain-indent: t
+// js-indent-level: 2
+// End:
diff --git a/test/manual/indent/js.js b/test/manual/indent/js.js
index d004b82f8bc..846c3a1a5c2 100644
--- a/test/manual/indent/js.js
+++ b/test/manual/indent/js.js
@@ -124,6 +124,10 @@ if (x > 72 &&
do_something();
}
+// Test that chaining doesn't happen when js-chain-indent is nil.
+let x = svg.mumble()
+ .zzz;
+
// Local Variables:
// indent-tabs-mode: nil
// js-indent-level: 2