From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Eric M. Ludlam" Newsgroups: gmane.emacs.devel Subject: Re: Completions in Semantic Date: Mon, 02 Nov 2009 07:13:56 -0500 Message-ID: <1257164036.5333.340.camel@projectile.siege-engine.com> References: <1255990628.6961.1084.camel@projectile.siege-engine.com> <1256070021.6961.1107.camel@projectile.siege-engine.com> <20091021105840.GD2964@ginnungagap.pc.ac.upc.edu> <20091027212118.GA25239@ginnungagap.pc.ac.upc.edu> <1256696707.5333.214.camel@projectile.siege-engine.com> <20091029143811.GB25239@ginnungagap.pc.ac.upc.edu> <868weq8c9m.wl%lluis@fulla.xlab.taz> Reply-To: eric@siege-engine.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1257164019 8584 80.91.229.12 (2 Nov 2009 12:13:39 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 2 Nov 2009 12:13:39 +0000 (UTC) Cc: =?ISO-8859-1?Q?Llu=EDs?= , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Nov 02 13:13:28 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1N4vmp-0005iN-Ey for ged-emacs-devel@m.gmane.org; Mon, 02 Nov 2009 13:13:28 +0100 Original-Received: from localhost ([127.0.0.1]:48831 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N4vmo-0007Qj-2R for ged-emacs-devel@m.gmane.org; Mon, 02 Nov 2009 07:13:26 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N4vmi-0007QQ-2M for emacs-devel@gnu.org; Mon, 02 Nov 2009 07:13:20 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N4vmf-0007Oh-Rw for emacs-devel@gnu.org; Mon, 02 Nov 2009 07:13:19 -0500 Original-Received: from [199.232.76.173] (port=36737 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N4vmf-0007Oe-Or for emacs-devel@gnu.org; Mon, 02 Nov 2009 07:13:17 -0500 Original-Received: from static-71-184-83-10.bstnma.fios.verizon.net ([71.184.83.10]:49228 helo=projectile.siege-engine.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1N4vmf-00031T-HK for emacs-devel@gnu.org; Mon, 02 Nov 2009 07:13:17 -0500 Original-Received: from projectile.siege-engine.com (localhost [127.0.0.1]) by projectile.siege-engine.com (8.14.3/8.14.3/Debian-6) with ESMTP id nA2CDuIP002014; Mon, 2 Nov 2009 07:13:57 -0500 Original-Received: (from zappo@localhost) by projectile.siege-engine.com (8.14.3/8.14.3/Submit) id nA2CDuG3002013; Mon, 2 Nov 2009 07:13:56 -0500 X-Authentication-Warning: projectile.siege-engine.com: zappo set sender to eric@siege-engine.com using -f In-Reply-To: X-Mailer: Evolution 2.26.1 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:116575 Archived-At: On Mon, 2009-11-02 at 01:12 -0500, Stefan Monnier wrote: > > Ok, I might say something totally stupid, but you just need to map the UI > > actions to specific keys, which can be selected by the user. And on the > > It's not stupid, but the question is how/where to put the hooks that > allow the particular UI backend to setup such bindings. For minibuffer > completion, we have minibuffer-local-completion-map, but for in-buffer > completion we have no such thing (standard in-buffer completion like > lisp-complete-symbol doesn't use a keymap). This is where an OO like system (built on something like EIEIO with data and methods) would be ideal. If someone needs to specialize completion, they just subclass, and override the bit they need. Instead of calling a built-in core completion method, users would subclass the core completion object, and then override the bits they need to make a new completion engine. This would be easier to design now than divining all future hook names and finding a way to make a function call with an extensible number of hook/action types. Eric