Skip to content

Consider API presentation of protocols #707

Open
@lread

Description

@lread

Currently

Given a namespace with:

(defn afn [x])

(defprotocol BooYa
  (fn1 [this a])
  (fn2 [this b]))

For the list of clickable vars, cljdoc will show:

  • afn
  • BooYa

And will only show fn1 and fn1 in the var details for BooYa

But...

As a user of a library, I'm interested in seeing what I can use.

So maybe...

We should also display fn1 and fn2 in the list of vars.

The above would become:

  • afn
  • BooYa
    • fn1
    • fn2

This would also allow us to annotate fn1 and fn2, when appropriate, as we do with other vars, with platform-specific clj and cljs markers.

For var details, we could continue to display them, as we do currently, under BooYa.

An alternative would be to show fn1 and fn2 sorted with other vars at the top level:

  • afn
  • BooYa
  • fn1
  • fn2

But I think that the fact that a function is part of a protocol is probably interesting enough to show them under BooYa.

Your thoughts?

What do you think? Make sense? Other ideas?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions