branch: elpa/yaml-mode
commit 6ddd55205224c2f2c306699e021cedbaeecfaaf2
Merge: 3362e1b a96d09d
Author: Vasilij Schneidermann <[email protected]>
Commit: Vasilij Schneidermann <[email protected]>
Merge pull request #34 from antalk2/again-p2
Recognize dash-newline starting a sequence entry
---
.../test-dash-newline-starts-sequence-1.yaml | 23 +++++++++++++++
.../test-dash-newline-starts-sequence-2.yaml | 33 ++++++++++++++++++++++
yaml-mode.el | 2 +-
3 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/test-files/test-dash-newline-starts-sequence-1.yaml
b/test-files/test-dash-newline-starts-sequence-1.yaml
new file mode 100644
index 0000000..3ae484b
--- /dev/null
+++ b/test-files/test-dash-newline-starts-sequence-1.yaml
@@ -0,0 +1,23 @@
+#
+# Old behaviour (version 0.0.12)
+#
+# (1) Move to cursor to the beginning of the line containing 'aaa'
+# (2) Press TAB
+# (3) The line should be indented now.
+# Problem: the line is not indented.
+#
+# Note: in the line containing the dash ('-') there is no space character
+# after the dash, so it is not recognized as start of the sequence entry
+# by yaml-nested-sequence-re
+#
+# Proposed change:
+#
+# Change yaml-bare-scalar-re to recognize the dash-newline sequence.
+#
+# New behaviour:
+#
+# (1) Pressing TAB on the line containing 'aaa' now indents the line.
+# (2) Pressing TAB again unindents the line.
+#
+-
+aaa
diff --git a/test-files/test-dash-newline-starts-sequence-2.yaml
b/test-files/test-dash-newline-starts-sequence-2.yaml
new file mode 100644
index 0000000..f7a5341
--- /dev/null
+++ b/test-files/test-dash-newline-starts-sequence-2.yaml
@@ -0,0 +1,33 @@
+#
+# Old behaviour (version 0.0.12)
+#
+# (1) Move to cursor to the beginning of the line containing 'aaa'
+# (2) Press TAB repeatedly
+#
+# (3) The cycle of indentations of the line should include
+# the 'indented more than the previous line' state
+#
+# Problem: the line is only indented to align with
+# the dash in then previous line, but not more.
+#
+# Note: in the line containing the dash ('-') there is no space character
+# after the dash, so it is not recognized as start of the sequence entry
+# by yaml-nested-sequence-re
+#
+# Proposed change:
+#
+# Change yaml-bare-scalar-re to recognize the dash-newline sequence.
+#
+# New behaviour:
+#
+# (1) Pressing TAB on the line containing 'aaa'
+# now indents the line more than the previous line.
+#
+# (2) Pressing TAB again indents the line
+# to align with dash on the previous line.
+#
+# (3) Pressing TAB again unindents the line.
+#
+-
+ -
+ aaa
diff --git a/yaml-mode.el b/yaml-mode.el
index 3e67139..21a1d00 100644
--- a/yaml-mode.el
+++ b/yaml-mode.el
@@ -164,7 +164,7 @@ that key is pressed to begin a block literal."
"Regexp matching a line beginning a YAML block literal.")
(defconst yaml-nested-sequence-re
- (concat "^\\(?: *- +\\)+"
+ (concat "^\\(?:\\(?: *- +\\)+\\|\\(:? *-$\\)\\)"
"\\(?:" yaml-bare-scalar-re " *:\\(?: +.*\\)?\\)?$")
"Regexp matching a line containing one or more nested YAML sequences.")