vb6parse 1.0.1

vb6parse is a library for parsing and analyzing VB6 code, from projects, to controls, to modules, and forms.
Documentation
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="VB6Parse Test Coverage Report - Comprehensive test coverage metrics">
    <title>Test Coverage - VB6Parse</title>
    <link rel="stylesheet" href="assets/css/style.css">
    <link rel="stylesheet" href="assets/css/docs-style.css">
    <link rel="stylesheet" href="assets/css/coverage.css">
    <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@3.0.0/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
    <script src="assets/js/theme-switcher.js"></script>
    <script src="assets/js/stats.js"></script>
    <script src="assets/js/coverage-history.js"></script>
</head>
<body>
    <header class="docs-header">
        <div class="container">
            <h1><a href="index.html">VB6Parse</a> / <a href="documentation.html">Documentation</a> / Coverage Report</h1>
            <p class="tagline">Test Coverage Metrics for <span id="test-count-header">5,000+</span> Tests</p>
        </div>
    </header>

    <nav class="docs-nav">
        <div class="container">
            <a href="index.html">Home</a>
            <a href="documentation.html">Documentation</a>
            <a href="https://docs.rs/vb6parse" target="_blank">API Docs</a>
            <a href="https://github.com/scriptandcompile/vb6parse" target="_blank">GitHub</a>
            <button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme">
                <span class="theme-icon">🌙</span>
            </button>
        </div>
    </nav>

    <main class="container" style="padding: 60px 20px;">
        <div id="loading" class="loading">
            <div class="loading-spinner"></div>
            <p>Loading coverage data...</p>
        </div>

        <div id="error" class="error" style="display: none;">
            <div class="error-icon">⚠️</div>
            <h2>Failed to load coverage data</h2>
            <p id="error-message"></p>
        </div>

        <div id="coverage-content" style="display: none;">
            <div id="regression-alert" class="regression-alert" style="display: none;">
                <div class="alert-icon">⚠️</div>
                <div class="alert-content">
                    <strong>Coverage Regression Detected</strong>
                    <p id="regression-message">Coverage has decreased compared to previous snapshot.</p>
                </div>
            </div>

            <div class="coverage-summary">
                <div class="coverage-card">
                    <h3>Line Coverage</h3>
                    <div class="coverage-percent" id="line-percent">--%</div>
                    <div id="line-trend" class="trend-indicator"></div>
                    <div class="coverage-bar">
                        <div class="coverage-bar-fill" id="line-bar" style="width: 0%"></div>
                    </div>
                    <div class="coverage-details" id="line-details">- / - lines</div>
                    <p class="coverage-explanation">Percentage of executable code lines that were executed during testing</p>
                </div>

                <div class="coverage-card">
                    <h3>Function Coverage</h3>
                    <div class="coverage-percent" id="function-percent">--%</div>
                    <div id="function-trend" class="trend-indicator"></div>
                    <div class="coverage-bar">
                        <div class="coverage-bar-fill" id="function-bar" style="width: 0%"></div>
                    </div>
                    <div class="coverage-details" id="function-details">- / - functions</div>
                    <p class="coverage-explanation">Percentage of functions and methods that were called at least once</p>
                </div>

                <div class="coverage-card">
                    <h3>Region Coverage</h3>
                    <div class="coverage-percent" id="region-percent">--%</div>
                    <div id="region-trend" class="trend-indicator"></div>
                    <div class="coverage-bar">
                        <div class="coverage-bar-fill" id="region-bar" style="width: 0%"></div>
                    </div>
                    <div class="coverage-details" id="region-details">- / - regions</div>
                    <p class="coverage-explanation">Percentage of code regions (branches, conditionals) that were tested</p>
                </div>
            </div>

            <div id="stats-loading" style="background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 8px; padding: 3rem 2rem; text-align: center; margin: 2rem 0;">
                <div style="width: 48px; height: 48px; border: 4px solid var(--border-color); border-top-color: var(--primary-color); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 1rem;"></div>
                <p style="color: var(--text-secondary); margin: 0;">Test statistics being generated...</p>
                <style>
                    @keyframes spin {
                        to { transform: rotate(360deg); }
                    }
                </style>
            </div>
            <div class="stats-grid" id="stats-grid" style="display: none;">
                <div class="stat-card">
                    <div class="stat-number" data-stat="lib_tests"></div>
                    <div class="stat-label">Library Tests</div>
                </div>
                <div class="stat-card">
                    <div class="stat-number" data-stat="doc_tests"></div>
                    <div class="stat-label">Doc Tests</div>
                </div>
                <div class="stat-card">
                    <div class="stat-number" data-stat="integration_tests"></div>
                    <div class="stat-label">Integration Tests</div>
                </div>
                <div class="stat-card">
                    <div class="stat-number" data-stat="fuzz_targets"></div>
                    <div class="stat-label">Fuzz Targets</div>
                </div>
            </div>
            <p class="testing-info">
                VB6Parse uses comprehensive testing including unit tests, snapshot testing with 
                <a href="https://docs.rs/insta" target="_blank">insta</a>, benchmarking with 
                <a href="https://github.com/bheisler/criterion.rs" target="_blank">criterion</a>, 
                and fuzz testing with <a href="https://github.com/rust-fuzz/cargo-fuzz" target="_blank">cargo-fuzz</a>.
            </p>

            <div id="historical-trends" class="historical-section" style="display: none;">
                <h2>Historical Coverage Trends</h2>
                <div class="time-range-selector">
                    <button class="time-range-btn active" data-range="7">Last 7 Days</button>
                    <button class="time-range-btn" data-range="30">Last 30 Days</button>
                    <button class="time-range-btn" data-range="90">Last 90 Days</button>
                    <button class="time-range-btn" data-range="all">All Time</button>
                </div>
                <div class="chart-container">
                    <canvas id="trends-chart"></canvas>
                </div>
                <div class="chart-legend">
                    <p><strong>Chart shows:</strong> Coverage percentage trends over time. Higher is better. <em>Click any data point to view that commit on GitHub.</em></p>
                </div>
            </div>

            <div id="test-trends" class="historical-section" style="display: none;">
                <h2>Test Count Growth</h2>
                <div class="chart-container">
                    <canvas id="test-chart"></canvas>
                </div>
                <div class="chart-legend">
                    <p><strong>Chart shows:</strong> Total test count over time. Click any data point to view that commit on GitHub.</p>
                </div>
            </div>

            <div id="recent-snapshots" class="historical-section" style="display: none;">
                <h2>Recent Snapshots</h2>
                <div class="snapshots-controls">
                    <button id="export-csv" class="export-btn">📊 Export CSV</button>
                </div>
                <div class="snapshots-table-wrapper">
                    <table class="snapshots-table">
                        <thead>
                            <tr>
                                <th>Date</th>
                                <th>Commit</th>
                                <th>Line %</th>
                                <th>Function %</th>
                                <th>Region %</th>
                                <th>Tests</th>
                            </tr>
                        </thead>
                        <tbody id="snapshots-table-body">
                        </tbody>
                    </table>
                </div>
            </div>

            <div class="file-list">
                <h2>Files Needing Coverage</h2>
                <div class="file-filter">
                    <input type="text" id="file-search" placeholder="Filter files by name...">
                </div>
                <table class="file-table">
                    <thead>
                        <tr>
                            <th>File</th>
                            <th>Lines</th>
                            <th>Functions</th>
                            <th>Regions</th>
                        </tr>
                    </thead>
                    <tbody id="file-table-body">
                    </tbody>
                </table>
            </div>

            <div class="file-list" id="complete-coverage-section" style="display: none;">
                <h2>Files with 100% Coverage</h2>
                <div class="file-filter">
                    <input type="text" id="complete-file-search" placeholder="Filter files by name...">
                </div>
                <table class="file-table">
                    <thead>
                        <tr>
                            <th>File</th>
                            <th>Lines</th>
                            <th>Functions</th>
                            <th>Regions</th>
                        </tr>
                    </thead>
                    <tbody id="complete-file-table-body">
                    </tbody>
                </table>
            </div>
        </div>
    </main>

    <footer>
        <div class="container">
            <p>VB6Parse is licensed under the <a href="https://opensource.org/licenses/MIT" target="_blank">MIT License</a></p>
            <p>Built with ❤️ by <a href="https://github.com/scriptandcompile" target="_blank">ScriptAndCompile</a></p>
        </div>
    </footer>
</body>
</html>