# Incorporating \`methodswith\`

**URL:** <https://discourse.julialang.org/t/incorporating-methodswith/95245>\
**Category:** VS Code\
**Tags:** feature-request\
**Created:** [February 27, 2023, 1:14am UTC](https://discourse.julialang.org/t/incorporating-methodswith/95245 "2023-02-27T01:14:33Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![wujinq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wujinq/32/22221_2.png) [@wujinq](https://discourse.julialang.org/u/wujinq)\
**Post date:** [February 27, 2023, 1:14am UTC](https://discourse.julialang.org/t/incorporating-methodswith/95245/1 "2023-02-27T01:14:33Z")

</div>

When programming in C++ or Rust or Python, we can just click `.` and obtain a list of available methods for an object. Since Julia is based on multiple dispatch, there is no such thing as `obj.method()`. But is it possible to incorporate `methodswith` into the VSCode plugin for Julia? It would be nice if I strike Ctrl+I after a variable whose type is known and get a list of available methods.

---

<div class="post-metadata">

**Author:** ![uniment](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/uniment/32/24532_2.png) [@uniment](https://discourse.julialang.org/u/uniment)\
**Post date:** [February 27, 2023, 2:28am UTC](https://discourse.julialang.org/t/incorporating-methodswith/95245/2 "2023-02-27T02:28:08Z")

</div>

`methodswith` is a bit too simple: because much of an object’s interface is inherited from its abstract supertype, and because many methods rely on duck typing, many relevant methods won’t appear.

However, it’s possible to come up with something a bit more sophisticated: I did that in [this comment](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue/89654/191), in the context of debating a function chaining syntax. Basically, it recursively calls `methodswith` on supertypes to show all methods that _could_ be called on this object.

In theory, an autocomplete could also be linked to a database of statistical data from GitHub, or even a personal codebase, to sort the shown methods by the frequency with which they’re called on the object’s type.

The latest function chaining syntax proposal [is here](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue-rev-3/90836).

---

<div class="post-metadata">

**Author:** ![uje](https://avatars.discourse-cdn.com/v4/letter/u/5f9b8f/32.png) [@uje](https://discourse.julialang.org/u/uje)\
**Post date:** [February 27, 2023, 10:15am UTC](https://discourse.julialang.org/t/incorporating-methodswith/95245/3 "2023-02-27T10:15:49Z")

</div>

@wujinq consider using the [REPLference.jl](https://github.com/udohjeremiah/REPLference.jl) package. It was specifically designed for that.

---

<div class="post-metadata">

**Author:** ![xgdgsc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xgdgsc/32/608_2.png) [@xgdgsc](https://discourse.julialang.org/u/xgdgsc)\
**Post date:** [April 7, 2023, 9:22am UTC](https://discourse.julialang.org/t/incorporating-methodswith/95245/4 "2023-04-07T09:22:15Z")

</div>

> [@Looking for opinion on dot methods completion implementation](https://discourse.julialang.org/t/looking-for-opinion-on-dot-methods-completion-implementation/97153/3):
>
> I could make it configurable. But for new learners and users that might have already learned a few languages and might have to switch multiple languages during work, It could be already in their muscle memory to search object related functions.
