Skip to content

Releases: btakita/tagpath

tagpath v0.5.0

03 Mar 20:07

Choose a tag to compare

tagpath v0.4.0

03 Mar 11:46

Choose a tag to compare

tagpath v0.3.0

03 Mar 02:12

Choose a tag to compare

v0.2.0 — Phase 2: Extract, Search, Tree-sitter, Lint

03 Mar 00:17

Choose a tag to compare

What's New

Phase 2a — Extract + Cross-Language Search

  • tagpath extract <path> — regex-based identifier extraction with tag decomposition
  • tagpath 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.toml context rules, suggests convention fixes

Stats

  • 37 tests passing
  • 2,353 lines added
  • cargo install tagpath to update

Full Changelog: v0.1.0...v0.2.0

v0.1.0 — Phase 1 Complete

02 Mar 21:33

Choose a tag to compare

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 equivalenceperson_name = personName = PersonName[person, name]
  • Role detectioncreate_* (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.toml for 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.toml

Install

cargo install tagpath