Skip to content

Don't display propertynames on tab completion if there are a gazzilion properties. #60914

@LilithHafner

Description

@LilithHafner

I ran into this issue when working with DataFrames and originally reported it there, but it reproduces on 1.14.0-DEV.1523 with no packages, so I'm moving it here.

The practical use case is when working with a dataframe with a bunch of columns, tab completion can be very spammy. It is somewhat unusual for an object to have >1000 properties, but it is quite reasonable and consistent with the field/property API to do this and I'd like it to not hit this annoying UI edge case/bug.

Here's a reproducer on 1.14.0-DEV.1523 with no packages:

julia> struct T end

julia> const NAMES = [Symbol(randstring(80)) for _ in 1:7_000]
7000-element Vector{Symbol}:
 :icBfRlFLmq6CWPik8qmSlIYXYtl6yed7xBPmpxLCWwzM9pa7UvKtVTsSTMsgZE4tPR2zpyh4sK6sbRR3
 :YualxRfWNv7IdZ2FO9a0cpYrgDdcjGYibcv9586e2ly1X6NI7ZjGBi6u9tjeEBwiWa6rU11cqSKYdTcl
 :redFeOit97cR29yLl8IZBPXCyZ6neHKSs9qy95vurZ5pKYsekEH2BvxybFx6KhVt4rcqgPQBTNqzUBEN
 :Uom9bE4EKp52zuGRPC4omn6IPcDnTNaEw1WIBM0Pbzz6s3AkLBXJY2aI5gNSJucVTxZHVluB8cVmsOJ7
 :Ue8hxB4W0VbJ5PZ2pmX88XjoomNPDqMUWXev8ZZz3Ds90WttZPZl6po7Fz3QlDdKZSyETbm55EXlSsm8
 :EtJhO4bqOAGhU5JC8cPEIrOYKE8txya4EvuPnbqnm3sp0JtjsF5VoC8ny8FwWMLu15JyyPE0ylXvduPv
 ⋮
 :uygLVgcKahMNFMvh6VfsfYP8aMx2cOmkzM1cQiaBgS8qIMlvK89JK6w6alBVgwC3dplB7RQYpdiGOiV0
 :T3YOoQIWUNBV0vtAKMNVMudGC1MNJUcVDsNOoX94YosCnjkQ7ULlIthBkgx7VkU8jcbwAufBuhenC5kU
 :GBgnL2WoJRK1KsexZT1f1uMIMQ1T7ZzqVBqbEM3wIfAyOJGBHo7NFuqq8kl7e7QZmzkxqviY3SCv4TUR
 :DxoS3SysuJe7fhb0aqiksnc8wp80YWDqhiUI91ZHCDpervvRUdW8ZfgjiqKG6LBRh3zUkW3kZ7dROx6M
 :KVEZdOgFDmUTcrR0aM0SApxCLwEz4krMvbQiJ6U5ux00lYAQlQYqqKhEJcJqsFJQKugAkOKRmhtto5gO

julia> Base.propertynames(::T) = NAMES

julia> T().[TAB]

Metadata

Metadata

Assignees

No one assigned

    Labels

    REPLJulia's REPL (Read Eval Print Loop)featureIndicates new feature / enhancement requests

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions