Fix a bug with path completion

When creating suggestions through the dataPathListEnd rule,
this position saved to the m_completionIterator was wrong. For example,
when completing this command:
set example:list
the completion iterator would get set just before "list". Now it
correctly sets it just before "example". This bug was not caught by
tests because tests only use cd and the rule for that command never uses
the dataPathListEnd rule.

Change-Id: Ie2f94c26e9d600ebf8246aa97ed7045b4eea6faa
diff --git a/src/grammars.hpp b/src/grammars.hpp
index 9ba81c6..e6a7fc7 100644
--- a/src/grammars.hpp
+++ b/src/grammars.hpp
@@ -162,7 +162,7 @@
     initializePath >> -(absoluteStart >> createPathSuggestions) >> dataNode % '/' >> (trailingSlash >> createPathSuggestions >> (completing | x3::eoi) | (&space_separator | x3::eoi));
 
 auto const dataNodeList_def =
-    -(module) >> createPathSuggestions >> list;
+    createPathSuggestions >> -(module) >> list;
 
 // This intermediate rule is mandatory, because we need the first alternative
 // to be collapsed to a vector. If we didn't use the intermediate rule,
diff --git a/tests/path_completion.cpp b/tests/path_completion.cpp
index 462a2e6..0359675 100644
--- a/tests/path_completion.cpp
+++ b/tests/path_completion.cpp
@@ -110,6 +110,12 @@
             expected = {"example:list"};
         }
 
+        SECTION("set example:list")
+        {
+            input = "set example:list";
+            expected = {"example:list"};
+        }
+
         SECTION("cd example:list[")
         {
             input = "cd example:list[";