From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Alex Schroeder Newsgroups: gmane.emacs.devel Subject: Re: Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Date: Wed, 04 Sep 2002 00:35:56 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: <87bs7er99v.fsf@emacswiki.org> References: <200208271621.g7RGLNm30516@rum.cs.yale.edu> <5xhehfe3aj.fsf@kfs2.cua.dk> <874rdfaytt.fsf@pot.cnuce.cnr.it> <5xvg5sh06u.fsf@kfs2.cua.dk> <20020830235528.GA13207@gnu.org> <87ofbji88u.fsf@emacswiki.org> <87sn0scb0b.fsf@emacswiki.org> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1031092400 24169 127.0.0.1 (3 Sep 2002 22:33:20 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 3 Sep 2002 22:33:20 +0000 (UTC) Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17mMEZ-0006HY-00 for ; Wed, 04 Sep 2002 00:33:19 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17mMnT-0003Z0-00 for ; Wed, 04 Sep 2002 01:09:23 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17mMG7-0008HL-00; Tue, 03 Sep 2002 18:34:55 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17mMF8-00088f-00 for emacs-devel@gnu.org; Tue, 03 Sep 2002 18:33:54 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17mMF5-00087w-00 for emacs-devel@gnu.org; Tue, 03 Sep 2002 18:33:54 -0400 Original-Received: from relay02.cablecom.net ([62.2.33.102]) by monty-python.gnu.org with esmtp (Exim 4.10) id 17mMF4-00087V-00 for emacs-devel@gnu.org; Tue, 03 Sep 2002 18:33:50 -0400 Original-Received: from smtp.swissonline.ch (mail-4.swissonline.ch [62.2.32.85]) by relay02.cablecom.net (8.12.5/8.12.5/SOL/AWF/MXRELAY/20020820) with ESMTP id g83MXlWs045044 for ; Wed, 4 Sep 2002 00:33:48 +0200 (CEST) (envelope-from alex@emacswiki.org) Original-Received: from confusibombus (dclient217-162-239-43.hispeed.ch [217.162.239.43]) by smtp.swissonline.ch (8.11.6/8.11.6/SMTPSOL/AWF/2002040101) with ESMTP id g83MXlH25172 for ; Wed, 4 Sep 2002 00:33:47 +0200 (MEST) Original-Received: from alex by confusibombus with local (Exim 3.35 #1 (Debian)) id 17mMH7-00007P-00 for ; Wed, 04 Sep 2002 00:35:57 +0200 Original-To: emacs-devel@gnu.org X-Face: ^BC$`[IcggstLPyen&dqF+b2'zyK#r.mU*'Nms}@&4zw%SJ#5!/7SMVjBS7'lb;QK)|IPU5U'o1'522W4TyzB3Ab*IBo^iw]l4|kUbdZuUDO6=Um-.4IzhNiV'B"@K#jy_(wW|Zbk[34flKY^|PrQ?$u2\fKg^]AY>wOX#H32i In-Reply-To: (Per Abrahamsen's message of "Tue, 03 Sep 2002 14:27:18 +0200") Original-Lines: 47 User-Agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2.90 (i686-pc-linux-gnu) Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:7406 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:7406 Cool. Thanks for writing this widget stuff. I really should look more into this; I am sort of "there", but do not grok it enoug to write new real widgets. All I do is write wizards and defcustoms. :) I think this looks really useful. If we merged this with the diff-list stuff, we could write something interesting that would look more or less like this: (defmacro defkeymap (symbol map doc &rest args) "Define SYMBOL to be a keymap with value MAP. DOC is the keymap documentation." ;; It is better not to use backquote in this file, ;; because that makes a bootstrapping problem ;; if you need to recompile all the Lisp files using interpreted code. (nconc (list 'custom-declare-keymap (list 'quote symbol) (list 'quote map) doc) args)) (defun custom-declare-keymap (symbol map doc &rest args) "Like `defkeymap', but SYMBOL and MAP are evaluated as normal arguments. MAP should be an expression to evaluate to compute the default value, not the default value itself. The DOC string will be expanded with some standard instructions for customization." ;; Keymaps are variables. The only difference is that we know lots ;; of defcustom properties already. (setq doc (concat (get symbol 'variable-documentation) "\n While entering the name of a key, you can either type keys yourself just as they appear in the manual, as in C-c a. You must use angle brackets for function keys, as in . You can also hit C-q and type the key. C-q will insert the correct string representation for you. For longer sequences, you can also invoke the [Key sequence] button, and type the entire key sequence directly. While entering the name of the command, you can use M-TAB to complete it.")) (apply 'custom-declare-variable symbol map doc :type '(repeat (group key-sequence command)) :get (some diff-list stuff) :set (some mix of diff-list and the code you wrote))) I will see wether I can dig out the diff-list stuff from the mailing list archives, I must have lost it somewhere along the way... Alex.