Skip to content

Use a less aggresive tag address #11

Description

@pjrt

Currently, a tag address for:

def foo[A, B, C](a: A, b: B, c: C): Baz

Would create the tag address:

def \zsfoo[A, B, C](a: A, b: B, c: C): Baz

However, this means that if the user changes anything (even a: A -> aa: A) it would cause the address to become invalid. I feel this is too aggressive. Having such a strict tag allows for better precision (disambiguate between a foo with two params vs one with three) but more often than not, people don't have that many overloaded functions (or at least they shouldn't).

This "issue" also extends to case classes and others.

A possible solution is to use everything BUT the params. So the example above would return an address as:

def \zsfoo

Metadata

Metadata

Assignees

No one assigned

    Labels

    vim tagsRelated to the construction of vim tag files

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions