@Override
		protected Stream<String> extractRepositories(String line) {
			if (line.startsWith(REPOS_COMMENT_PREFIX)) {
				return Arrays.stream(line.split(" // ")[0].split("[ ;,]+")).skip(1).map(String::trim);
			}

			if (line.contains(REPOS_ANNOT_PREFIX)) {
				if (line.indexOf(REPOS_ANNOT_PREFIX) > line.indexOf("//")) {
					// ignore if on line that is a comment
					return Stream.of();
				}

				Map<String, String> args = new HashMap<>();

				Matcher matcher = REPOS_ANNOT_PAIRS.matcher(line);
				while (matcher.find()) {
					args.put(matcher.group("key"), matcher.group("value"));
				}
				if (!args.isEmpty()) {
					String repo = args.getOrDefault("name", args.get("root")) + "=" + args.get("root");
					return Stream.of(repo);
				} else {
					matcher = REPOS_ANNOT_SINGLE.matcher(line);
					if (matcher.find()) {
						return Stream.of(matcher.group("value"));
					}
				}
			}

			return Stream.of();
		}
This class extends the default <code>TagReader</code> with support for Groovy
"grab" annotations.
src/main/java/dev/jbang/source/TagReader.java