From 9b2116ed1ddc69f3e53252eed75257cd3c350ae5 Mon Sep 17 00:00:00 2001 From: David Neugebauer Date: Wed, 1 Jul 2026 20:21:07 +0200 Subject: [PATCH 1/2] fix line endings TagImporterFactory.java --- .../importer/tag/TagImporterFactory.java | 230 +++++++++--------- 1 file changed, 115 insertions(+), 115 deletions(-) diff --git a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java index 7daf0be2d..22a7d26b8 100644 --- a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java +++ b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java @@ -1,115 +1,115 @@ -package org.itsallcode.openfasttrace.importer.tag; - -import java.util.*; -import java.util.stream.Stream; - -import org.itsallcode.openfasttrace.api.importer.*; -import org.itsallcode.openfasttrace.api.importer.input.InputFile; -import org.itsallcode.openfasttrace.api.importer.tag.config.PathConfig; - -/** - * {@link ImporterFactory} for tags in source code files. - */ -// [impl->dsn~import.full-coverage-tag~1] -public class TagImporterFactory extends ImporterFactory -{ - private static final String DEFAULT_FILE_REGEX = "(?i).*\\.java"; - private static final List SUPPORTED_DEFAULT_EXTENSIONS = Arrays.asList( // - "ads", "adb", // Ada - "bat", // Windows batch files - "c", "C", "cc", "cpp", "c++", "h", "H", "h++", "hh", "hpp", // C/C++ - "c#", "cs", // C# - "cfg", "conf", "ini", // configuration files - "feature", // Gherkin feature files - "go", // Go - "groovy", // Groovy - "json", "htm", "html", "xhtml", "xml", "yaml", "yml", // markup languages - "fxml", "java", // Java - "clj", "kt", "kts", "scala", // JVM languages - "js", "mjs", "cjs", "ejs", // JavaScript - "ts", // TypeScript - "lua", // Lua - "m", "mm", // Objective C - "php", // PHP - "proto", // Protocol Buffers - "pl", "pm", // Perl - "proto", // Protobuf - "py", // Python - "robot", // Robot Framework - "pu", "puml", "plantuml", // PlantUML - "r", // R Language - "rs", // Rust - "sh", "bash", "zsh", // Shell programming - "sv", "v", "inc", // SystemVerilog - "swift", // Swift - "toml", // Tom's Obvious Minimal Language : a config file format - "tf", "tfvars", // Terraform - "sql", "pls" // Database related - ); - - /** - * Create a new {@link TagImporterFactory}. - */ - public TagImporterFactory() - { - // empty by intention - } - - @Override - public int getPriority() { - return 10000; - } - - - @Override - public boolean supportsFile(final InputFile path) - { - return supportsDefaultFile(path) || supportsConfiguredFile(path); - } - - private boolean supportsConfiguredFile(final InputFile path) - { - return findConfig(path).isPresent(); - } - - boolean supportsDefaultFile(final InputFile file) - { - final String path = file.getPath(); - final int lastDotPosition = path.lastIndexOf("."); - if (lastDotPosition > 0) - { - final String extension = path.substring(lastDotPosition + 1); - return SUPPORTED_DEFAULT_EXTENSIONS.contains(extension); - } - else - { - return false; - } - } - - private Optional findConfig(final InputFile file) - { - return getPathConfigs() // - .filter(config -> config.matches(file)) // - .findFirst(); - } - - @Override - public Importer createImporter(final InputFile path, final ImportEventListener listener) - { - if (!supportsFile(path)) - { - throw new ImporterException("File '" + path - + "' cannot be imported because it does not match any supported file patterns: " - + DEFAULT_FILE_REGEX + " and " + getPathConfigs().toList()); - } - final Optional config = findConfig(path); - return TagImporter.create(config.orElse(null), path, listener); - } - - private Stream getPathConfigs() - { - final ImportSettings settings = getContext().getImportSettings(); - return settings == null ? Stream.empty() : settings.getPathConfigs().stream(); - } -} +package org.itsallcode.openfasttrace.importer.tag; + +import java.util.*; +import java.util.stream.Stream; + +import org.itsallcode.openfasttrace.api.importer.*; +import org.itsallcode.openfasttrace.api.importer.input.InputFile; +import org.itsallcode.openfasttrace.api.importer.tag.config.PathConfig; + +/** + * {@link ImporterFactory} for tags in source code files. + */ +// [impl->dsn~import.full-coverage-tag~1] +public class TagImporterFactory extends ImporterFactory +{ + private static final String DEFAULT_FILE_REGEX = "(?i).*\\.java"; + private static final List SUPPORTED_DEFAULT_EXTENSIONS = Arrays.asList( // + "ads", "adb", // Ada + "bat", // Windows batch files + "c", "C", "cc", "cpp", "c++", "h", "H", "h++", "hh", "hpp", // C/C++ + "c#", "cs", // C# + "cfg", "conf", "ini", // configuration files + "feature", // Gherkin feature files + "go", // Go + "groovy", // Groovy + "json", "htm", "html", "xhtml", "xml", "yaml", "yml", // markup languages + "fxml", "java", // Java + "clj", "kt", "kts", "scala", // JVM languages + "js", "mjs", "cjs", "ejs", // JavaScript + "ts", // TypeScript + "lua", // Lua + "m", "mm", // Objective C + "php", // PHP + "proto", // Protocol Buffers + "pl", "pm", // Perl + "proto", // Protobuf + "py", // Python + "robot", // Robot Framework + "pu", "puml", "plantuml", // PlantUML + "r", // R Language + "rs", // Rust + "sh", "bash", "zsh", // Shell programming + "sv", "v", "inc", // SystemVerilog + "swift", // Swift + "toml", // Tom's Obvious Minimal Language : a config file format + "tf", "tfvars", // Terraform + "sql", "pls" // Database related + ); + + /** + * Create a new {@link TagImporterFactory}. + */ + public TagImporterFactory() + { + // empty by intention + } + + @Override + public int getPriority() { + return 10000; + } + + + @Override + public boolean supportsFile(final InputFile path) + { + return supportsDefaultFile(path) || supportsConfiguredFile(path); + } + + private boolean supportsConfiguredFile(final InputFile path) + { + return findConfig(path).isPresent(); + } + + boolean supportsDefaultFile(final InputFile file) + { + final String path = file.getPath(); + final int lastDotPosition = path.lastIndexOf("."); + if (lastDotPosition > 0) + { + final String extension = path.substring(lastDotPosition + 1); + return SUPPORTED_DEFAULT_EXTENSIONS.contains(extension); + } + else + { + return false; + } + } + + private Optional findConfig(final InputFile file) + { + return getPathConfigs() // + .filter(config -> config.matches(file)) // + .findFirst(); + } + + @Override + public Importer createImporter(final InputFile path, final ImportEventListener listener) + { + if (!supportsFile(path)) + { + throw new ImporterException("File '" + path + + "' cannot be imported because it does not match any supported file patterns: " + + DEFAULT_FILE_REGEX + " and " + getPathConfigs().toList()); + } + final Optional config = findConfig(path); + return TagImporter.create(config.orElse(null), path, listener); + } + + private Stream getPathConfigs() + { + final ImportSettings settings = getContext().getImportSettings(); + return settings == null ? Stream.empty() : settings.getPathConfigs().stream(); + } +} From 44dd645c051423eaafa2a3bbf308b7ce061fc6a0 Mon Sep 17 00:00:00 2001 From: David Neugebauer Date: Wed, 1 Jul 2026 19:01:36 +0200 Subject: [PATCH 2/2] enabled tag importer for doxygen files --- doc/user_guide.md | 1 + .../openfasttrace/importer/tag/TagImporterFactory.java | 1 + .../openfasttrace/importer/tag/TestTagImporterFactory.java | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/user_guide.md b/doc/user_guide.md index a8b35e475..7139671a4 100644 --- a/doc/user_guide.md +++ b/doc/user_guide.md @@ -763,6 +763,7 @@ recognized file types: * C (`.c`, `.h`) * C++ (`.C`, `.cpp`, `.c++`, `.cc`, `.H`, `.hpp`, `.h++`, `.hh`) * C# (`.c#`, `cs`) +* Doxygen (`.dox`) * Database related (`.sql`, `.pls`) * Configuration files (`.cfg`, `.conf`, `.ini`) * [Go](https://golang.org/) (`.go`) diff --git a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java index 22a7d26b8..21327b746 100644 --- a/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java +++ b/importer/tag/src/main/java/org/itsallcode/openfasttrace/importer/tag/TagImporterFactory.java @@ -18,6 +18,7 @@ public class TagImporterFactory extends ImporterFactory "ads", "adb", // Ada "bat", // Windows batch files "c", "C", "cc", "cpp", "c++", "h", "H", "h++", "hh", "hpp", // C/C++ + "dox", // Doxygen "c#", "cs", // C# "cfg", "conf", "ini", // configuration files "feature", // Gherkin feature files diff --git a/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterFactory.java b/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterFactory.java index 50a71b4b5..f388567b7 100644 --- a/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterFactory.java +++ b/importer/tag/src/test/java/org/itsallcode/openfasttrace/importer/tag/TestTagImporterFactory.java @@ -26,7 +26,7 @@ protected List getSupportedFilenames() { return asList("file.java", "FILE.java", "file.md.java", "file.ads", "file.adb", "foo.bash", "foo.bar.bash", "foo.bat", "foo.java", "foo.c", "foo.C", "foo.c++", "foo.c#", "foo.cc", "foo.cfg", - "foo.conf", "foo.cpp", "foo.cs", "foo.feature", "foo.fxml", "foo.go", + "foo.conf", "foo.cpp", "foo.dox", "foo.cs", "foo.feature", "foo.fxml", "foo.go", "foo.groovy", "foo.h", "foo.H", "foo.hh", "foo.h++", "foo.htm", "foo.html", "foo.ini", "foo.js", "foo.kt", "foo.kts", "foo.mjs", "foo.cjs", "foo.ejs", "foo.ts", "foo.json",