From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 105430 invoked by alias); 28 Jan 2019 12:41:30 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 105384 invoked by uid 89); 28 Jan 2019 12:41:29 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:user, sk:complet, H*r:sk:relay.f, H*r:may X-HELO: relay.fit.cvut.cz Received: from relay.fit.cvut.cz (HELO relay.fit.cvut.cz) (147.32.232.237) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Jan 2019 12:41:26 +0000 Received: from imap.fit.cvut.cz (imap.fit.cvut.cz [147.32.232.238]) by relay.fit.cvut.cz (8.15.2/8.15.2) with ESMTPS id x0SCfM14060260 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jan 2019 13:41:24 +0100 (CET) (envelope-from jan.vrany@fit.cvut.cz) Received: from localhost (027906ee.bb.sky.com [2.121.6.238] (may be forged)) (authenticated bits=0 as user vranyj1) by imap.fit.cvut.cz (8.15.2/8.15.2) with ESMTPSA id x0SCfKpq086184 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 28 Jan 2019 13:41:22 +0100 (CET) (envelope-from jan.vrany@fit.cvut.cz) From: Jan Vrany To: gdb-patches@sourceware.org Cc: Jan Vrany Subject: [PATCH v2 0/2] MI: Add new command -complete Date: Mon, 28 Jan 2019 12:41:00 -0000 Message-Id: <20190128124101.26243-1-jan.vrany@fit.cvut.cz> In-Reply-To: <87imynm3ia.fsf@tromey.com> References: <87imynm3ia.fsf@tromey.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SW-Source: 2019-01/txt/msg00581.txt.bz2 This is a rework of previous patch based on Tom's comments. Another thing worth considering (not done in this version) is to have more structured result. Instead of (current version): -complete "br m" =^done,completions=["br main", "br madvise"] respond with something like (proposed change): -complete "br m" =^done,text="br m",common="a",matches=["in", "dvise"] The rarionale is that frontend most likely needs these three values anyway to implement completion. It can, indeed compute them from full list as returned now, but GDB has these values already so it would save the frontend doing the same work again. OTOH, current output is more on par with CLI command output. What do you think? Differences v1 -> v2: * extracted common completion logic to a new helper function * implemented MI command using a new mi-specific function rather than using CLI implementation. Jan Vrany (2): MI: extract command completion logic from complete_command() MI: Add new command -complete gdb/ChangeLog | 14 ++++++ gdb/NEWS | 7 +++ gdb/cli/cli-cmds.c | 32 +------------ gdb/completer.c | 34 +++++++++++++ gdb/completer.h | 8 ++++ gdb/doc/ChangeLog | 5 ++ gdb/doc/gdb.texinfo | 31 ++++++++++++ gdb/mi/mi-cmds.c | 2 + gdb/mi/mi-cmds.h | 1 + gdb/mi/mi-main.c | 44 +++++++++++++++++ gdb/testsuite/ChangeLog | 4 ++ gdb/testsuite/gdb.mi/mi-complete.exp | 71 ++++++++++++++++++++++++++++ 12 files changed, 223 insertions(+), 30 deletions(-) create mode 100644 gdb/testsuite/gdb.mi/mi-complete.exp -- 2.20.1