Exit after completion by default

This behavior can be overridden by installing a custom completion handler
diff --git a/completion_test.go b/completion_test.go
index 2d5a97f..f440fd7 100644
--- a/completion_test.go
+++ b/completion_test.go
@@ -268,6 +268,11 @@
 
 		p := NewParser(&completionTestOptions, None)
 
+		p.CompletionHandler = func(items []Completion) {
+			comp := &completion{parser: p}
+			comp.print(items, test.ShowDescriptions)
+		}
+
 		_, err := p.ParseArgs(test.Args)
 
 		w.Close()
diff --git a/parser.go b/parser.go
index 9661af3..8dedd0e 100644
--- a/parser.go
+++ b/parser.go
@@ -195,6 +195,7 @@
 			p.CompletionHandler(items)
 		} else {
 			comp.print(items, compval == "verbose")
+			os.Exit(0)
 		}
 
 		return nil, nil