From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thomas Lord Newsgroups: gmane.emacs.devel Subject: Re: Shift selection using interactive spec Date: Sat, 15 Mar 2008 18:37:34 -0700 Message-ID: <47DC79DE.1000201@emf.net> References: <87k5k69p92.fsf@stupidchicken.com> <200803140408.m2E47hPU014494@sallyv1.ics.uci.edu> <87prtxpekk.fsf@kfs-lx.rd.rdm> <87abl11ilo.fsf@stupidchicken.com> <874pb9koyw.fsf@stupidchicken.com> <87od9gzqv9.fsf@stupidchicken.com> <87bq5gytbi.fsf@stupidchicken.com> <8763vndi0r.fsf@kfs-lx.rd.rdm> <47DC3AB2.9070502@emf.net> <87ejabv7gg.fsf@stupidchicken.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1205629152 13660 80.91.229.12 (16 Mar 2008 00:59:12 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 16 Mar 2008 00:59:12 +0000 (UTC) Cc: Dan Nicolaescu , Stefan Monnier , "Kim F. Storm" , emacs-devel@gnu.org To: Chong Yidong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Mar 16 01:59:40 2008 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 1JahDu-0001b6-Np for ged-emacs-devel@m.gmane.org; Sun, 16 Mar 2008 01:59:39 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JahDL-0003BO-BD for ged-emacs-devel@m.gmane.org; Sat, 15 Mar 2008 20:59:03 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JahDF-00036Y-6K for emacs-devel@gnu.org; Sat, 15 Mar 2008 20:58:57 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JahDE-00035C-Cx for emacs-devel@gnu.org; Sat, 15 Mar 2008 20:58:56 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JahDE-00034z-3S for emacs-devel@gnu.org; Sat, 15 Mar 2008 20:58:56 -0400 Original-Received: from mail.42inc.com ([205.149.0.25]) by monty-python.gnu.org with esmtps (SSL 3.0:RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1JahDC-0005wb-PL for emacs-devel@gnu.org; Sat, 15 Mar 2008 20:58:56 -0400 X-TFF-CGPSA-Version: 1.5 X-TFF-CGPSA-Filter-42inc: Scanned X-42-Virus-Scanned: by 42 Antivirus -- Found to be clean. Original-Received: from [69.236.65.4] (account lord@emf.net HELO [192.168.1.64]) by mail.42inc.com (CommuniGate Pro SMTP 5.0.13) with ESMTPA id 25591273; Sat, 15 Mar 2008 17:58:41 -0700 User-Agent: Thunderbird 1.5.0.5 (X11/20060808) In-Reply-To: <87ejabv7gg.fsf@stupidchicken.com> X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) 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:92711 Archived-At: Chong Yidong wrote: > I think it might not be necessary to change the default > for transient mark mode if we do this. > The problem with trying to force-fit transient mark mode for this purpose is that it tries to equivocate the traditional Emacs current mark with the beginning of a "shift-selected" region. That's a problem because the current mark in Emacs doesn't traditionally behave anything like the beginning of a "shift-selected" region. It's a force fit, at best. The addition (by transient-mark-mode) of an "activated/de-activated" flag is a crude *approximation* of what users expect, in a situation where no approximating is necessary. For example, a "right arrow" key-press should simply *forget*, more or less entirely, the marker at the start of the highlighted region. That's the default behavior if tentative mark functionality is added but it's functionality that would require yet more elisp code if transient-mark-mode were to catch up with it. What users expect, in the traditional GUI paradigm, is a kind of mark that doesn't toggle between "activated" and "deactivated" but, rather, is always active when present but which commands tend to cause to go away entirely. Let's dub that "the mistake". The mistake is adding an "active" flag instead of a separate tentative mark. It's *because* of the mistake that, for example, Stefan is now positing the existence of a formal category of "motion commands" that have to be modified to call a function that dynamically asserts that they are motion commands. That hair is not necessary if you add the simple mechanism of a tentative mark instead of trying to force fit the hairy mechanisms of transient mark mode. The "fat cursor" concept (a region, rather than a simple point) is what those other applications actually do. It's what user's expect. It's what "tentative mark" implements. It's perfectly harmonious with traditional Emacs. It simply *is* TRT. Transient-mark-mode is *similar* to TRT for many command sequences but hairier to implement, hairier to extend, and doesn't correspond to any user expectation but only to what seemed easy enough to do to its implementor. T-m-m was a *mistake* and now you guys seem to want to double down on that bad bet. -t > > >