Commit Graph

16 Commits

Author SHA1 Message Date
f3ad8e64c8 fix: nimcheck improvements for generics, JS operators, Python 3.10+ syntax
- Add tolerantMode for generic Nim code with < > brackets
- Fix JS ?. and ?? operator tokenization
- Add Python 3.10 match/case keywords, underscore prefix support
- Fix f-string parsing operator precedence bug
- Fix duplicate foundClosing assignments in JS/PHP tokenizers
- Treat unknown flavors as info instead of error
- Add comprehensive test coverage for all fixes
2026-07-15 11:14:29 +02:00
9f50fd7e37 chore: remove tracked build.tmp artifact 2026-07-15 06:59:50 +02:00
96a5dc834a docs: align README with project documentation rules
Shrink README to a concise product overview (capabilities, quick start, build,
test, structure, doc links). Move API reference, types, JSON schemas, and CLI
detail to docs/API.md; move error catalogue to docs/ERRORS.md; move pipeline
layers to docs/ARCHITECTURE.md. Add CLAUDE.md with README policy and sync task.
2026-07-15 06:59:03 +02:00
7d6e7d925e docs: complete project documentation and Gitea CI setup
Add STATUS.md (what's done, verification, future work), GITEA.md (act_runner,
master branch policy, pipeline), and CONTRIBUTING.md (dev guide, new language
checklist). Update README for all 28 validators, docs index, and project tree.

Align Gitea Actions with master as default branch; add PR and issue templates.
Expand .gitignore for debug artifacts and test binaries.
2026-07-15 06:54:12 +02:00
5a7c24f936 feat: add extended language validators and fix tokenizer crash bugs
Expand nimcheck with validators and tokenizers for C, C++, C#, Go, Rust,
Ruby, CSS, SQL, Markdown, Dockerfile, Makefile, Kotlin, Lua, Swift,
TypeScript, and XML. Register all flavors in the validator factory and
improve auto-detection scoring for the new languages.

Fix infinite tokenizer loops that caused OOM kills: closeBracket now
advances position, finishTokenizeStep guards stalled tokenization, and
Jinja/JS tokenizers no longer double-advance on brackets.

Fix block-balance false positives in Lua (for/do) and Ruby (postfix
unless), SQL trailing-comma detection across whitespace, and Makefile
tab literals in test fixtures.
2026-07-15 06:49:45 +02:00
df2b327a5d fix: make nimble build and nimble test work out of the box
- Add bin/binDir keys so `nimble build` compiles src/nimcheck.nim into
  bin/nimcheck instead of failing with "Nothing to build" (the previous
  `task build` was dead code: nimble never dispatches a custom task that
  shares a name with a builtin command).
- Route all test tasks through thisDir()-based absolute paths so they no
  longer depend on the caller's current working directory.
- Fix test_json/test_yaml/test_toml tasks, which pointed at nonexistent
  tests/test_json.nim, tests/test_yaml.nim, tests/test_toml.nim; they now
  correctly run the real *_exhaustive.nim suites, matching the Makefile.
2026-07-12 22:36:39 +02:00
608974021d Update 2026-07-08 12:10:42 +02:00
3dacbb3ab0 chore: remove CONTRIBUTING.md and LESSONS_LEARNED.md from repository
These files were deleted as they are no longer relevant to the project's current state. CONTRIBUTING.md contained outdated contribution guidelines, and LESSONS_LEARNED.md held a postmortem analysis that is now archived elsewhere. The README.md was updated to reflect their removal from the directory listing.
2026-07-08 10:01:18 +00:00
4a9b4bdf3a chore: normalize comment formatting in CI workflow and gitignore
Replace inconsistent hash-comment separators (using `#   ` prefix with
spaces) with a uniform dash-based style across the CI pipeline YAML
file, and add a `*.bak*` glob to the project's `.gitignore` to exclude
backup files from version control.
2026-07-08 08:40:46 +00:00
a804fbe97e chore: remove trailing newline from repository root README.md 2026-07-08 08:32:36 +00:00
15c1513938 chore: add master branch to CI triggers for push and pull_request events 2026-07-08 08:30:46 +00:00
508ffa4cdf feat: add comprehensive CI pipeline with matrix testing and coverage
Add full CI workflow for Nimcheck with lint, test matrix across Nim versions, build, and coverage jobs. Introduce workflow_dispatch trigger, concurrency control, and shared environment variable for Nim version. Enhance job documentation with detailed comments explaining pipeline structure and purpose.
2026-07-08 08:27:06 +00:00
330adff37c feat: add --json flag to validate/inspect CLI and switch tests to exhaustive variants
Add `--json` CLI flag for both `validate` and `inspect` subcommands, enabling raw JSON output via `r.toJson().pretty()` instead of formatted report. Update Makefile test targets to use `test_json_exhaustive`, `test_yaml_exhaustive`, and `test_toml_exhaustive` test files. Extend `.gitignore` to exclude the new exhaustive test binaries. Revise README with version header, table of contents, and restructured documentation.
2026-07-08 08:19:01 +00:00
72a7b661db feat: rename project from Validatrix to Nimcheck across all files and add CI pipeline
Rename the entire project from "Validatrix" to "Nimcheck" in README.md, Makefile, LESSONS_LEARNED.md, and all source references; add initial Gitea CI workflow with lint, test, and build jobs for Nim 2.0.0; expand .gitignore with comprehensive patterns for Nim, Python, editor, environment, and temporary files; add CONTRIBUTING.md and LICENSE (MIT) files to establish project governance and licensing.
2026-07-08 08:01:58 +00:00
659ea7ebe0 docs: update README and LESSONS_LEARNED
README:
- Expand building section with Makefile, nimble, and manual targets
- Add CLI usage examples for all commands (stdin, detect, version)
- Expand API reference with all public functions (validateSourceJson, reportFile, etc.)
- Add JSON output documentation
- Expand development section with project tree and language-adding guide
- Add versioning and prerequisites sections

LESSONS_LEARNED:
- Add Class 9: Missing .gitignore -- build artifact tracking risk
- Add Class 10: Repository directory name mismatch
- Renumber all sections 11-16 to accommodate new entries
- Update test count from 256 to 250+
- Update total bug counts
2026-07-08 04:29:19 +00:00
7e8917e527 feat: add initial validatrix project with multi-language validator framework
Establish the Validatrix source code validation framework in Nim, including core detection, tokenization, and validation infrastructure for 10 languages (bash, HTML, JavaScript, Jinja, JSON, Nim, PHP, Python, TOML, YAML). The initial commit introduces the main validatrix.nim entry point with public API (validateSource, validateFile, inspectSource), a comprehensive test suite with per-language test files, build configuration via Makefile and .nimble, detailed LESSONS_LEARNED.md documenting 14 bug classes found during development, and a .gitignore excluding compiled binaries, logs, and build artifacts. The detector module provides extension-to-flavor mapping for 40+ file extensions and content-based language detection, while the debug module supports conditional compilation with -d:validatrixDebug for detailed tokenization logging.
2026-07-08 04:25:59 +00:00