public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug cli/15548] Limit completions to a pre-defined limit when completions list is very large
Date: Sat, 31 Jan 2015 23:27:00 -0000	[thread overview]
Message-ID: <bug-15548-4717-E8Fax82wPn@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-15548-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=15548

--- Comment #15 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Doug Evans <devans@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ef0b411a110cd2602cb89c3fb237baf8beb28545

commit ef0b411a110cd2602cb89c3fb237baf8beb28545
Author: Gary Benson <gbenson@redhat.com>
Date:   Sat Jan 31 15:07:22 2015 -0800

    Add max-completions parameter, and implement tab-completion limiting.

    This commit adds a new exception, MAX_COMPLETIONS_REACHED_ERROR, to be
    thrown whenever the completer has generated too many candidates to
    be useful.  A new user-settable variable, "max_completions", is added
    to control this behaviour.  A top-level completion limit is added to
    complete_line_internal, as the final check to ensure the user never
    sees too many completions.  An additional limit is added to
    default_make_symbol_completion_list_break_on, to halt time-consuming
    symbol table expansions.

    gdb/ChangeLog:

        PR cli/9007
        PR cli/11920
        PR cli/15548
        * cli/cli-cmds.c (complete_command): Notify user if max-completions
        reached.
        * common/common-exceptions.h (enum errors)
        <MAX_COMPLETIONS_REACHED_ERROR>: New value.
        * completer.h (get_max_completions_reached_message): New declaration.
        (max_completions): Likewise.
        (completion_tracker_t): New typedef.
        (new_completion_tracker): New declaration.
        (make_cleanup_free_completion_tracker): Likewise.
        (maybe_add_completion_enum): New enum.
        (maybe_add_completion): New declaration.
        (throw_max_completions_reached_error): Likewise.
        * completer.c (max_completions): New global variable.
        (new_completion_tracker): New function.
        (free_completion_tracker): Likewise.
        (make_cleanup_free_completion_tracker): Likewise.
        (maybe_add_completions): Likewise.
        (throw_max_completions_reached_error): Likewise.
        (complete_line): Remove duplicates and limit result to max_completions
        entries.
        (get_max_completions_reached_message): New function.
        (gdb_display_match_list): Handle max_completions.
        (_initialize_completer): New declaration and function.
        * symtab.c: Include completer.h.
        (completion_tracker): New static variable.
        (completion_list_add_name): Call maybe_add_completion.
        (default_make_symbol_completion_list_break_on_1): Renamed from
        default_make_symbol_completion_list_break_on.  Maintain
        completion_tracker across calls to completion_list_add_name.
        (default_make_symbol_completion_list_break_on): New function.
        * top.c (init_main): Set rl_completion_display_matches_hook.
        * tui/tui-io.c: Include completer.h.
        (tui_old_rl_display_matches_hook): New static global.
        (tui_rl_display_match_list): Notify user if max-completions reached.
        (tui_setup_io): Save/restore rl_completion_display_matches_hook.
        * NEWS (New Options): Mention set/show max-completions.

    gdb/doc/ChangeLog:

        * gdb.texinfo (Command Completion): Document new
        "set/show max-completions" option.

    gdb/testsuite/ChangeLog:

        * gdb.base/completion.exp: Disable completion limiting for
        existing tests.  Add new tests to check completion limiting.
        * gdb.linespec/ls-errs.exp: Disable completion limiting.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


  parent reply	other threads:[~2015-01-31 23:15 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-29 11:39 [Bug cli/15548] New: " pmuldoon at redhat dot com
2013-05-29 15:33 ` [Bug cli/15548] " dmalcolm at redhat dot com
2013-06-03  5:16 ` dje at google dot com
2013-06-03 17:24 ` dje at google dot com
2013-06-03 19:25 ` dje at google dot com
2013-06-03 20:20 ` dje at google dot com
2013-06-25 10:08 ` manu at gcc dot gnu.org
2013-10-25 19:01 ` gbenson at redhat dot com
2013-10-25 19:09 ` dje at google dot com
2013-10-25 19:37 ` gbenson at redhat dot com
2013-11-04 13:02 ` gbenson at redhat dot com
2013-11-04 16:29 ` gbenson at redhat dot com
2014-02-12 11:40 ` gbenson at redhat dot com
2014-02-14 13:36 ` gbenson at redhat dot com
2014-02-14 13:37 ` jan.kratochvil at redhat dot com
2014-02-14 13:45 ` jan.kratochvil at redhat dot com
2014-02-14 16:13 ` gbenson at redhat dot com
2014-05-14 13:02 ` gbenson at redhat dot com
2014-09-21  8:54 ` maayan at maayank dot com
2014-09-29 11:43 ` manu at gcc dot gnu.org
2014-11-06 11:16 ` gbenson at redhat dot com
2014-11-16 20:10 ` rscrihf+sourceware at gmail dot com
2015-01-17 17:42 ` yhager at yhager dot com
2015-01-31 23:27 ` cvs-commit at gcc dot gnu.org [this message]
2015-02-02  3:32 ` cvs-commit at gcc dot gnu.org
2015-03-28 22:07 ` xdje42 at gmail dot com
2015-03-28 22:07 ` xdje42 at gmail dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-15548-4717-E8Fax82wPn@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).