From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: Sv: Emacs Survey: Toolbars Date: Thu, 24 Dec 2020 09:58:57 -0800 (PST) Message-ID: <8f418d88-d1b2-4c0d-95b8-a1d7a2e66791@default> References: <<87o8iv3ac3.fsf@gnus.org>> <<877dpjp30g.fsf@ucl.ac.uk>> <<87zh2fnmwq.fsf@gnus.org>> <<87o8ivumn5.fsf@telefonica.net>> <<87v9d3nkxk.fsf@gnus.org>> <> <> <> <> <> <> <<83k0t9rfj5.fsf@gnu.org>> <> <> <, > <<83tuscplcg.fsf@gnu.org>> <> <<8335zvp9ko.fsf@gnu.org>> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11691"; mail-complaints-to="usenet@ciao.gmane.io" Cc: ghe@sdf.org, rms@gnu.org, emacs-devel@gnu.org To: Eli Zaretskii , arthur miller Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Dec 24 19:02:06 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ksUw9-0002wT-Af for ged-emacs-devel@m.gmane-mx.org; Thu, 24 Dec 2020 19:02:05 +0100 Original-Received: from localhost ([::1]:59942 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ksUw8-0001Gd-Be for ged-emacs-devel@m.gmane-mx.org; Thu, 24 Dec 2020 13:02:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52058) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ksUvF-0000kj-Vx for emacs-devel@gnu.org; Thu, 24 Dec 2020 13:01:10 -0500 Original-Received: from aserp2120.oracle.com ([141.146.126.78]:36718) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ksUvC-0004Xp-GH; Thu, 24 Dec 2020 13:01:09 -0500 Original-Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0BOHsjXq091527; Thu, 24 Dec 2020 18:01:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=yxGVLF/QOJJcx16fUlfECDPgQtqz5ThPnh17Adq+AyQ=; b=BXKCJBY5b7DNKPqLV+vU4cQhBURD0vJhwGTtZvtJ7nV75Pq/cc/UX0XCY1L3Di/gem0H yV0UNCnu/kF7/RV/PEn8JqkQ3xHaJMzUiBSYxRzYfR4fhawhsM/7+wosNyS0sxlKvaFp QboHnucwmjOPKJKZ6qgDZiONlbTXi7IOVUmu9PCOHl6Nb8P/xFnrzN8qmwMo/r3n1b2o 9rhj+5hVz9nzcqZ9NhDrzrb6Fjs2962O6jOCumHz/pZwFN17Jq2bKQLKe1FDYcAq76Qk RmcKVduJ8dJRZ2QahmHTcP523XGp6AyCybseR1dolS3DeUXWXDBsTw+MS4h/w0VqNMC+ BQ== Original-Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 35k0cwc9vs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 24 Dec 2020 18:01:03 +0000 Original-Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0BOHtkx8179212; Thu, 24 Dec 2020 17:59:03 GMT Original-Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3030.oracle.com with ESMTP id 35k0eb8epd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Dec 2020 17:59:03 +0000 Original-Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 0BOHwwnO029729; Thu, 24 Dec 2020 17:59:00 GMT In-Reply-To: <<8335zvp9ko.fsf@gnu.org>> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.5095.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9845 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012240113 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9845 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 mlxlogscore=999 mlxscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 phishscore=0 spamscore=0 clxscore=1015 malwarescore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012240113 Received-SPF: pass client-ip=141.146.126.78; envelope-from=drew.adams@oracle.com; helo=aserp2120.oracle.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:261699 Archived-At: > Those things we "just" have to do, must be done, otherwise we cannot > claim to be anywhere near a word processor, because it is unimaginable > in a word processor to apply faces via Edit->Text Properties, let > alone via lower-level commands. >=20 > And the next thing to do is the ability to save all that face > information to a disk file, so that the next time you visit the file > you see the same faces. Enriched mode does that, but it needs more > love. >=20 > Next after that is pixel-level indentation and filling/justification, > so that we could use variable-pitch fonts. >=20 > Next are the printing facilities, where I hope we will once and for > all solve the problem of printing non-ASCII, non-Latin-1 characters. >=20 > When we have done all that, we will have a significant portion of a > word processor, IMO. I concur. That's a fair amount of basic stuff to provide, as stepping stones. And each bit of it would be useful in its own right and for other purposes as well. ___ Wrt "it is unimaginable in a word processor to apply faces via Edit->Text Properties", FWIW: Some of my code can help with on-demand, ad hoc highlighting. And yes, it's on Edit > Text Properties. But it could be put on tool-bar buttons or whatever. And of course other implementations of such basic features are possible, and would no doubt be chosen to provide performance as the basis of low-level, built-in word-processing. ___ Examples: Apply a color or face by dragging the mouse like a highlighter pen: 1. Edit > Text Properties > Highlight > Highlighter Pen 2. Drag mouse to highlight text dragged over. Apply a color or face to a selection (region): 1. Select text. 2. Right-click `mouse-3' twice (slower than a double-click). 3. Choose Highlight > Highlight in the popup menu. Apply a color or face to a symbol at point: 1. Right-click `mouse-3' twice (slower than a double-click). 2. Choose Thing At Pointer > Highlight Symbol in the popup menu. Do the same, but using hi-lock (highlight all occurrences of the symbol): 1. Same. 2. Choose Thing At Pointer > Hi-Lock Symbol in the popup menu. Choose a color or face to use for all such highlighting operations (and others): 1. Edit > Text Properties > Highlight > Choose Highlighting Face 2. Choose a color or a face (for background) using completion. Critical to choosing a color or face is the ability to see a sample associated with its name (the completion candidate). There are several pieces that combine to provide such behavior. Of course things could be done (implemented or organized) differently. I'm just pointing out some pieces as food for thought. 1. For showing samples along with color and face name completion candidates, i.e., WYSIWYG, I use Icicles. (Icicles lets you match RGB hex codes as well as color names.) I imagine that some other completion frameworks offer something similar, or could do so. Screenshots: https://www.emacswiki.org/emacs/Icicles_-_Screenshots#icicle-read-color (I also have library `palette.el', which gives you a complete color picker, and library `eyedropper.el', which just picks the foreground or background color at cursor or pointer. Some of the display quality of `palette.el' has been degraded by changes to Emacs, and I haven't kept up with fixing that, but it still works.) https://www.emacswiki.org/emacs/ColorPalette https://www.emacswiki.org/emacs/download/eyedropper.el 2. For highlighting by dragging the mouse, and for choosing a color/face for that, I use library `highlight.el'. https://www.emacswiki.org/emacs/HighlightLibrary 3. For putting that on a Highlight menu under Edit > Text Properties I use `facemenu+.el'. https://www.emacswiki.org/emacs/FaceMenuPlus 4. For highlighting on a `mouse-3' popup menu I use library `mouse3.el'. https://www.emacswiki.org/emacs/Mouse3