Merge changes Ib67436af,Id3a07d2a

* changes:
  Fix get command completing nodes after list-end
  Fix parsing issue with get
diff --git a/src/path_parser.hpp b/src/path_parser.hpp
index 04a2dba..eb34033 100644
--- a/src/path_parser.hpp
+++ b/src/path_parser.hpp
@@ -291,13 +291,18 @@
         if constexpr (PARSER_MODE == PathParserMode::DataPathListEnd || PARSER_MODE == PathParserMode::AnyPath) {
             if (!res || !pathEnd.parse(begin, end, ctx, rctx, x3::unused)) {
                 dataNode_ attrNodeList;
-                res = incompleteDataNode<COMPLETION_MODE>{m_filterFunction}.parse(begin, end, ctx, rctx, attrNodeList);
-                if (res) {
+                auto hasListEnd = incompleteDataNode<COMPLETION_MODE>{m_filterFunction}.parse(begin, end, ctx, rctx, attrNodeList);
+                if (hasListEnd) {
                     attrData.m_nodes.emplace_back(attrNodeList);
-                    // If the trailing slash matches, no more nodes are parsed.
-                    // That means no more completion. So, I generate them
-                    // manually.
-                    res = (-(trailingSlash >> x3::omit[pathCompletions<COMPLETION_MODE>{m_filterFunction}])).parse(begin, end, ctx, rctx, attrData.m_trailingSlash);
+                    // If the trailing slash matches, no more nodes are parsed. That means no more completion. So, I
+                    // generate them manually, but only if we're in AnyPath mode, so, for example, inside an `ls`
+                    // command. If we're in DataPathListEnd it doesn't make sense to parse put any more nodes after the
+                    // final list.
+                    if constexpr (PARSER_MODE == PathParserMode::AnyPath) {
+                        res = (-(trailingSlash >> x3::omit[pathCompletions<COMPLETION_MODE>{m_filterFunction}])).parse(begin, end, ctx, rctx, attrData.m_trailingSlash);
+                    } else {
+                        res = (-trailingSlash).parse(begin, end, ctx, rctx, attrData.m_trailingSlash);
+                    }
                 }
             }
         }
@@ -460,7 +465,6 @@
 
 auto const getPath_def =
     PathParser<PathParserMode::DataPathListEnd, CompletionMode::Data>{noRpcOrAction} |
-    PathParser<PathParserMode::DataPath, CompletionMode::Data>{noRpcOrAction} |
     (module >> "*");
 
 auto const cdPath_def =
diff --git a/tests/path_completion.cpp b/tests/path_completion.cpp
index 4b6b25b..ffd3e93 100644
--- a/tests/path_completion.cpp
+++ b/tests/path_completion.cpp
@@ -187,6 +187,24 @@
         }
     }
 
+    SECTION("get completion")
+    {
+        SECTION("get /example:ano/l")
+        {
+            input = "get /example:ano/l";
+            expectedCompletions = {"listInCont"};
+            expectedContextLength = 1;
+        }
+
+        SECTION("get /example:list/")
+        {
+            input = "get /example:list/";
+            expectedCompletions = {};
+            // The expectedContextLength is 13, because the completion isn't actually generated after the slash.
+            expectedContextLength = 13;
+        }
+    }
+
     SECTION("list keys completion")
     {
         SECTION("cd example:lis")