summaryrefslogtreecommitdiff
path: root/test/normal/object
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2017-06-09 10:48:37 +0100
committerMaxime Coste <mawww@kakoune.org>2017-06-09 10:48:37 +0100
commitfb81b1bc86cf317cd7cc672a6059eed6f792260d (patch)
treeb7ca70777608e15ee962467c755562d087c9bd91 /test/normal/object
parent242f951c84973467b7b08be233f81c0029710516 (diff)
Rename 'unit' test directory to 'normal' as they are the normal mode tests
Diffstat (limited to 'test/normal/object')
-rw-r--r--test/normal/object/around/angle/cmd1
-rw-r--r--test/normal/object/around/angle/in1
-rw-r--r--test/normal/object/around/angle/selections1
-rw-r--r--test/normal/object/around/argument/multi-level/cmd1
-rw-r--r--test/normal/object/around/argument/multi-level/in2
-rw-r--r--test/normal/object/around/argument/multi-level/selections1
-rw-r--r--test/normal/object/around/argument/single-level/cmd1
-rw-r--r--test/normal/object/around/argument/single-level/in1
-rw-r--r--test/normal/object/around/argument/single-level/selections1
-rw-r--r--test/normal/object/around/big-word/cmd1
-rw-r--r--test/normal/object/around/big-word/in1
-rw-r--r--test/normal/object/around/big-word/selections1
-rw-r--r--test/normal/object/around/braces/cmd1
-rw-r--r--test/normal/object/around/braces/in3
-rw-r--r--test/normal/object/around/braces/selections3
-rw-r--r--test/normal/object/around/brackets/cmd1
-rw-r--r--test/normal/object/around/brackets/in3
-rw-r--r--test/normal/object/around/brackets/selections3
-rw-r--r--test/normal/object/around/double_quote/cmd1
-rw-r--r--test/normal/object/around/double_quote/in1
-rw-r--r--test/normal/object/around/double_quote/selections1
-rw-r--r--test/normal/object/around/grave_quote/cmd1
-rw-r--r--test/normal/object/around/grave_quote/in1
-rw-r--r--test/normal/object/around/grave_quote/selections1
-rw-r--r--test/normal/object/around/indent/cmd1
-rw-r--r--test/normal/object/around/indent/in3
-rw-r--r--test/normal/object/around/indent/selections4
-rw-r--r--test/normal/object/around/paragraph/cmd1
-rw-r--r--test/normal/object/around/paragraph/in8
-rw-r--r--test/normal/object/around/paragraph/selections4
-rw-r--r--test/normal/object/around/parenthesis/cmd1
-rw-r--r--test/normal/object/around/parenthesis/in1
-rw-r--r--test/normal/object/around/parenthesis/selections1
-rw-r--r--test/normal/object/around/sentence/cmd1
-rw-r--r--test/normal/object/around/sentence/in6
-rw-r--r--test/normal/object/around/sentence/selections2
-rw-r--r--test/normal/object/around/single_quote/cmd1
-rw-r--r--test/normal/object/around/single_quote/in1
-rw-r--r--test/normal/object/around/single_quote/selections1
-rw-r--r--test/normal/object/around/slash/cmd1
-rw-r--r--test/normal/object/around/slash/in1
-rw-r--r--test/normal/object/around/slash/selections1
-rw-r--r--test/normal/object/around/word/cmd1
-rw-r--r--test/normal/object/around/word/in1
-rw-r--r--test/normal/object/around/word/selections1
-rw-r--r--test/normal/object/drop-non-whitespace/cmd1
-rw-r--r--test/normal/object/drop-non-whitespace/in3
-rw-r--r--test/normal/object/drop-non-whitespace/selections1
-rw-r--r--test/normal/object/end-extending/angle/cmd1
-rw-r--r--test/normal/object/end-extending/angle/in1
-rw-r--r--test/normal/object/end-extending/angle/selections1
-rw-r--r--test/normal/object/end-extending/argument/cmd1
-rw-r--r--test/normal/object/end-extending/argument/in1
-rw-r--r--test/normal/object/end-extending/argument/selections1
-rw-r--r--test/normal/object/end-extending/big-word/cmd1
-rw-r--r--test/normal/object/end-extending/big-word/in1
-rw-r--r--test/normal/object/end-extending/big-word/selections1
-rw-r--r--test/normal/object/end-extending/braces/cmd1
-rw-r--r--test/normal/object/end-extending/braces/in3
-rw-r--r--test/normal/object/end-extending/braces/selections2
-rw-r--r--test/normal/object/end-extending/brackets/cmd1
-rw-r--r--test/normal/object/end-extending/brackets/in3
-rw-r--r--test/normal/object/end-extending/brackets/selections2
-rw-r--r--test/normal/object/end-extending/double_quote/cmd1
-rw-r--r--test/normal/object/end-extending/double_quote/in1
-rw-r--r--test/normal/object/end-extending/double_quote/selections1
-rw-r--r--test/normal/object/end-extending/grave_quote/cmd1
-rw-r--r--test/normal/object/end-extending/grave_quote/in1
-rw-r--r--test/normal/object/end-extending/grave_quote/selections1
-rw-r--r--test/normal/object/end-extending/indent/cmd1
-rw-r--r--test/normal/object/end-extending/indent/in3
-rw-r--r--test/normal/object/end-extending/indent/selections3
-rw-r--r--test/normal/object/end-extending/paragraph/cmd1
-rw-r--r--test/normal/object/end-extending/paragraph/in8
-rw-r--r--test/normal/object/end-extending/paragraph/selections4
-rw-r--r--test/normal/object/end-extending/parenthesis/cmd1
-rw-r--r--test/normal/object/end-extending/parenthesis/in1
-rw-r--r--test/normal/object/end-extending/parenthesis/selections1
-rw-r--r--test/normal/object/end-extending/sentence/cmd1
-rw-r--r--test/normal/object/end-extending/sentence/in6
-rw-r--r--test/normal/object/end-extending/sentence/selections2
-rw-r--r--test/normal/object/end-extending/single_quote/cmd1
-rw-r--r--test/normal/object/end-extending/single_quote/in1
-rw-r--r--test/normal/object/end-extending/single_quote/selections1
-rw-r--r--test/normal/object/end-extending/word/cmd1
-rw-r--r--test/normal/object/end-extending/word/in1
-rw-r--r--test/normal/object/end-extending/word/selections1
-rw-r--r--test/normal/object/end/angle/cmd1
-rw-r--r--test/normal/object/end/angle/in1
-rw-r--r--test/normal/object/end/angle/selections1
-rw-r--r--test/normal/object/end/argument/cmd1
-rw-r--r--test/normal/object/end/argument/in1
-rw-r--r--test/normal/object/end/argument/selections1
-rw-r--r--test/normal/object/end/big-word/cmd1
-rw-r--r--test/normal/object/end/big-word/in1
-rw-r--r--test/normal/object/end/big-word/selections1
-rw-r--r--test/normal/object/end/braces/cmd1
-rw-r--r--test/normal/object/end/braces/in1
-rw-r--r--test/normal/object/end/braces/selections1
-rw-r--r--test/normal/object/end/brackets/cmd1
-rw-r--r--test/normal/object/end/brackets/in1
-rw-r--r--test/normal/object/end/brackets/selections1
-rw-r--r--test/normal/object/end/double_quote/cmd1
-rw-r--r--test/normal/object/end/double_quote/in1
-rw-r--r--test/normal/object/end/double_quote/selections1
-rw-r--r--test/normal/object/end/grave_quote/cmd1
-rw-r--r--test/normal/object/end/grave_quote/in1
-rw-r--r--test/normal/object/end/grave_quote/selections1
-rw-r--r--test/normal/object/end/indent/cmd1
-rw-r--r--test/normal/object/end/indent/in3
-rw-r--r--test/normal/object/end/indent/selections3
-rw-r--r--test/normal/object/end/paragraph/cmd1
-rw-r--r--test/normal/object/end/paragraph/in8
-rw-r--r--test/normal/object/end/paragraph/selections4
-rw-r--r--test/normal/object/end/parenthesis/cmd1
-rw-r--r--test/normal/object/end/parenthesis/in1
-rw-r--r--test/normal/object/end/parenthesis/selections1
-rw-r--r--test/normal/object/end/sentence/cmd1
-rw-r--r--test/normal/object/end/sentence/in6
-rw-r--r--test/normal/object/end/sentence/selections2
-rw-r--r--test/normal/object/end/single_quote/cmd1
-rw-r--r--test/normal/object/end/single_quote/in1
-rw-r--r--test/normal/object/end/single_quote/selections1
-rw-r--r--test/normal/object/end/word/cmd1
-rw-r--r--test/normal/object/end/word/in1
-rw-r--r--test/normal/object/end/word/selections1
-rw-r--r--test/normal/object/inner/angle/cmd1
-rw-r--r--test/normal/object/inner/angle/in1
-rw-r--r--test/normal/object/inner/angle/selections1
-rw-r--r--test/normal/object/inner/argument/multi-level/cmd1
-rw-r--r--test/normal/object/inner/argument/multi-level/in1
-rw-r--r--test/normal/object/inner/argument/multi-level/selections1
-rw-r--r--test/normal/object/inner/argument/single-level/cmd1
-rw-r--r--test/normal/object/inner/argument/single-level/in1
-rw-r--r--test/normal/object/inner/argument/single-level/selections1
-rw-r--r--test/normal/object/inner/big-word/cmd1
-rw-r--r--test/normal/object/inner/big-word/in1
-rw-r--r--test/normal/object/inner/big-word/selections1
-rw-r--r--test/normal/object/inner/braces/cmd1
-rw-r--r--test/normal/object/inner/braces/in3
-rw-r--r--test/normal/object/inner/braces/selections3
-rw-r--r--test/normal/object/inner/brackets/cmd1
-rw-r--r--test/normal/object/inner/brackets/in3
-rw-r--r--test/normal/object/inner/brackets/selections3
-rw-r--r--test/normal/object/inner/double_quote/cmd1
-rw-r--r--test/normal/object/inner/double_quote/in1
-rw-r--r--test/normal/object/inner/double_quote/selections1
-rw-r--r--test/normal/object/inner/grave_quote/cmd1
-rw-r--r--test/normal/object/inner/grave_quote/in1
-rw-r--r--test/normal/object/inner/grave_quote/selections1
-rw-r--r--test/normal/object/inner/indent/cmd1
-rw-r--r--test/normal/object/inner/indent/in3
-rw-r--r--test/normal/object/inner/indent/selections2
-rw-r--r--test/normal/object/inner/paragraph/cmd1
-rw-r--r--test/normal/object/inner/paragraph/in8
-rw-r--r--test/normal/object/inner/paragraph/selections3
-rw-r--r--test/normal/object/inner/parenthesis/cmd1
-rw-r--r--test/normal/object/inner/parenthesis/in1
-rw-r--r--test/normal/object/inner/parenthesis/selections1
-rw-r--r--test/normal/object/inner/sentence/cmd1
-rw-r--r--test/normal/object/inner/sentence/in6
-rw-r--r--test/normal/object/inner/sentence/selections2
-rw-r--r--test/normal/object/inner/single_quote/cmd1
-rw-r--r--test/normal/object/inner/single_quote/in1
-rw-r--r--test/normal/object/inner/single_quote/selections1
-rw-r--r--test/normal/object/inner/slash/cmd1
-rw-r--r--test/normal/object/inner/slash/in1
-rw-r--r--test/normal/object/inner/slash/selections1
-rw-r--r--test/normal/object/inner/word/cmd1
-rw-r--r--test/normal/object/inner/word/in1
-rw-r--r--test/normal/object/inner/word/selections1
-rw-r--r--test/normal/object/start-extending/angle/cmd1
-rw-r--r--test/normal/object/start-extending/angle/in1
-rw-r--r--test/normal/object/start-extending/angle/selections1
-rw-r--r--test/normal/object/start-extending/argument/cmd1
-rw-r--r--test/normal/object/start-extending/argument/in1
-rw-r--r--test/normal/object/start-extending/argument/selections1
-rw-r--r--test/normal/object/start-extending/big-word/cmd1
-rw-r--r--test/normal/object/start-extending/big-word/in1
-rw-r--r--test/normal/object/start-extending/big-word/selections1
-rw-r--r--test/normal/object/start-extending/braces/cmd1
-rw-r--r--test/normal/object/start-extending/braces/in3
-rw-r--r--test/normal/object/start-extending/braces/selections2
-rw-r--r--test/normal/object/start-extending/brackets/cmd1
-rw-r--r--test/normal/object/start-extending/brackets/in3
-rw-r--r--test/normal/object/start-extending/brackets/selections2
-rw-r--r--test/normal/object/start-extending/double_quote/cmd1
-rw-r--r--test/normal/object/start-extending/double_quote/in1
-rw-r--r--test/normal/object/start-extending/double_quote/selections1
-rw-r--r--test/normal/object/start-extending/grave_quote/cmd1
-rw-r--r--test/normal/object/start-extending/grave_quote/in1
-rw-r--r--test/normal/object/start-extending/grave_quote/selections1
-rw-r--r--test/normal/object/start-extending/indent/cmd1
-rw-r--r--test/normal/object/start-extending/indent/in3
-rw-r--r--test/normal/object/start-extending/indent/selections2
-rw-r--r--test/normal/object/start-extending/paragraph/cmd1
-rw-r--r--test/normal/object/start-extending/paragraph/in8
-rw-r--r--test/normal/object/start-extending/paragraph/selections4
-rw-r--r--test/normal/object/start-extending/parenthesis/cmd1
-rw-r--r--test/normal/object/start-extending/parenthesis/in1
-rw-r--r--test/normal/object/start-extending/parenthesis/selections1
-rw-r--r--test/normal/object/start-extending/sentence/cmd1
-rw-r--r--test/normal/object/start-extending/sentence/in6
-rw-r--r--test/normal/object/start-extending/sentence/selections2
-rw-r--r--test/normal/object/start-extending/single_quote/cmd1
-rw-r--r--test/normal/object/start-extending/single_quote/in1
-rw-r--r--test/normal/object/start-extending/single_quote/selections1
-rw-r--r--test/normal/object/start-extending/word/cmd1
-rw-r--r--test/normal/object/start-extending/word/in1
-rw-r--r--test/normal/object/start-extending/word/selections1
-rw-r--r--test/normal/object/start/angle/cmd1
-rw-r--r--test/normal/object/start/angle/in1
-rw-r--r--test/normal/object/start/angle/selections1
-rw-r--r--test/normal/object/start/argument/cmd1
-rw-r--r--test/normal/object/start/argument/in1
-rw-r--r--test/normal/object/start/argument/selections1
-rw-r--r--test/normal/object/start/big-word/cmd1
-rw-r--r--test/normal/object/start/big-word/in1
-rw-r--r--test/normal/object/start/big-word/selections1
-rw-r--r--test/normal/object/start/braces/cmd1
-rw-r--r--test/normal/object/start/braces/in3
-rw-r--r--test/normal/object/start/braces/selections2
-rw-r--r--test/normal/object/start/brackets/cmd1
-rw-r--r--test/normal/object/start/brackets/in3
-rw-r--r--test/normal/object/start/brackets/selections2
-rw-r--r--test/normal/object/start/double_quote/cmd1
-rw-r--r--test/normal/object/start/double_quote/in1
-rw-r--r--test/normal/object/start/double_quote/selections1
-rw-r--r--test/normal/object/start/grave_quote/cmd1
-rw-r--r--test/normal/object/start/grave_quote/in1
-rw-r--r--test/normal/object/start/grave_quote/selections1
-rw-r--r--test/normal/object/start/indent/cmd1
-rw-r--r--test/normal/object/start/indent/in3
-rw-r--r--test/normal/object/start/indent/selections2
-rw-r--r--test/normal/object/start/paragraph/cmd1
-rw-r--r--test/normal/object/start/paragraph/in8
-rw-r--r--test/normal/object/start/paragraph/selections4
-rw-r--r--test/normal/object/start/parenthesis/cmd1
-rw-r--r--test/normal/object/start/parenthesis/in1
-rw-r--r--test/normal/object/start/parenthesis/selections1
-rw-r--r--test/normal/object/start/sentence/cmd1
-rw-r--r--test/normal/object/start/sentence/in6
-rw-r--r--test/normal/object/start/sentence/selections2
-rw-r--r--test/normal/object/start/single_quote/cmd1
-rw-r--r--test/normal/object/start/single_quote/in1
-rw-r--r--test/normal/object/start/single_quote/selections1
-rw-r--r--test/normal/object/start/word/cmd1
-rw-r--r--test/normal/object/start/word/in1
-rw-r--r--test/normal/object/start/word/selections1
249 files changed, 403 insertions, 0 deletions
diff --git a/test/normal/object/around/angle/cmd b/test/normal/object/around/angle/cmd
new file mode 100644
index 00000000..43f26e43
--- /dev/null
+++ b/test/normal/object/around/angle/cmd
@@ -0,0 +1 @@
+<a-a>a
diff --git a/test/normal/object/around/angle/in b/test/normal/object/around/angle/in
new file mode 100644
index 00000000..8dea61dd
--- /dev/null
+++ b/test/normal/object/around/angle/in
@@ -0,0 +1 @@
+#include <%(f)oo>
diff --git a/test/normal/object/around/angle/selections b/test/normal/object/around/angle/selections
new file mode 100644
index 00000000..9127b708
--- /dev/null
+++ b/test/normal/object/around/angle/selections
@@ -0,0 +1 @@
+<foo>
diff --git a/test/normal/object/around/argument/multi-level/cmd b/test/normal/object/around/argument/multi-level/cmd
new file mode 100644
index 00000000..7e410288
--- /dev/null
+++ b/test/normal/object/around/argument/multi-level/cmd
@@ -0,0 +1 @@
+2<a-a>u
diff --git a/test/normal/object/around/argument/multi-level/in b/test/normal/object/around/argument/multi-level/in
new file mode 100644
index 00000000..1ae5c14c
--- /dev/null
+++ b/test/normal/object/around/argument/multi-level/in
@@ -0,0 +1,2 @@
+somehing (with some parens, (and%( )some, blub and), other stuff)
+
diff --git a/test/normal/object/around/argument/multi-level/selections b/test/normal/object/around/argument/multi-level/selections
new file mode 100644
index 00000000..a05ae945
--- /dev/null
+++ b/test/normal/object/around/argument/multi-level/selections
@@ -0,0 +1 @@
+ (and some, blub and),
diff --git a/test/normal/object/around/argument/single-level/cmd b/test/normal/object/around/argument/single-level/cmd
new file mode 100644
index 00000000..afaeaac8
--- /dev/null
+++ b/test/normal/object/around/argument/single-level/cmd
@@ -0,0 +1 @@
+<a-a>u
diff --git a/test/normal/object/around/argument/single-level/in b/test/normal/object/around/argument/single-level/in
new file mode 100644
index 00000000..6647a82d
--- /dev/null
+++ b/test/normal/object/around/argument/single-level/in
@@ -0,0 +1 @@
+something(first, "someth%(i)ng", another);
diff --git a/test/normal/object/around/argument/single-level/selections b/test/normal/object/around/argument/single-level/selections
new file mode 100644
index 00000000..bf023481
--- /dev/null
+++ b/test/normal/object/around/argument/single-level/selections
@@ -0,0 +1 @@
+ "something",
diff --git a/test/normal/object/around/big-word/cmd b/test/normal/object/around/big-word/cmd
new file mode 100644
index 00000000..2591ecc3
--- /dev/null
+++ b/test/normal/object/around/big-word/cmd
@@ -0,0 +1 @@
+<a-a>W
diff --git a/test/normal/object/around/big-word/in b/test/normal/object/around/big-word/in
new file mode 100644
index 00000000..434f77db
--- /dev/null
+++ b/test/normal/object/around/big-word/in
@@ -0,0 +1 @@
+foo %(b)ar-baz qux
diff --git a/test/normal/object/around/big-word/selections b/test/normal/object/around/big-word/selections
new file mode 100644
index 00000000..d6311946
--- /dev/null
+++ b/test/normal/object/around/big-word/selections
@@ -0,0 +1 @@
+bar-baz
diff --git a/test/normal/object/around/braces/cmd b/test/normal/object/around/braces/cmd
new file mode 100644
index 00000000..4effbcef
--- /dev/null
+++ b/test/normal/object/around/braces/cmd
@@ -0,0 +1 @@
+<a-a>B
diff --git a/test/normal/object/around/braces/in b/test/normal/object/around/braces/in
new file mode 100644
index 00000000..b62df918
--- /dev/null
+++ b/test/normal/object/around/braces/in
@@ -0,0 +1,3 @@
+{
+ "%(foo)": "bar"
+}
diff --git a/test/normal/object/around/braces/selections b/test/normal/object/around/braces/selections
new file mode 100644
index 00000000..56cc1e77
--- /dev/null
+++ b/test/normal/object/around/braces/selections
@@ -0,0 +1,3 @@
+{
+ "foo"\: "bar"
+}
diff --git a/test/normal/object/around/brackets/cmd b/test/normal/object/around/brackets/cmd
new file mode 100644
index 00000000..d567e3bd
--- /dev/null
+++ b/test/normal/object/around/brackets/cmd
@@ -0,0 +1 @@
+<a-a>r
diff --git a/test/normal/object/around/brackets/in b/test/normal/object/around/brackets/in
new file mode 100644
index 00000000..286c5fcb
--- /dev/null
+++ b/test/normal/object/around/brackets/in
@@ -0,0 +1,3 @@
+[
+ "%(foo)"
+]
diff --git a/test/normal/object/around/brackets/selections b/test/normal/object/around/brackets/selections
new file mode 100644
index 00000000..de140ba3
--- /dev/null
+++ b/test/normal/object/around/brackets/selections
@@ -0,0 +1,3 @@
+[
+ "foo"
+]
diff --git a/test/normal/object/around/double_quote/cmd b/test/normal/object/around/double_quote/cmd
new file mode 100644
index 00000000..c7d7819b
--- /dev/null
+++ b/test/normal/object/around/double_quote/cmd
@@ -0,0 +1 @@
+<a-a>Q
diff --git a/test/normal/object/around/double_quote/in b/test/normal/object/around/double_quote/in
new file mode 100644
index 00000000..78428f5e
--- /dev/null
+++ b/test/normal/object/around/double_quote/in
@@ -0,0 +1 @@
+foo("%(b)ar")
diff --git a/test/normal/object/around/double_quote/selections b/test/normal/object/around/double_quote/selections
new file mode 100644
index 00000000..196e5879
--- /dev/null
+++ b/test/normal/object/around/double_quote/selections
@@ -0,0 +1 @@
+"bar"
diff --git a/test/normal/object/around/grave_quote/cmd b/test/normal/object/around/grave_quote/cmd
new file mode 100644
index 00000000..28e4cbc1
--- /dev/null
+++ b/test/normal/object/around/grave_quote/cmd
@@ -0,0 +1 @@
+<a-a>g
diff --git a/test/normal/object/around/grave_quote/in b/test/normal/object/around/grave_quote/in
new file mode 100644
index 00000000..6f02c52a
--- /dev/null
+++ b/test/normal/object/around/grave_quote/in
@@ -0,0 +1 @@
+echo `%(f)oo`
diff --git a/test/normal/object/around/grave_quote/selections b/test/normal/object/around/grave_quote/selections
new file mode 100644
index 00000000..347253a0
--- /dev/null
+++ b/test/normal/object/around/grave_quote/selections
@@ -0,0 +1 @@
+`foo`
diff --git a/test/normal/object/around/indent/cmd b/test/normal/object/around/indent/cmd
new file mode 100644
index 00000000..bd04b166
--- /dev/null
+++ b/test/normal/object/around/indent/cmd
@@ -0,0 +1 @@
+<a-a>i
diff --git a/test/normal/object/around/indent/in b/test/normal/object/around/indent/in
new file mode 100644
index 00000000..3d074b01
--- /dev/null
+++ b/test/normal/object/around/indent/in
@@ -0,0 +1,3 @@
+
+ foo(%(b)ar)
+
diff --git a/test/normal/object/around/indent/selections b/test/normal/object/around/indent/selections
new file mode 100644
index 00000000..80196fbb
--- /dev/null
+++ b/test/normal/object/around/indent/selections
@@ -0,0 +1,4 @@
+
+ foo(bar)
+
+
diff --git a/test/normal/object/around/paragraph/cmd b/test/normal/object/around/paragraph/cmd
new file mode 100644
index 00000000..ffefa67d
--- /dev/null
+++ b/test/normal/object/around/paragraph/cmd
@@ -0,0 +1 @@
+<a-a>p
diff --git a/test/normal/object/around/paragraph/in b/test/normal/object/around/paragraph/in
new file mode 100644
index 00000000..0da6451e
--- /dev/null
+++ b/test/normal/object/around/paragraph/in
@@ -0,0 +1,8 @@
+a
+b
+
+%(c)
+d
+
+e
+f
diff --git a/test/normal/object/around/paragraph/selections b/test/normal/object/around/paragraph/selections
new file mode 100644
index 00000000..2887a9d6
--- /dev/null
+++ b/test/normal/object/around/paragraph/selections
@@ -0,0 +1,4 @@
+c
+d
+
+
diff --git a/test/normal/object/around/parenthesis/cmd b/test/normal/object/around/parenthesis/cmd
new file mode 100644
index 00000000..ef7ad10b
--- /dev/null
+++ b/test/normal/object/around/parenthesis/cmd
@@ -0,0 +1 @@
+<a-a>b
diff --git a/test/normal/object/around/parenthesis/in b/test/normal/object/around/parenthesis/in
new file mode 100644
index 00000000..3bea1f71
--- /dev/null
+++ b/test/normal/object/around/parenthesis/in
@@ -0,0 +1 @@
+foo(%(b)ar)
diff --git a/test/normal/object/around/parenthesis/selections b/test/normal/object/around/parenthesis/selections
new file mode 100644
index 00000000..c115b234
--- /dev/null
+++ b/test/normal/object/around/parenthesis/selections
@@ -0,0 +1 @@
+(bar)
diff --git a/test/normal/object/around/sentence/cmd b/test/normal/object/around/sentence/cmd
new file mode 100644
index 00000000..e8d4a543
--- /dev/null
+++ b/test/normal/object/around/sentence/cmd
@@ -0,0 +1 @@
+<a-a>s
diff --git a/test/normal/object/around/sentence/in b/test/normal/object/around/sentence/in
new file mode 100644
index 00000000..006cd705
--- /dev/null
+++ b/test/normal/object/around/sentence/in
@@ -0,0 +1,6 @@
+%(Lorem ipsum) dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
+sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/test/normal/object/around/sentence/selections b/test/normal/object/around/sentence/selections
new file mode 100644
index 00000000..5dd13409
--- /dev/null
+++ b/test/normal/object/around/sentence/selections
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
diff --git a/test/normal/object/around/single_quote/cmd b/test/normal/object/around/single_quote/cmd
new file mode 100644
index 00000000..f1d27c25
--- /dev/null
+++ b/test/normal/object/around/single_quote/cmd
@@ -0,0 +1 @@
+<a-a>q
diff --git a/test/normal/object/around/single_quote/in b/test/normal/object/around/single_quote/in
new file mode 100644
index 00000000..ed397c1c
--- /dev/null
+++ b/test/normal/object/around/single_quote/in
@@ -0,0 +1 @@
+foo('%(b)ar')
diff --git a/test/normal/object/around/single_quote/selections b/test/normal/object/around/single_quote/selections
new file mode 100644
index 00000000..2cde735c
--- /dev/null
+++ b/test/normal/object/around/single_quote/selections
@@ -0,0 +1 @@
+'bar'
diff --git a/test/normal/object/around/slash/cmd b/test/normal/object/around/slash/cmd
new file mode 100644
index 00000000..3b264409
--- /dev/null
+++ b/test/normal/object/around/slash/cmd
@@ -0,0 +1 @@
+<a-a>/
diff --git a/test/normal/object/around/slash/in b/test/normal/object/around/slash/in
new file mode 100644
index 00000000..d6b8a544
--- /dev/null
+++ b/test/normal/object/around/slash/in
@@ -0,0 +1 @@
+foo(/%(b)ar/)
diff --git a/test/normal/object/around/slash/selections b/test/normal/object/around/slash/selections
new file mode 100644
index 00000000..a5a08411
--- /dev/null
+++ b/test/normal/object/around/slash/selections
@@ -0,0 +1 @@
+/bar/
diff --git a/test/normal/object/around/word/cmd b/test/normal/object/around/word/cmd
new file mode 100644
index 00000000..b11a4948
--- /dev/null
+++ b/test/normal/object/around/word/cmd
@@ -0,0 +1 @@
+<a-a>w
diff --git a/test/normal/object/around/word/in b/test/normal/object/around/word/in
new file mode 100644
index 00000000..e92570ea
--- /dev/null
+++ b/test/normal/object/around/word/in
@@ -0,0 +1 @@
+foo %(b)ar baz
diff --git a/test/normal/object/around/word/selections b/test/normal/object/around/word/selections
new file mode 100644
index 00000000..efe82b7c
--- /dev/null
+++ b/test/normal/object/around/word/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/drop-non-whitespace/cmd b/test/normal/object/drop-non-whitespace/cmd
new file mode 100644
index 00000000..b100ed0c
--- /dev/null
+++ b/test/normal/object/drop-non-whitespace/cmd
@@ -0,0 +1 @@
+<a-a>
diff --git a/test/normal/object/drop-non-whitespace/in b/test/normal/object/drop-non-whitespace/in
new file mode 100644
index 00000000..ec6eb00e
--- /dev/null
+++ b/test/normal/object/drop-non-whitespace/in
@@ -0,0 +1,3 @@
+wo%(r)d
+foo %( ) bar
+baz%( )qux
diff --git a/test/normal/object/drop-non-whitespace/selections b/test/normal/object/drop-non-whitespace/selections
new file mode 100644
index 00000000..8c68ee72
--- /dev/null
+++ b/test/normal/object/drop-non-whitespace/selections
@@ -0,0 +1 @@
+ :
diff --git a/test/normal/object/end-extending/angle/cmd b/test/normal/object/end-extending/angle/cmd
new file mode 100644
index 00000000..f19fbec3
--- /dev/null
+++ b/test/normal/object/end-extending/angle/cmd
@@ -0,0 +1 @@
+}a
diff --git a/test/normal/object/end-extending/angle/in b/test/normal/object/end-extending/angle/in
new file mode 100644
index 00000000..75b76117
--- /dev/null
+++ b/test/normal/object/end-extending/angle/in
@@ -0,0 +1 @@
+#include <%(foo)>
diff --git a/test/normal/object/end-extending/angle/selections b/test/normal/object/end-extending/angle/selections
new file mode 100644
index 00000000..1bd5e5cc
--- /dev/null
+++ b/test/normal/object/end-extending/angle/selections
@@ -0,0 +1 @@
+foo>
diff --git a/test/normal/object/end-extending/argument/cmd b/test/normal/object/end-extending/argument/cmd
new file mode 100644
index 00000000..cbe6e421
--- /dev/null
+++ b/test/normal/object/end-extending/argument/cmd
@@ -0,0 +1 @@
+}u
diff --git a/test/normal/object/end-extending/argument/in b/test/normal/object/end-extending/argument/in
new file mode 100644
index 00000000..1cecb2d3
--- /dev/null
+++ b/test/normal/object/end-extending/argument/in
@@ -0,0 +1 @@
+something (with a paren, and %(some) stuff, and more)
diff --git a/test/normal/object/end-extending/argument/selections b/test/normal/object/end-extending/argument/selections
new file mode 100644
index 00000000..cf43e724
--- /dev/null
+++ b/test/normal/object/end-extending/argument/selections
@@ -0,0 +1 @@
+some stuff,
diff --git a/test/normal/object/end-extending/big-word/cmd b/test/normal/object/end-extending/big-word/cmd
new file mode 100644
index 00000000..534740a4
--- /dev/null
+++ b/test/normal/object/end-extending/big-word/cmd
@@ -0,0 +1 @@
+}W
diff --git a/test/normal/object/end-extending/big-word/in b/test/normal/object/end-extending/big-word/in
new file mode 100644
index 00000000..434f77db
--- /dev/null
+++ b/test/normal/object/end-extending/big-word/in
@@ -0,0 +1 @@
+foo %(b)ar-baz qux
diff --git a/test/normal/object/end-extending/big-word/selections b/test/normal/object/end-extending/big-word/selections
new file mode 100644
index 00000000..d6311946
--- /dev/null
+++ b/test/normal/object/end-extending/big-word/selections
@@ -0,0 +1 @@
+bar-baz
diff --git a/test/normal/object/end-extending/braces/cmd b/test/normal/object/end-extending/braces/cmd
new file mode 100644
index 00000000..1dc1639a
--- /dev/null
+++ b/test/normal/object/end-extending/braces/cmd
@@ -0,0 +1 @@
+}B
diff --git a/test/normal/object/end-extending/braces/in b/test/normal/object/end-extending/braces/in
new file mode 100644
index 00000000..b62df918
--- /dev/null
+++ b/test/normal/object/end-extending/braces/in
@@ -0,0 +1,3 @@
+{
+ "%(foo)": "bar"
+}
diff --git a/test/normal/object/end-extending/braces/selections b/test/normal/object/end-extending/braces/selections
new file mode 100644
index 00000000..a729b60b
--- /dev/null
+++ b/test/normal/object/end-extending/braces/selections
@@ -0,0 +1,2 @@
+foo"\: "bar"
+}
diff --git a/test/normal/object/end-extending/brackets/cmd b/test/normal/object/end-extending/brackets/cmd
new file mode 100644
index 00000000..5309578a
--- /dev/null
+++ b/test/normal/object/end-extending/brackets/cmd
@@ -0,0 +1 @@
+}r
diff --git a/test/normal/object/end-extending/brackets/in b/test/normal/object/end-extending/brackets/in
new file mode 100644
index 00000000..286c5fcb
--- /dev/null
+++ b/test/normal/object/end-extending/brackets/in
@@ -0,0 +1,3 @@
+[
+ "%(foo)"
+]
diff --git a/test/normal/object/end-extending/brackets/selections b/test/normal/object/end-extending/brackets/selections
new file mode 100644
index 00000000..0ca681c5
--- /dev/null
+++ b/test/normal/object/end-extending/brackets/selections
@@ -0,0 +1,2 @@
+foo"
+]
diff --git a/test/normal/object/end-extending/double_quote/cmd b/test/normal/object/end-extending/double_quote/cmd
new file mode 100644
index 00000000..33d6c350
--- /dev/null
+++ b/test/normal/object/end-extending/double_quote/cmd
@@ -0,0 +1 @@
+}Q
diff --git a/test/normal/object/end-extending/double_quote/in b/test/normal/object/end-extending/double_quote/in
new file mode 100644
index 00000000..78428f5e
--- /dev/null
+++ b/test/normal/object/end-extending/double_quote/in
@@ -0,0 +1 @@
+foo("%(b)ar")
diff --git a/test/normal/object/end-extending/double_quote/selections b/test/normal/object/end-extending/double_quote/selections
new file mode 100644
index 00000000..d9f07fc6
--- /dev/null
+++ b/test/normal/object/end-extending/double_quote/selections
@@ -0,0 +1 @@
+bar"
diff --git a/test/normal/object/end-extending/grave_quote/cmd b/test/normal/object/end-extending/grave_quote/cmd
new file mode 100644
index 00000000..31b0a83e
--- /dev/null
+++ b/test/normal/object/end-extending/grave_quote/cmd
@@ -0,0 +1 @@
+}g
diff --git a/test/normal/object/end-extending/grave_quote/in b/test/normal/object/end-extending/grave_quote/in
new file mode 100644
index 00000000..6f02c52a
--- /dev/null
+++ b/test/normal/object/end-extending/grave_quote/in
@@ -0,0 +1 @@
+echo `%(f)oo`
diff --git a/test/normal/object/end-extending/grave_quote/selections b/test/normal/object/end-extending/grave_quote/selections
new file mode 100644
index 00000000..b380d541
--- /dev/null
+++ b/test/normal/object/end-extending/grave_quote/selections
@@ -0,0 +1 @@
+foo`
diff --git a/test/normal/object/end-extending/indent/cmd b/test/normal/object/end-extending/indent/cmd
new file mode 100644
index 00000000..467a5545
--- /dev/null
+++ b/test/normal/object/end-extending/indent/cmd
@@ -0,0 +1 @@
+}i
diff --git a/test/normal/object/end-extending/indent/in b/test/normal/object/end-extending/indent/in
new file mode 100644
index 00000000..3d074b01
--- /dev/null
+++ b/test/normal/object/end-extending/indent/in
@@ -0,0 +1,3 @@
+
+ foo(%(b)ar)
+
diff --git a/test/normal/object/end-extending/indent/selections b/test/normal/object/end-extending/indent/selections
new file mode 100644
index 00000000..9569a91f
--- /dev/null
+++ b/test/normal/object/end-extending/indent/selections
@@ -0,0 +1,3 @@
+bar)
+
+
diff --git a/test/normal/object/end-extending/paragraph/cmd b/test/normal/object/end-extending/paragraph/cmd
new file mode 100644
index 00000000..01c975ec
--- /dev/null
+++ b/test/normal/object/end-extending/paragraph/cmd
@@ -0,0 +1 @@
+}p
diff --git a/test/normal/object/end-extending/paragraph/in b/test/normal/object/end-extending/paragraph/in
new file mode 100644
index 00000000..0da6451e
--- /dev/null
+++ b/test/normal/object/end-extending/paragraph/in
@@ -0,0 +1,8 @@
+a
+b
+
+%(c)
+d
+
+e
+f
diff --git a/test/normal/object/end-extending/paragraph/selections b/test/normal/object/end-extending/paragraph/selections
new file mode 100644
index 00000000..2887a9d6
--- /dev/null
+++ b/test/normal/object/end-extending/paragraph/selections
@@ -0,0 +1,4 @@
+c
+d
+
+
diff --git a/test/normal/object/end-extending/parenthesis/cmd b/test/normal/object/end-extending/parenthesis/cmd
new file mode 100644
index 00000000..889b7fa1
--- /dev/null
+++ b/test/normal/object/end-extending/parenthesis/cmd
@@ -0,0 +1 @@
+}b
diff --git a/test/normal/object/end-extending/parenthesis/in b/test/normal/object/end-extending/parenthesis/in
new file mode 100644
index 00000000..3bea1f71
--- /dev/null
+++ b/test/normal/object/end-extending/parenthesis/in
@@ -0,0 +1 @@
+foo(%(b)ar)
diff --git a/test/normal/object/end-extending/parenthesis/selections b/test/normal/object/end-extending/parenthesis/selections
new file mode 100644
index 00000000..05b3995d
--- /dev/null
+++ b/test/normal/object/end-extending/parenthesis/selections
@@ -0,0 +1 @@
+bar)
diff --git a/test/normal/object/end-extending/sentence/cmd b/test/normal/object/end-extending/sentence/cmd
new file mode 100644
index 00000000..4021c482
--- /dev/null
+++ b/test/normal/object/end-extending/sentence/cmd
@@ -0,0 +1 @@
+}s
diff --git a/test/normal/object/end-extending/sentence/in b/test/normal/object/end-extending/sentence/in
new file mode 100644
index 00000000..006cd705
--- /dev/null
+++ b/test/normal/object/end-extending/sentence/in
@@ -0,0 +1,6 @@
+%(Lorem ipsum) dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
+sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/test/normal/object/end-extending/sentence/selections b/test/normal/object/end-extending/sentence/selections
new file mode 100644
index 00000000..5dd13409
--- /dev/null
+++ b/test/normal/object/end-extending/sentence/selections
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
diff --git a/test/normal/object/end-extending/single_quote/cmd b/test/normal/object/end-extending/single_quote/cmd
new file mode 100644
index 00000000..e50f2e00
--- /dev/null
+++ b/test/normal/object/end-extending/single_quote/cmd
@@ -0,0 +1 @@
+}q
diff --git a/test/normal/object/end-extending/single_quote/in b/test/normal/object/end-extending/single_quote/in
new file mode 100644
index 00000000..ed397c1c
--- /dev/null
+++ b/test/normal/object/end-extending/single_quote/in
@@ -0,0 +1 @@
+foo('%(b)ar')
diff --git a/test/normal/object/end-extending/single_quote/selections b/test/normal/object/end-extending/single_quote/selections
new file mode 100644
index 00000000..7ca0922b
--- /dev/null
+++ b/test/normal/object/end-extending/single_quote/selections
@@ -0,0 +1 @@
+bar'
diff --git a/test/normal/object/end-extending/word/cmd b/test/normal/object/end-extending/word/cmd
new file mode 100644
index 00000000..120c7dfe
--- /dev/null
+++ b/test/normal/object/end-extending/word/cmd
@@ -0,0 +1 @@
+}w
diff --git a/test/normal/object/end-extending/word/in b/test/normal/object/end-extending/word/in
new file mode 100644
index 00000000..e92570ea
--- /dev/null
+++ b/test/normal/object/end-extending/word/in
@@ -0,0 +1 @@
+foo %(b)ar baz
diff --git a/test/normal/object/end-extending/word/selections b/test/normal/object/end-extending/word/selections
new file mode 100644
index 00000000..efe82b7c
--- /dev/null
+++ b/test/normal/object/end-extending/word/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/end/angle/cmd b/test/normal/object/end/angle/cmd
new file mode 100644
index 00000000..6e1ab229
--- /dev/null
+++ b/test/normal/object/end/angle/cmd
@@ -0,0 +1 @@
+]a
diff --git a/test/normal/object/end/angle/in b/test/normal/object/end/angle/in
new file mode 100644
index 00000000..4cdc8cdb
--- /dev/null
+++ b/test/normal/object/end/angle/in
@@ -0,0 +1 @@
+x > y
diff --git a/test/normal/object/end/angle/selections b/test/normal/object/end/angle/selections
new file mode 100644
index 00000000..286188d9
--- /dev/null
+++ b/test/normal/object/end/angle/selections
@@ -0,0 +1 @@
+x >
diff --git a/test/normal/object/end/argument/cmd b/test/normal/object/end/argument/cmd
new file mode 100644
index 00000000..9ec40a47
--- /dev/null
+++ b/test/normal/object/end/argument/cmd
@@ -0,0 +1 @@
+]u
diff --git a/test/normal/object/end/argument/in b/test/normal/object/end/argument/in
new file mode 100644
index 00000000..b906f578
--- /dev/null
+++ b/test/normal/object/end/argument/in
@@ -0,0 +1 @@
+somehing (with some parens, and%( )some, other stuff)
diff --git a/test/normal/object/end/argument/selections b/test/normal/object/end/argument/selections
new file mode 100644
index 00000000..92020efb
--- /dev/null
+++ b/test/normal/object/end/argument/selections
@@ -0,0 +1 @@
+ some,
diff --git a/test/normal/object/end/big-word/cmd b/test/normal/object/end/big-word/cmd
new file mode 100644
index 00000000..cd1b8fb2
--- /dev/null
+++ b/test/normal/object/end/big-word/cmd
@@ -0,0 +1 @@
+]W
diff --git a/test/normal/object/end/big-word/in b/test/normal/object/end/big-word/in
new file mode 100644
index 00000000..434f77db
--- /dev/null
+++ b/test/normal/object/end/big-word/in
@@ -0,0 +1 @@
+foo %(b)ar-baz qux
diff --git a/test/normal/object/end/big-word/selections b/test/normal/object/end/big-word/selections
new file mode 100644
index 00000000..d6311946
--- /dev/null
+++ b/test/normal/object/end/big-word/selections
@@ -0,0 +1 @@
+bar-baz
diff --git a/test/normal/object/end/braces/cmd b/test/normal/object/end/braces/cmd
new file mode 100644
index 00000000..925126c3
--- /dev/null
+++ b/test/normal/object/end/braces/cmd
@@ -0,0 +1 @@
+]B
diff --git a/test/normal/object/end/braces/in b/test/normal/object/end/braces/in
new file mode 100644
index 00000000..a9364d05
--- /dev/null
+++ b/test/normal/object/end/braces/in
@@ -0,0 +1 @@
+kak unit/test/%({)cmd,in,out}
diff --git a/test/normal/object/end/braces/selections b/test/normal/object/end/braces/selections
new file mode 100644
index 00000000..55b26550
--- /dev/null
+++ b/test/normal/object/end/braces/selections
@@ -0,0 +1 @@
+{cmd,in,out}
diff --git a/test/normal/object/end/brackets/cmd b/test/normal/object/end/brackets/cmd
new file mode 100644
index 00000000..2315da45
--- /dev/null
+++ b/test/normal/object/end/brackets/cmd
@@ -0,0 +1 @@
+]r
diff --git a/test/normal/object/end/brackets/in b/test/normal/object/end/brackets/in
new file mode 100644
index 00000000..ba79b8fd
--- /dev/null
+++ b/test/normal/object/end/brackets/in
@@ -0,0 +1 @@
+[1,%(2),3]
diff --git a/test/normal/object/end/brackets/selections b/test/normal/object/end/brackets/selections
new file mode 100644
index 00000000..7d4681a1
--- /dev/null
+++ b/test/normal/object/end/brackets/selections
@@ -0,0 +1 @@
+2,3]
diff --git a/test/normal/object/end/double_quote/cmd b/test/normal/object/end/double_quote/cmd
new file mode 100644
index 00000000..34c70e47
--- /dev/null
+++ b/test/normal/object/end/double_quote/cmd
@@ -0,0 +1 @@
+]Q
diff --git a/test/normal/object/end/double_quote/in b/test/normal/object/end/double_quote/in
new file mode 100644
index 00000000..78428f5e
--- /dev/null
+++ b/test/normal/object/end/double_quote/in
@@ -0,0 +1 @@
+foo("%(b)ar")
diff --git a/test/normal/object/end/double_quote/selections b/test/normal/object/end/double_quote/selections
new file mode 100644
index 00000000..d9f07fc6
--- /dev/null
+++ b/test/normal/object/end/double_quote/selections
@@ -0,0 +1 @@
+bar"
diff --git a/test/normal/object/end/grave_quote/cmd b/test/normal/object/end/grave_quote/cmd
new file mode 100644
index 00000000..d586a9f6
--- /dev/null
+++ b/test/normal/object/end/grave_quote/cmd
@@ -0,0 +1 @@
+]g
diff --git a/test/normal/object/end/grave_quote/in b/test/normal/object/end/grave_quote/in
new file mode 100644
index 00000000..5601c8fd
--- /dev/null
+++ b/test/normal/object/end/grave_quote/in
@@ -0,0 +1 @@
+`%(f)oo`
diff --git a/test/normal/object/end/grave_quote/selections b/test/normal/object/end/grave_quote/selections
new file mode 100644
index 00000000..b380d541
--- /dev/null
+++ b/test/normal/object/end/grave_quote/selections
@@ -0,0 +1 @@
+foo`
diff --git a/test/normal/object/end/indent/cmd b/test/normal/object/end/indent/cmd
new file mode 100644
index 00000000..9db4a74d
--- /dev/null
+++ b/test/normal/object/end/indent/cmd
@@ -0,0 +1 @@
+]i
diff --git a/test/normal/object/end/indent/in b/test/normal/object/end/indent/in
new file mode 100644
index 00000000..3d074b01
--- /dev/null
+++ b/test/normal/object/end/indent/in
@@ -0,0 +1,3 @@
+
+ foo(%(b)ar)
+
diff --git a/test/normal/object/end/indent/selections b/test/normal/object/end/indent/selections
new file mode 100644
index 00000000..9569a91f
--- /dev/null
+++ b/test/normal/object/end/indent/selections
@@ -0,0 +1,3 @@
+bar)
+
+
diff --git a/test/normal/object/end/paragraph/cmd b/test/normal/object/end/paragraph/cmd
new file mode 100644
index 00000000..4c2699d6
--- /dev/null
+++ b/test/normal/object/end/paragraph/cmd
@@ -0,0 +1 @@
+]p
diff --git a/test/normal/object/end/paragraph/in b/test/normal/object/end/paragraph/in
new file mode 100644
index 00000000..0da6451e
--- /dev/null
+++ b/test/normal/object/end/paragraph/in
@@ -0,0 +1,8 @@
+a
+b
+
+%(c)
+d
+
+e
+f
diff --git a/test/normal/object/end/paragraph/selections b/test/normal/object/end/paragraph/selections
new file mode 100644
index 00000000..2887a9d6
--- /dev/null
+++ b/test/normal/object/end/paragraph/selections
@@ -0,0 +1,4 @@
+c
+d
+
+
diff --git a/test/normal/object/end/parenthesis/cmd b/test/normal/object/end/parenthesis/cmd
new file mode 100644
index 00000000..a76dfa55
--- /dev/null
+++ b/test/normal/object/end/parenthesis/cmd
@@ -0,0 +1 @@
+]b
diff --git a/test/normal/object/end/parenthesis/in b/test/normal/object/end/parenthesis/in
new file mode 100644
index 00000000..3bea1f71
--- /dev/null
+++ b/test/normal/object/end/parenthesis/in
@@ -0,0 +1 @@
+foo(%(b)ar)
diff --git a/test/normal/object/end/parenthesis/selections b/test/normal/object/end/parenthesis/selections
new file mode 100644
index 00000000..05b3995d
--- /dev/null
+++ b/test/normal/object/end/parenthesis/selections
@@ -0,0 +1 @@
+bar)
diff --git a/test/normal/object/end/sentence/cmd b/test/normal/object/end/sentence/cmd
new file mode 100644
index 00000000..4455bbd8
--- /dev/null
+++ b/test/normal/object/end/sentence/cmd
@@ -0,0 +1 @@
+]s
diff --git a/test/normal/object/end/sentence/in b/test/normal/object/end/sentence/in
new file mode 100644
index 00000000..78d87ba0
--- /dev/null
+++ b/test/normal/object/end/sentence/in
@@ -0,0 +1,6 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
+sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/test/normal/object/end/sentence/selections b/test/normal/object/end/sentence/selections
new file mode 100644
index 00000000..5dd13409
--- /dev/null
+++ b/test/normal/object/end/sentence/selections
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
diff --git a/test/normal/object/end/single_quote/cmd b/test/normal/object/end/single_quote/cmd
new file mode 100644
index 00000000..d6451c59
--- /dev/null
+++ b/test/normal/object/end/single_quote/cmd
@@ -0,0 +1 @@
+]q
diff --git a/test/normal/object/end/single_quote/in b/test/normal/object/end/single_quote/in
new file mode 100644
index 00000000..ed397c1c
--- /dev/null
+++ b/test/normal/object/end/single_quote/in
@@ -0,0 +1 @@
+foo('%(b)ar')
diff --git a/test/normal/object/end/single_quote/selections b/test/normal/object/end/single_quote/selections
new file mode 100644
index 00000000..7ca0922b
--- /dev/null
+++ b/test/normal/object/end/single_quote/selections
@@ -0,0 +1 @@
+bar'
diff --git a/test/normal/object/end/word/cmd b/test/normal/object/end/word/cmd
new file mode 100644
index 00000000..9366578e
--- /dev/null
+++ b/test/normal/object/end/word/cmd
@@ -0,0 +1 @@
+]w
diff --git a/test/normal/object/end/word/in b/test/normal/object/end/word/in
new file mode 100644
index 00000000..e92570ea
--- /dev/null
+++ b/test/normal/object/end/word/in
@@ -0,0 +1 @@
+foo %(b)ar baz
diff --git a/test/normal/object/end/word/selections b/test/normal/object/end/word/selections
new file mode 100644
index 00000000..efe82b7c
--- /dev/null
+++ b/test/normal/object/end/word/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/inner/angle/cmd b/test/normal/object/inner/angle/cmd
new file mode 100644
index 00000000..21bc39d0
--- /dev/null
+++ b/test/normal/object/inner/angle/cmd
@@ -0,0 +1 @@
+<a-i>a
diff --git a/test/normal/object/inner/angle/in b/test/normal/object/inner/angle/in
new file mode 100644
index 00000000..8dea61dd
--- /dev/null
+++ b/test/normal/object/inner/angle/in
@@ -0,0 +1 @@
+#include <%(f)oo>
diff --git a/test/normal/object/inner/angle/selections b/test/normal/object/inner/angle/selections
new file mode 100644
index 00000000..257cc564
--- /dev/null
+++ b/test/normal/object/inner/angle/selections
@@ -0,0 +1 @@
+foo
diff --git a/test/normal/object/inner/argument/multi-level/cmd b/test/normal/object/inner/argument/multi-level/cmd
new file mode 100644
index 00000000..4bae6f68
--- /dev/null
+++ b/test/normal/object/inner/argument/multi-level/cmd
@@ -0,0 +1 @@
+2<a-i>u
diff --git a/test/normal/object/inner/argument/multi-level/in b/test/normal/object/inner/argument/multi-level/in
new file mode 100644
index 00000000..b6dcf2be
--- /dev/null
+++ b/test/normal/object/inner/argument/multi-level/in
@@ -0,0 +1 @@
+somehing (with some parens, (and%( )some, blub and), other stuff)
diff --git a/test/normal/object/inner/argument/multi-level/selections b/test/normal/object/inner/argument/multi-level/selections
new file mode 100644
index 00000000..13942d75
--- /dev/null
+++ b/test/normal/object/inner/argument/multi-level/selections
@@ -0,0 +1 @@
+(and some, blub and)
diff --git a/test/normal/object/inner/argument/single-level/cmd b/test/normal/object/inner/argument/single-level/cmd
new file mode 100644
index 00000000..73181365
--- /dev/null
+++ b/test/normal/object/inner/argument/single-level/cmd
@@ -0,0 +1 @@
+<a-i>u
diff --git a/test/normal/object/inner/argument/single-level/in b/test/normal/object/inner/argument/single-level/in
new file mode 100644
index 00000000..b906f578
--- /dev/null
+++ b/test/normal/object/inner/argument/single-level/in
@@ -0,0 +1 @@
+somehing (with some parens, and%( )some, other stuff)
diff --git a/test/normal/object/inner/argument/single-level/selections b/test/normal/object/inner/argument/single-level/selections
new file mode 100644
index 00000000..2137941b
--- /dev/null
+++ b/test/normal/object/inner/argument/single-level/selections
@@ -0,0 +1 @@
+and some
diff --git a/test/normal/object/inner/big-word/cmd b/test/normal/object/inner/big-word/cmd
new file mode 100644
index 00000000..12d2f19a
--- /dev/null
+++ b/test/normal/object/inner/big-word/cmd
@@ -0,0 +1 @@
+<a-i>W
diff --git a/test/normal/object/inner/big-word/in b/test/normal/object/inner/big-word/in
new file mode 100644
index 00000000..434f77db
--- /dev/null
+++ b/test/normal/object/inner/big-word/in
@@ -0,0 +1 @@
+foo %(b)ar-baz qux
diff --git a/test/normal/object/inner/big-word/selections b/test/normal/object/inner/big-word/selections
new file mode 100644
index 00000000..8965d2e8
--- /dev/null
+++ b/test/normal/object/inner/big-word/selections
@@ -0,0 +1 @@
+bar-baz
diff --git a/test/normal/object/inner/braces/cmd b/test/normal/object/inner/braces/cmd
new file mode 100644
index 00000000..4effbcef
--- /dev/null
+++ b/test/normal/object/inner/braces/cmd
@@ -0,0 +1 @@
+<a-a>B
diff --git a/test/normal/object/inner/braces/in b/test/normal/object/inner/braces/in
new file mode 100644
index 00000000..31aea8b7
--- /dev/null
+++ b/test/normal/object/inner/braces/in
@@ -0,0 +1,3 @@
+{
+ "%(foo)"= "bar"
+}
diff --git a/test/normal/object/inner/braces/selections b/test/normal/object/inner/braces/selections
new file mode 100644
index 00000000..e8eefa0c
--- /dev/null
+++ b/test/normal/object/inner/braces/selections
@@ -0,0 +1,3 @@
+{
+ "foo"= "bar"
+}
diff --git a/test/normal/object/inner/brackets/cmd b/test/normal/object/inner/brackets/cmd
new file mode 100644
index 00000000..d567e3bd
--- /dev/null
+++ b/test/normal/object/inner/brackets/cmd
@@ -0,0 +1 @@
+<a-a>r
diff --git a/test/normal/object/inner/brackets/in b/test/normal/object/inner/brackets/in
new file mode 100644
index 00000000..286c5fcb
--- /dev/null
+++ b/test/normal/object/inner/brackets/in
@@ -0,0 +1,3 @@
+[
+ "%(foo)"
+]
diff --git a/test/normal/object/inner/brackets/selections b/test/normal/object/inner/brackets/selections
new file mode 100644
index 00000000..de140ba3
--- /dev/null
+++ b/test/normal/object/inner/brackets/selections
@@ -0,0 +1,3 @@
+[
+ "foo"
+]
diff --git a/test/normal/object/inner/double_quote/cmd b/test/normal/object/inner/double_quote/cmd
new file mode 100644
index 00000000..1f62c901
--- /dev/null
+++ b/test/normal/object/inner/double_quote/cmd
@@ -0,0 +1 @@
+<a-i>Q
diff --git a/test/normal/object/inner/double_quote/in b/test/normal/object/inner/double_quote/in
new file mode 100644
index 00000000..78428f5e
--- /dev/null
+++ b/test/normal/object/inner/double_quote/in
@@ -0,0 +1 @@
+foo("%(b)ar")
diff --git a/test/normal/object/inner/double_quote/selections b/test/normal/object/inner/double_quote/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/inner/double_quote/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/inner/grave_quote/cmd b/test/normal/object/inner/grave_quote/cmd
new file mode 100644
index 00000000..1234f5e0
--- /dev/null
+++ b/test/normal/object/inner/grave_quote/cmd
@@ -0,0 +1 @@
+<a-i>g
diff --git a/test/normal/object/inner/grave_quote/in b/test/normal/object/inner/grave_quote/in
new file mode 100644
index 00000000..6f02c52a
--- /dev/null
+++ b/test/normal/object/inner/grave_quote/in
@@ -0,0 +1 @@
+echo `%(f)oo`
diff --git a/test/normal/object/inner/grave_quote/selections b/test/normal/object/inner/grave_quote/selections
new file mode 100644
index 00000000..257cc564
--- /dev/null
+++ b/test/normal/object/inner/grave_quote/selections
@@ -0,0 +1 @@
+foo
diff --git a/test/normal/object/inner/indent/cmd b/test/normal/object/inner/indent/cmd
new file mode 100644
index 00000000..c304fd98
--- /dev/null
+++ b/test/normal/object/inner/indent/cmd
@@ -0,0 +1 @@
+<a-i>i
diff --git a/test/normal/object/inner/indent/in b/test/normal/object/inner/indent/in
new file mode 100644
index 00000000..3d074b01
--- /dev/null
+++ b/test/normal/object/inner/indent/in
@@ -0,0 +1,3 @@
+
+ foo(%(b)ar)
+
diff --git a/test/normal/object/inner/indent/selections b/test/normal/object/inner/indent/selections
new file mode 100644
index 00000000..ffb60196
--- /dev/null
+++ b/test/normal/object/inner/indent/selections
@@ -0,0 +1,2 @@
+ foo(bar)
+
diff --git a/test/normal/object/inner/paragraph/cmd b/test/normal/object/inner/paragraph/cmd
new file mode 100644
index 00000000..0e41c9b5
--- /dev/null
+++ b/test/normal/object/inner/paragraph/cmd
@@ -0,0 +1 @@
+<a-i>p
diff --git a/test/normal/object/inner/paragraph/in b/test/normal/object/inner/paragraph/in
new file mode 100644
index 00000000..0da6451e
--- /dev/null
+++ b/test/normal/object/inner/paragraph/in
@@ -0,0 +1,8 @@
+a
+b
+
+%(c)
+d
+
+e
+f
diff --git a/test/normal/object/inner/paragraph/selections b/test/normal/object/inner/paragraph/selections
new file mode 100644
index 00000000..4cdfd2ac
--- /dev/null
+++ b/test/normal/object/inner/paragraph/selections
@@ -0,0 +1,3 @@
+c
+d
+
diff --git a/test/normal/object/inner/parenthesis/cmd b/test/normal/object/inner/parenthesis/cmd
new file mode 100644
index 00000000..4509b477
--- /dev/null
+++ b/test/normal/object/inner/parenthesis/cmd
@@ -0,0 +1 @@
+<a-i>b
diff --git a/test/normal/object/inner/parenthesis/in b/test/normal/object/inner/parenthesis/in
new file mode 100644
index 00000000..3bea1f71
--- /dev/null
+++ b/test/normal/object/inner/parenthesis/in
@@ -0,0 +1 @@
+foo(%(b)ar)
diff --git a/test/normal/object/inner/parenthesis/selections b/test/normal/object/inner/parenthesis/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/inner/parenthesis/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/inner/sentence/cmd b/test/normal/object/inner/sentence/cmd
new file mode 100644
index 00000000..19bf3855
--- /dev/null
+++ b/test/normal/object/inner/sentence/cmd
@@ -0,0 +1 @@
+<a-i>s
diff --git a/test/normal/object/inner/sentence/in b/test/normal/object/inner/sentence/in
new file mode 100644
index 00000000..006cd705
--- /dev/null
+++ b/test/normal/object/inner/sentence/in
@@ -0,0 +1,6 @@
+%(Lorem ipsum) dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
+sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/test/normal/object/inner/sentence/selections b/test/normal/object/inner/sentence/selections
new file mode 100644
index 00000000..dd3c7d70
--- /dev/null
+++ b/test/normal/object/inner/sentence/selections
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua.
diff --git a/test/normal/object/inner/single_quote/cmd b/test/normal/object/inner/single_quote/cmd
new file mode 100644
index 00000000..2c023626
--- /dev/null
+++ b/test/normal/object/inner/single_quote/cmd
@@ -0,0 +1 @@
+<a-i>q
diff --git a/test/normal/object/inner/single_quote/in b/test/normal/object/inner/single_quote/in
new file mode 100644
index 00000000..ed397c1c
--- /dev/null
+++ b/test/normal/object/inner/single_quote/in
@@ -0,0 +1 @@
+foo('%(b)ar')
diff --git a/test/normal/object/inner/single_quote/selections b/test/normal/object/inner/single_quote/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/inner/single_quote/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/inner/slash/cmd b/test/normal/object/inner/slash/cmd
new file mode 100644
index 00000000..753eb6b7
--- /dev/null
+++ b/test/normal/object/inner/slash/cmd
@@ -0,0 +1 @@
+<a-i>/
diff --git a/test/normal/object/inner/slash/in b/test/normal/object/inner/slash/in
new file mode 100644
index 00000000..d6b8a544
--- /dev/null
+++ b/test/normal/object/inner/slash/in
@@ -0,0 +1 @@
+foo(/%(b)ar/)
diff --git a/test/normal/object/inner/slash/selections b/test/normal/object/inner/slash/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/inner/slash/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/inner/word/cmd b/test/normal/object/inner/word/cmd
new file mode 100644
index 00000000..377e885f
--- /dev/null
+++ b/test/normal/object/inner/word/cmd
@@ -0,0 +1 @@
+<a-i>w
diff --git a/test/normal/object/inner/word/in b/test/normal/object/inner/word/in
new file mode 100644
index 00000000..e92570ea
--- /dev/null
+++ b/test/normal/object/inner/word/in
@@ -0,0 +1 @@
+foo %(b)ar baz
diff --git a/test/normal/object/inner/word/selections b/test/normal/object/inner/word/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/inner/word/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/start-extending/angle/cmd b/test/normal/object/start-extending/angle/cmd
new file mode 100644
index 00000000..e61ebcbe
--- /dev/null
+++ b/test/normal/object/start-extending/angle/cmd
@@ -0,0 +1 @@
+{a
diff --git a/test/normal/object/start-extending/angle/in b/test/normal/object/start-extending/angle/in
new file mode 100644
index 00000000..8dea61dd
--- /dev/null
+++ b/test/normal/object/start-extending/angle/in
@@ -0,0 +1 @@
+#include <%(f)oo>
diff --git a/test/normal/object/start-extending/angle/selections b/test/normal/object/start-extending/angle/selections
new file mode 100644
index 00000000..1ab3973e
--- /dev/null
+++ b/test/normal/object/start-extending/angle/selections
@@ -0,0 +1 @@
+<f
diff --git a/test/normal/object/start-extending/argument/cmd b/test/normal/object/start-extending/argument/cmd
new file mode 100644
index 00000000..aff00a2f
--- /dev/null
+++ b/test/normal/object/start-extending/argument/cmd
@@ -0,0 +1 @@
+{u
diff --git a/test/normal/object/start-extending/argument/in b/test/normal/object/start-extending/argument/in
new file mode 100644
index 00000000..6647a82d
--- /dev/null
+++ b/test/normal/object/start-extending/argument/in
@@ -0,0 +1 @@
+something(first, "someth%(i)ng", another);
diff --git a/test/normal/object/start-extending/argument/selections b/test/normal/object/start-extending/argument/selections
new file mode 100644
index 00000000..88fbe697
--- /dev/null
+++ b/test/normal/object/start-extending/argument/selections
@@ -0,0 +1 @@
+ "somethi
diff --git a/test/normal/object/start-extending/big-word/cmd b/test/normal/object/start-extending/big-word/cmd
new file mode 100644
index 00000000..f2ed5a2e
--- /dev/null
+++ b/test/normal/object/start-extending/big-word/cmd
@@ -0,0 +1 @@
+{W
diff --git a/test/normal/object/start-extending/big-word/in b/test/normal/object/start-extending/big-word/in
new file mode 100644
index 00000000..82588cdb
--- /dev/null
+++ b/test/normal/object/start-extending/big-word/in
@@ -0,0 +1 @@
+foo bar-ba%(z) qux
diff --git a/test/normal/object/start-extending/big-word/selections b/test/normal/object/start-extending/big-word/selections
new file mode 100644
index 00000000..8965d2e8
--- /dev/null
+++ b/test/normal/object/start-extending/big-word/selections
@@ -0,0 +1 @@
+bar-baz
diff --git a/test/normal/object/start-extending/braces/cmd b/test/normal/object/start-extending/braces/cmd
new file mode 100644
index 00000000..63b248b1
--- /dev/null
+++ b/test/normal/object/start-extending/braces/cmd
@@ -0,0 +1 @@
+{B
diff --git a/test/normal/object/start-extending/braces/in b/test/normal/object/start-extending/braces/in
new file mode 100644
index 00000000..b62df918
--- /dev/null
+++ b/test/normal/object/start-extending/braces/in
@@ -0,0 +1,3 @@
+{
+ "%(foo)": "bar"
+}
diff --git a/test/normal/object/start-extending/braces/selections b/test/normal/object/start-extending/braces/selections
new file mode 100644
index 00000000..6e365bec
--- /dev/null
+++ b/test/normal/object/start-extending/braces/selections
@@ -0,0 +1,2 @@
+{
+ "foo
diff --git a/test/normal/object/start-extending/brackets/cmd b/test/normal/object/start-extending/brackets/cmd
new file mode 100644
index 00000000..13cd076e
--- /dev/null
+++ b/test/normal/object/start-extending/brackets/cmd
@@ -0,0 +1 @@
+{r
diff --git a/test/normal/object/start-extending/brackets/in b/test/normal/object/start-extending/brackets/in
new file mode 100644
index 00000000..286c5fcb
--- /dev/null
+++ b/test/normal/object/start-extending/brackets/in
@@ -0,0 +1,3 @@
+[
+ "%(foo)"
+]
diff --git a/test/normal/object/start-extending/brackets/selections b/test/normal/object/start-extending/brackets/selections
new file mode 100644
index 00000000..a42eb4eb
--- /dev/null
+++ b/test/normal/object/start-extending/brackets/selections
@@ -0,0 +1,2 @@
+[
+ "foo
diff --git a/test/normal/object/start-extending/double_quote/cmd b/test/normal/object/start-extending/double_quote/cmd
new file mode 100644
index 00000000..94fa0cfd
--- /dev/null
+++ b/test/normal/object/start-extending/double_quote/cmd
@@ -0,0 +1 @@
+{Q
diff --git a/test/normal/object/start-extending/double_quote/in b/test/normal/object/start-extending/double_quote/in
new file mode 100644
index 00000000..78428f5e
--- /dev/null
+++ b/test/normal/object/start-extending/double_quote/in
@@ -0,0 +1 @@
+foo("%(b)ar")
diff --git a/test/normal/object/start-extending/double_quote/selections b/test/normal/object/start-extending/double_quote/selections
new file mode 100644
index 00000000..87e31fb8
--- /dev/null
+++ b/test/normal/object/start-extending/double_quote/selections
@@ -0,0 +1 @@
+"b
diff --git a/test/normal/object/start-extending/grave_quote/cmd b/test/normal/object/start-extending/grave_quote/cmd
new file mode 100644
index 00000000..28f8b01b
--- /dev/null
+++ b/test/normal/object/start-extending/grave_quote/cmd
@@ -0,0 +1 @@
+{g
diff --git a/test/normal/object/start-extending/grave_quote/in b/test/normal/object/start-extending/grave_quote/in
new file mode 100644
index 00000000..6f02c52a
--- /dev/null
+++ b/test/normal/object/start-extending/grave_quote/in
@@ -0,0 +1 @@
+echo `%(f)oo`
diff --git a/test/normal/object/start-extending/grave_quote/selections b/test/normal/object/start-extending/grave_quote/selections
new file mode 100644
index 00000000..e20e0382
--- /dev/null
+++ b/test/normal/object/start-extending/grave_quote/selections
@@ -0,0 +1 @@
+`f
diff --git a/test/normal/object/start-extending/indent/cmd b/test/normal/object/start-extending/indent/cmd
new file mode 100644
index 00000000..d7379be4
--- /dev/null
+++ b/test/normal/object/start-extending/indent/cmd
@@ -0,0 +1 @@
+{i
diff --git a/test/normal/object/start-extending/indent/in b/test/normal/object/start-extending/indent/in
new file mode 100644
index 00000000..3d074b01
--- /dev/null
+++ b/test/normal/object/start-extending/indent/in
@@ -0,0 +1,3 @@
+
+ foo(%(b)ar)
+
diff --git a/test/normal/object/start-extending/indent/selections b/test/normal/object/start-extending/indent/selections
new file mode 100644
index 00000000..3c7d8873
--- /dev/null
+++ b/test/normal/object/start-extending/indent/selections
@@ -0,0 +1,2 @@
+
+ foo(b
diff --git a/test/normal/object/start-extending/paragraph/cmd b/test/normal/object/start-extending/paragraph/cmd
new file mode 100644
index 00000000..86fb08f1
--- /dev/null
+++ b/test/normal/object/start-extending/paragraph/cmd
@@ -0,0 +1 @@
+{p
diff --git a/test/normal/object/start-extending/paragraph/in b/test/normal/object/start-extending/paragraph/in
new file mode 100644
index 00000000..0da6451e
--- /dev/null
+++ b/test/normal/object/start-extending/paragraph/in
@@ -0,0 +1,8 @@
+a
+b
+
+%(c)
+d
+
+e
+f
diff --git a/test/normal/object/start-extending/paragraph/selections b/test/normal/object/start-extending/paragraph/selections
new file mode 100644
index 00000000..d1d9c6f7
--- /dev/null
+++ b/test/normal/object/start-extending/paragraph/selections
@@ -0,0 +1,4 @@
+a
+b
+
+c
diff --git a/test/normal/object/start-extending/parenthesis/cmd b/test/normal/object/start-extending/parenthesis/cmd
new file mode 100644
index 00000000..e3b685c2
--- /dev/null
+++ b/test/normal/object/start-extending/parenthesis/cmd
@@ -0,0 +1 @@
+{b
diff --git a/test/normal/object/start-extending/parenthesis/in b/test/normal/object/start-extending/parenthesis/in
new file mode 100644
index 00000000..3bea1f71
--- /dev/null
+++ b/test/normal/object/start-extending/parenthesis/in
@@ -0,0 +1 @@
+foo(%(b)ar)
diff --git a/test/normal/object/start-extending/parenthesis/selections b/test/normal/object/start-extending/parenthesis/selections
new file mode 100644
index 00000000..a4f1ddd7
--- /dev/null
+++ b/test/normal/object/start-extending/parenthesis/selections
@@ -0,0 +1 @@
+(b
diff --git a/test/normal/object/start-extending/sentence/cmd b/test/normal/object/start-extending/sentence/cmd
new file mode 100644
index 00000000..b22d6c52
--- /dev/null
+++ b/test/normal/object/start-extending/sentence/cmd
@@ -0,0 +1 @@
+{s
diff --git a/test/normal/object/start-extending/sentence/in b/test/normal/object/start-extending/sentence/in
new file mode 100644
index 00000000..0e5983b9
--- /dev/null
+++ b/test/normal/object/start-extending/sentence/in
@@ -0,0 +1,6 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et %(dolore magna aliqua). Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
+sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/test/normal/object/start-extending/sentence/selections b/test/normal/object/start-extending/sentence/selections
new file mode 100644
index 00000000..837b6bb4
--- /dev/null
+++ b/test/normal/object/start-extending/sentence/selections
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua
diff --git a/test/normal/object/start-extending/single_quote/cmd b/test/normal/object/start-extending/single_quote/cmd
new file mode 100644
index 00000000..7bf02d06
--- /dev/null
+++ b/test/normal/object/start-extending/single_quote/cmd
@@ -0,0 +1 @@
+{q
diff --git a/test/normal/object/start-extending/single_quote/in b/test/normal/object/start-extending/single_quote/in
new file mode 100644
index 00000000..ed397c1c
--- /dev/null
+++ b/test/normal/object/start-extending/single_quote/in
@@ -0,0 +1 @@
+foo('%(b)ar')
diff --git a/test/normal/object/start-extending/single_quote/selections b/test/normal/object/start-extending/single_quote/selections
new file mode 100644
index 00000000..52d63ab2
--- /dev/null
+++ b/test/normal/object/start-extending/single_quote/selections
@@ -0,0 +1 @@
+'b
diff --git a/test/normal/object/start-extending/word/cmd b/test/normal/object/start-extending/word/cmd
new file mode 100644
index 00000000..bd2198bc
--- /dev/null
+++ b/test/normal/object/start-extending/word/cmd
@@ -0,0 +1 @@
+{w
diff --git a/test/normal/object/start-extending/word/in b/test/normal/object/start-extending/word/in
new file mode 100644
index 00000000..6cac4552
--- /dev/null
+++ b/test/normal/object/start-extending/word/in
@@ -0,0 +1 @@
+foo ba%(r) baz
diff --git a/test/normal/object/start-extending/word/selections b/test/normal/object/start-extending/word/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/start-extending/word/selections
@@ -0,0 +1 @@
+bar
diff --git a/test/normal/object/start/angle/cmd b/test/normal/object/start/angle/cmd
new file mode 100644
index 00000000..3a8d2ba3
--- /dev/null
+++ b/test/normal/object/start/angle/cmd
@@ -0,0 +1 @@
+[a
diff --git a/test/normal/object/start/angle/in b/test/normal/object/start/angle/in
new file mode 100644
index 00000000..8dea61dd
--- /dev/null
+++ b/test/normal/object/start/angle/in
@@ -0,0 +1 @@
+#include <%(f)oo>
diff --git a/test/normal/object/start/angle/selections b/test/normal/object/start/angle/selections
new file mode 100644
index 00000000..1ab3973e
--- /dev/null
+++ b/test/normal/object/start/angle/selections
@@ -0,0 +1 @@
+<f
diff --git a/test/normal/object/start/argument/cmd b/test/normal/object/start/argument/cmd
new file mode 100644
index 00000000..5ae0c0e9
--- /dev/null
+++ b/test/normal/object/start/argument/cmd
@@ -0,0 +1 @@
+[u
diff --git a/test/normal/object/start/argument/in b/test/normal/object/start/argument/in
new file mode 100644
index 00000000..b39ec1ce
--- /dev/null
+++ b/test/normal/object/start/argument/in
@@ -0,0 +1 @@
+something (with a p%(a)ren, and some stuff)
diff --git a/test/normal/object/start/argument/selections b/test/normal/object/start/argument/selections
new file mode 100644
index 00000000..16f70569
--- /dev/null
+++ b/test/normal/object/start/argument/selections
@@ -0,0 +1 @@
+with a pa
diff --git a/test/normal/object/start/big-word/cmd b/test/normal/object/start/big-word/cmd
new file mode 100644
index 00000000..b8c68dc9
--- /dev/null
+++ b/test/normal/object/start/big-word/cmd
@@ -0,0 +1 @@
+[W
diff --git a/test/normal/object/start/big-word/in b/test/normal/object/start/big-word/in
new file mode 100644
index 00000000..82588cdb
--- /dev/null
+++ b/test/normal/object/start/big-word/in
@@ -0,0 +1 @@
+foo bar-ba%(z) qux
diff --git a/test/normal/object/start/big-word/selections b/test/normal/object/start/big-word/selections
new file mode 100644
index 00000000..8965d2e8
--- /dev/null
+++ b/test/normal/object/start/big-word/selections
@@ -0,0 +1 @@
+bar-baz
diff --git a/test/normal/object/start/braces/cmd b/test/normal/object/start/braces/cmd
new file mode 100644
index 00000000..7f884a79
--- /dev/null
+++ b/test/normal/object/start/braces/cmd
@@ -0,0 +1 @@
+[B
diff --git a/test/normal/object/start/braces/in b/test/normal/object/start/braces/in
new file mode 100644
index 00000000..b62df918
--- /dev/null
+++ b/test/normal/object/start/braces/in
@@ -0,0 +1,3 @@
+{
+ "%(foo)": "bar"
+}
diff --git a/test/normal/object/start/braces/selections b/test/normal/object/start/braces/selections
new file mode 100644
index 00000000..6e365bec
--- /dev/null
+++ b/test/normal/object/start/braces/selections
@@ -0,0 +1,2 @@
+{
+ "foo
diff --git a/test/normal/object/start/brackets/cmd b/test/normal/object/start/brackets/cmd
new file mode 100644
index 00000000..f4c7fa13
--- /dev/null
+++ b/test/normal/object/start/brackets/cmd
@@ -0,0 +1 @@
+[r
diff --git a/test/normal/object/start/brackets/in b/test/normal/object/start/brackets/in
new file mode 100644
index 00000000..286c5fcb
--- /dev/null
+++ b/test/normal/object/start/brackets/in
@@ -0,0 +1,3 @@
+[
+ "%(foo)"
+]
diff --git a/test/normal/object/start/brackets/selections b/test/normal/object/start/brackets/selections
new file mode 100644
index 00000000..a42eb4eb
--- /dev/null
+++ b/test/normal/object/start/brackets/selections
@@ -0,0 +1,2 @@
+[
+ "foo
diff --git a/test/normal/object/start/double_quote/cmd b/test/normal/object/start/double_quote/cmd
new file mode 100644
index 00000000..dad92fad
--- /dev/null
+++ b/test/normal/object/start/double_quote/cmd
@@ -0,0 +1 @@
+[Q
diff --git a/test/normal/object/start/double_quote/in b/test/normal/object/start/double_quote/in
new file mode 100644
index 00000000..78428f5e
--- /dev/null
+++ b/test/normal/object/start/double_quote/in
@@ -0,0 +1 @@
+foo("%(b)ar")
diff --git a/test/normal/object/start/double_quote/selections b/test/normal/object/start/double_quote/selections
new file mode 100644
index 00000000..87e31fb8
--- /dev/null
+++ b/test/normal/object/start/double_quote/selections
@@ -0,0 +1 @@
+"b
diff --git a/test/normal/object/start/grave_quote/cmd b/test/normal/object/start/grave_quote/cmd
new file mode 100644
index 00000000..46ed1d05
--- /dev/null
+++ b/test/normal/object/start/grave_quote/cmd
@@ -0,0 +1 @@
+[g
diff --git a/test/normal/object/start/grave_quote/in b/test/normal/object/start/grave_quote/in
new file mode 100644
index 00000000..6f02c52a
--- /dev/null
+++ b/test/normal/object/start/grave_quote/in
@@ -0,0 +1 @@
+echo `%(f)oo`
diff --git a/test/normal/object/start/grave_quote/selections b/test/normal/object/start/grave_quote/selections
new file mode 100644
index 00000000..e20e0382
--- /dev/null
+++ b/test/normal/object/start/grave_quote/selections
@@ -0,0 +1 @@
+`f
diff --git a/test/normal/object/start/indent/cmd b/test/normal/object/start/indent/cmd
new file mode 100644
index 00000000..3a5bba76
--- /dev/null
+++ b/test/normal/object/start/indent/cmd
@@ -0,0 +1 @@
+[i
diff --git a/test/normal/object/start/indent/in b/test/normal/object/start/indent/in
new file mode 100644
index 00000000..3d074b01
--- /dev/null
+++ b/test/normal/object/start/indent/in
@@ -0,0 +1,3 @@
+
+ foo(%(b)ar)
+
diff --git a/test/normal/object/start/indent/selections b/test/normal/object/start/indent/selections
new file mode 100644
index 00000000..3c7d8873
--- /dev/null
+++ b/test/normal/object/start/indent/selections
@@ -0,0 +1,2 @@
+
+ foo(b
diff --git a/test/normal/object/start/paragraph/cmd b/test/normal/object/start/paragraph/cmd
new file mode 100644
index 00000000..4976613e
--- /dev/null
+++ b/test/normal/object/start/paragraph/cmd
@@ -0,0 +1 @@
+[p
diff --git a/test/normal/object/start/paragraph/in b/test/normal/object/start/paragraph/in
new file mode 100644
index 00000000..0da6451e
--- /dev/null
+++ b/test/normal/object/start/paragraph/in
@@ -0,0 +1,8 @@
+a
+b
+
+%(c)
+d
+
+e
+f
diff --git a/test/normal/object/start/paragraph/selections b/test/normal/object/start/paragraph/selections
new file mode 100644
index 00000000..3a41e248
--- /dev/null
+++ b/test/normal/object/start/paragraph/selections
@@ -0,0 +1,4 @@
+a
+b
+
+
diff --git a/test/normal/object/start/parenthesis/cmd b/test/normal/object/start/parenthesis/cmd
new file mode 100644
index 00000000..f78a0e94
--- /dev/null
+++ b/test/normal/object/start/parenthesis/cmd
@@ -0,0 +1 @@
+[b
diff --git a/test/normal/object/start/parenthesis/in b/test/normal/object/start/parenthesis/in
new file mode 100644
index 00000000..3bea1f71
--- /dev/null
+++ b/test/normal/object/start/parenthesis/in
@@ -0,0 +1 @@
+foo(%(b)ar)
diff --git a/test/normal/object/start/parenthesis/selections b/test/normal/object/start/parenthesis/selections
new file mode 100644
index 00000000..a4f1ddd7
--- /dev/null
+++ b/test/normal/object/start/parenthesis/selections
@@ -0,0 +1 @@
+(b
diff --git a/test/normal/object/start/sentence/cmd b/test/normal/object/start/sentence/cmd
new file mode 100644
index 00000000..e7c8a2c6
--- /dev/null
+++ b/test/normal/object/start/sentence/cmd
@@ -0,0 +1 @@
+[s
diff --git a/test/normal/object/start/sentence/in b/test/normal/object/start/sentence/in
new file mode 100644
index 00000000..0e5983b9
--- /dev/null
+++ b/test/normal/object/start/sentence/in
@@ -0,0 +1,6 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et %(dolore magna aliqua). Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
+sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/test/normal/object/start/sentence/selections b/test/normal/object/start/sentence/selections
new file mode 100644
index 00000000..837b6bb4
--- /dev/null
+++ b/test/normal/object/start/sentence/selections
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua
diff --git a/test/normal/object/start/single_quote/cmd b/test/normal/object/start/single_quote/cmd
new file mode 100644
index 00000000..93673f74
--- /dev/null
+++ b/test/normal/object/start/single_quote/cmd
@@ -0,0 +1 @@
+[q
diff --git a/test/normal/object/start/single_quote/in b/test/normal/object/start/single_quote/in
new file mode 100644
index 00000000..ed397c1c
--- /dev/null
+++ b/test/normal/object/start/single_quote/in
@@ -0,0 +1 @@
+foo('%(b)ar')
diff --git a/test/normal/object/start/single_quote/selections b/test/normal/object/start/single_quote/selections
new file mode 100644
index 00000000..52d63ab2
--- /dev/null
+++ b/test/normal/object/start/single_quote/selections
@@ -0,0 +1 @@
+'b
diff --git a/test/normal/object/start/word/cmd b/test/normal/object/start/word/cmd
new file mode 100644
index 00000000..4198f90f
--- /dev/null
+++ b/test/normal/object/start/word/cmd
@@ -0,0 +1 @@
+[w
diff --git a/test/normal/object/start/word/in b/test/normal/object/start/word/in
new file mode 100644
index 00000000..6cac4552
--- /dev/null
+++ b/test/normal/object/start/word/in
@@ -0,0 +1 @@
+foo ba%(r) baz
diff --git a/test/normal/object/start/word/selections b/test/normal/object/start/word/selections
new file mode 100644
index 00000000..5716ca59
--- /dev/null
+++ b/test/normal/object/start/word/selections
@@ -0,0 +1 @@
+bar