Skip to content

v0.9.4

Choose a tag to compare

@dpep dpep released this 17 Oct 16:03
· 131 commits to main since this release
8bd222d
  • A constant written in class Object is the top level's. Ruby reaches
    class Object; OBJC = 6; end as OBJC, ::OBJC and Object::OBJC
    alike, and a top-level TOP = 1 as Object::TOP; trekr kept them apart,
    so ::OBJC, Object::TOP, and a bare OBJC at the top level or in a
    module's method were residue, and --refs by each spelling listed a
    different set. They now resolve, hover and go to the definition, and
    --refs ::OBJC, --refs Object::OBJC and Find References at any of them
    list the same mentions. Hover at a mention names such a constant OBJC,
    as Ruby does.
    A module's lookup, and ::KC, also reach a Kernel constant now, as in
    Ruby; Box::OBJC and Box::TOP still miss.
  • --dead counts a top-level constant used as Object::X or ::X.
    class Object; LIMIT = 1; end read only as ::LIMIT, or TOP = 1 read
    only as Object::TOP, was listed unreferenced.
  • --refs by a constant's whole name lists mentions made through an
    ancestor.
    --refs Kernel::KC missed Box::KC and Leaf::KC, which
    Ruby resolves through Box's and Leaf's ancestors, and so did --refs at
    its definition, while Find References in an open file listed them. Every
    mention that resolves to the constant is now listed, by name, at the
    definition and at any mention, in the CLI and the editor alike. The store
    is rebuilt on first use (v66): the next command reindexes.
    The rebuild leaves the old rows' space free inside the file; run
    trekr --gc --vacuum once afterwards to shrink it.