Releases: btakita/tagpath
Releases · btakita/tagpath
tagpath v0.5.0
Full Changelog: v0.4.0...v0.5.0
tagpath v0.4.0
Full Changelog: v0.3.0...v0.4.0
tagpath v0.3.0
Full Changelog: v0.2.0...v0.3.0
v0.2.0 — Phase 2: Extract, Search, Tree-sitter, Lint
What's New
Phase 2a — Extract + Cross-Language Search
tagpath extract <path>— regex-based identifier extraction with tag decompositiontagpath search <query> <path>— semantic cross-language tag search (AND semantics)- One query finds identifiers across all conventions (snake_case, camelCase, PascalCase, kebab-case)
Phase 2b — Tree-sitter + Lint
- Tree-sitter integration with 8 language grammars: Rust, Python, JavaScript, TypeScript, TSX, Go, C, C++
tagpath extract --ast— context-aware extraction (function, variable, type, constant, import, parameter, field)tagpath lint— validates identifiers against.naming.tomlcontext rules, suggests convention fixes
Stats
- 37 tests passing
- 2,353 lines added
cargo install tagpathto update
Full Changelog: v0.1.0...v0.2.0
v0.1.0 — Phase 1 Complete
Tag Path v0.1.0
First release — Phase 1 complete.
Features
- Convention detection — auto-detects snake_case, camelCase, PascalCase, kebab-case, UPPER_SNAKE_CASE
- Semantic equivalence —
person_name=personName=PersonName→[person, name] - Role detection —
create_*(factory),use_*(hook),set_*(setter),is_*(predicate), etc. - Shape detection —
*_a(array),*_r(record),*_m(map),*$(signal) - Namespace dimensions —
__separates semantic dimensions - Mixed convention support — handles
createContext_auth(camelCase + underscore extension) - 39 language presets — C, C++, C#, Clojure, Common Lisp, Crystal, CSS, D, Dart, Elixir, Erlang, F#, Gleam, Go, Haskell, Java, JavaScript, Julia, Kotlin, Lua, Nim, Objective-C, OCaml, Odin, Perl, PHP, Python, R, Racket, Ruby, Rust, Scala, Scheme, Shell, SQL, Swift, TypeScript, V, Zig
- TOML configuration —
.naming.tomlfor project-specific conventions
CLI
cargo install tagpath
tagpath parse person_name # → tags: [person, name]
tagpath parse personName # → tags: [person, name] (semantic equivalence)
tagpath init --lang typescript # → creates .naming.tomlInstall
cargo install tagpath