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.bugs Subject: bug#62892: proposal to extend mark-sexp to go forward and backward on command Date: Fri, 28 Apr 2023 19:28:43 +0000 Message-ID: References: <86jzxwuedr.fsf@mail.linkov.net> 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="13510"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Ruijie Yu , Stefan Monnier , "62892@debbugs.gnu.org" <62892@debbugs.gnu.org> To: Juri Linkov , Zachary Kanfer Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Apr 28 21:29:13 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1psTmK-0003LY-K3 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 28 Apr 2023 21:29:12 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1psTmC-00050p-Ng; Fri, 28 Apr 2023 15:29:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1psTmA-00050f-7J for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2023 15:29:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1psTm9-00061n-VP for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2023 15:29:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1psTm9-0006L6-QO for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2023 15:29:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 28 Apr 2023 19:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62892 X-GNU-PR-Package: emacs Original-Received: via spool by 62892-submit@debbugs.gnu.org id=B62892.168271014124361 (code B ref 62892); Fri, 28 Apr 2023 19:29:01 +0000 Original-Received: (at 62892) by debbugs.gnu.org; 28 Apr 2023 19:29:01 +0000 Original-Received: from localhost ([127.0.0.1]:34561 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1psTm8-0006Kq-O1 for submit@debbugs.gnu.org; Fri, 28 Apr 2023 15:29:01 -0400 Original-Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:29860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1psTm3-0006Ka-P0 for 62892@debbugs.gnu.org; Fri, 28 Apr 2023 15:28:57 -0400 Original-Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33SHnDRf006141; Fri, 28 Apr 2023 19:28:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-03-30; bh=11FA3o584q7Lj6N2GbRnxFq0yesP8JZylRz567cvdng=; b=Y+M1g/SW7K+7lZ+A8a2fLyjfQ/KOvWonXuHHdvCx0jK3Z8LEazN7XFIgeyRh1Gyj6YqL vqOda27RdqZ4L4DnJsyWy7Tr/4EnEudoDp/HsKWJ1wHniIy+jiNhNTSzxfzhyUXnAnIB U/JIPG1bRm8S93ytwktAT8pNu60WVrW65Z1ZnuFkT0RHwSr95zCURYpdFCo+6QFSicst TIPKtmX/oFJ1oVgPnlvNMOeJav3zH1wA/kidsmVxuLBNtRHZTaLNJ38Ioa5M5KoRGdt1 UtY3tKanewmYkA+VP2xueF1NKJZEhZac63j4AI2osXP2Lp3jm6UyeAqgsB84JhczleWI YA== Original-Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3q476u70nq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 28 Apr 2023 19:28:54 +0000 Original-Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 33SJB3k5029856; Fri, 28 Apr 2023 19:28:45 GMT Original-Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3q461b6rd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 28 Apr 2023 19:28:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RWeKXPT/Aq+tmvd/H8kHkgC/lyQz+i+/1tBEo4PGS9vb7rctnEDT1AMiMH8nGHsfnDHV0xtGvSIr/zGF2nY3YMRvduGrPYgIYtEls7UQZYUhtyRwkE7VmzlCvODNEAUfjMLa1wBc2+Bg9jbHYtLE95VTGRXo3/yQMM+CHyuQAX3jIS1eI3CRhqWXEMJMSR61AAfDRwUfSo46c1njKRSLWMpWN3/t19dG3K8vSdWl67pKzT8jTgXmDL0tcWBI3MuMx8O3hMKC0NvTT6lKM5PlFkc0f77t7AlIqobc08ZWgV3CsGuofmpwtEmVIP6h5s4AdnJr4bC2ANMq2rUKeDtQ0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=11FA3o584q7Lj6N2GbRnxFq0yesP8JZylRz567cvdng=; b=Uy0tjlQefqvFK8MYkm3vxol1Wq40yepNIA/wYs64a1kPVkXSdolWSFZQ0Vi0QJLgDI4kMmvgg3Bhmnjth5YXfyIQbIjrZamIGTGp0zP8pIE6p6QpciSPjtGXNULEicr52kb25CQmk+5G6HWOfyGxa3n2OUMzDp7nlCbVBo/xQzjNgrDa1Wj5r9Ns3I6uU6wZERPd3hKfzD5RcHyb6GMAr8+hf6W1AharvDaYw4iSUKYTrl4uBlh7v/UMv1WS1pfPgTbe+bSVC0pmhQftQk1w5FDQB/B87yXSALZXMFxkH4mVJFCthYfHoaQYjmPdNPmY4sx1Evlbos1tAQbbuFCwuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=11FA3o584q7Lj6N2GbRnxFq0yesP8JZylRz567cvdng=; b=lv+XkZ0GWI2tdtlZoFlHnLjlhgZtHV/DKz5xwpuHwU56HGJQou/kCFw54omkGoi5tl/ZcicVguOPpnOMBh2qaAxr3QX3HxN/7ldN014T3PddZX95LlCgJ9uq91jTxO04bRlq8edHRXXm6TVt8e3hvE7xjMSxwDzDieV2i/FZMyU= Original-Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by DS7PR10MB5103.namprd10.prod.outlook.com (2603:10b6:5:3a8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.24; Fri, 28 Apr 2023 19:28:43 +0000 Original-Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::a995:2ae5:2745:24ff]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::a995:2ae5:2745:24ff%5]) with mapi id 15.20.6340.024; Fri, 28 Apr 2023 19:28:43 +0000 Thread-Topic: [External] : bug#62892: proposal to extend mark-sexp to go forward and backward on command Thread-Index: AQHZefQgxJgPgbUcZkGnUbMLr4apHa9BFKCA In-Reply-To: <86jzxwuedr.fsf@mail.linkov.net> Accept-Language: en-US Content-Language: en-US x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|DS7PR10MB5103:EE_ x-ms-office365-filtering-correlation-id: 0276858b-82e3-44fc-129b-08db481ec77c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8XoTZ/hBhlKDWrd6N5oZsOc6Fj8UDXPRbZgdDGYhN9UE2GuyE/vgVIvys9cNSfk+LWQYqkqBzrAf1T9tPn19hbBysLXcoPgEK9VGGRpmySLK3hR1/MzwrjDa9fbchz4RSu6TbELVqC7y37vsazCB10ZBPlS5oG0dCsJHEFEwF8MlzSX10ZIPSCODaj0OA1DuuN+N8Yt59Vhbb2VTqcKwgV2DRbIYGgKwRlJovlaZeRgl32tC6xzudimVbReyxr4CNUz88SUt8zgd0ROg6zXW+QXkIqKUluKdCXyYWbtfG7oLP0uDO7EReK2bRaADMqRR/rbJPcWV4gIs+FytZQHtT6E/IU+Rx8oNufXqLm8SsgqrcapCthEufjxt4CWXPyIHdVdADKj0Xd2bjOzDdiAx0R3jQjO6ZYl+q0SpzJuN9jmlWrk8s9ddCT4Dpo5r/Q23zIrBM8P9qCW/GNM1+uEeangGVPUjBAlkySSDkAqafxAa8jfQZKFE3y1PsZTR0cvf57sGhmCCwel2I95pKSv/8Mxy3MLbp9o5Oxzc2uKqLdw+MxBj9mMGrNkxwm/racs/WoBwbDklpSyT5KRM3n/p2KeKESMYn0v2MlqUUgBNyYJSAxurH7CQwTts3PwGkGDg x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(136003)(376002)(346002)(39860400002)(366004)(451199021)(86362001)(33656002)(38070700005)(2906002)(55016003)(7696005)(71200400001)(186003)(83380400001)(6506007)(26005)(9686003)(44832011)(4326008)(64756008)(66476007)(66446008)(76116006)(66946007)(478600001)(110136005)(66556008)(316002)(52536014)(5660300002)(38100700002)(41300700001)(122000001)(8676002)(54906003)(8936002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: taBQwCPczzhzt0TdjC5eWHct3niCHI1C4HMthr2WNTtJaugL+ptcOdsNqaUQiEVtbSpzOkVU0TQMMAe3+FrCznVsAzyuuzhQnkXaiCSY6sfjKdKvW2U94+THEIStbPM5T7dVbQUsQncgdiPm8cV5fYbhjcaHB+5TUBf1IG8c5z8np3uec8Vir7ZhXS3QW+YGGrTF1my4ujP2tpK5qMKL6bC6D14tfDJnbnYrbUjw0ml68Vo3nRvS3W6rQBYw/JUO008cLrltTojj0QZb+UzCNS98VmWUeHv1Mh9GVmTYwozMnZ7wsAmhKJ/em3YoDiDZar+suXKp6h2ky24vfLW0fnvOWJqnGzhIQwNMFlNi8YCtvm9m57eL2Ik4WplA+U6mWlKQCRclDBmeKJPpR91wP/H7ZxlIN0I/r53ERHweI4NVyFNQd7Dim9JsCxGoesRiLg3q63fKAwFmPpv0gpehevCg/x2SKQy7/W3NtfClkKxDVVR1G907xJGPPIcoeQGTVp5Lh8KfPbR7h24/iVNTy6yqitUrmnRzdZkoZtdF0HdaLqrLzFHnWbRgCtVzMlFyZsUiOOCQ23qNzED73XvauW18Jc9eEkoMoHRO3USeyNAAnbnyiGZVkoR//T8Y93FhQOzNcLGyiwbJZOhOC9UQJL8XSGHvVrBcPfCWdlGOqPmJJVU3TyGaXOY0QDJIWWOLVGeBvkSg3M6LjgcPml9PhVnaQBNbhH0PuuCEyJBfncUHwDBuHaJM4B8NFY IkM8PDLMA4WZkcaRIaqViAQUETvpoG9yY6Zz1xyPreAuXrJHjZnT4tdxOB4MWNdJAUBzfSsb4ZzBNwtIDnlxLLIFrHndIfctio X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: UKJwn5igpLgnPs4eB8YYzbrfMfX9YMZT5QS3frYF+6YYz2SP5gn30CgUr4IweZyXCEo+yo+6v7w30VyOPY+6lp7QksKVlNj/SUv4NlN82+JXDXuIlhC5rrIItFAgIZ2f79bf3mNg1MTvSrtpkTDFxt/tc5vWWbwORM5XYE2OitpVzpRDw929+HaDEbepXCbM75spF9jPWp9CkPUxPJ85iQfvhmkp6gWJXe+OrOM4w22lIH4EJLF1kaEzBJZpX9OzcwJPwKY/VMkSAjix3z5HoejfxOLnfW4wFB7OQDY1AjaJAHgkPg8jmFVChfFQcohr7oJHfoVnN3W2ADC4nEJBOTYbUsFKNYagHyA7ziD8cL3TFBjQ9sYXWnjV7P39bAs+kRSQCPfrsUO9388VT0+4ACDfAiJSfYd/sMjpPdHOmw8YOK15X2K7jtp0XNmK8pPolQu75vUiqeGBABJRsxsx6S0Q0jkvAE4NIkSJ68m5+M4mn/vu+ec8j7Tc4kp/JTufhh/bhKo0GBD5ovE8y8KlvxuHvAgHweNQSK+M/VUWCRCFWWiPv8VkG42034WGiacrdagOZ7bcnManK8vFg58qMXS8oGEP4aNMOSV0SOgd8zH1dbD1WxMwt+sniW6DSvrwD4PhLIzK+UQv+A5dtj27J95wfzpG1vv21XZ1hGspJSX08hZO6WhTxMETrOzAqjda0Z29nPH0XH91m/6UL9KG5t/lLEpT2F2TKFEBfmozEUOYIo JraqLFKzi9IfFN3x0uOO46R8mReTRQJ2OQJm8fVcfV1Zgis7bYFxVpGmHRpFYejkt/42q5FWO85m74geags9ypSlQsvwvwjZmm X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0276858b-82e3-44fc-129b-08db481ec77c X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2023 19:28:43.5635 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6BY5QkOZaLQUVyzKUFPBNXT8vdYPNv7D/9gMjYOQPQEpoZ+4+MTn1pYbluKrS4/ZOOdyTFNHT6c6zT7IG8Ejgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5103 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-28_06,2023-04-27_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=807 adultscore=0 malwarescore=0 mlxscore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304280159 X-Proofpoint-GUID: YiSmG3toUeKcjxTmsF49LcqLs7zvdtJ5 X-Proofpoint-ORIG-GUID: YiSmG3toUeKcjxTmsF49LcqLs7zvdtJ5 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:260788 Archived-At: > > +(defun mark--helper (move-fn number-of-things) >=20 > A nicer name would be 'mark-thing' as a reference to thingatpt.el. FWIW, I have a different take on this. Is it an "internal" function? Then its name should maybe use `--'. (But why should it be internal?) Is it a helper function? Then its name should maybe use a suffix that indicates that, such as `-helper' or `-1' (old-school Lisp, I suppose). `mark-thing' should be reserved for a function that takes a THING name as arg: `sexp', `page', etc., instead of a movement function such as `forward-sexp'. ___ FWIW, I think MOVE-FN is a fine name for the argument. My own preference, and what I use in my code, is the name FORWARD-THING-FUNCTION. ___ FWIW, in my library isearch+.el), I use the arg name THING for a thing name, not a movement or other function. E.g.: Function `isearchp-in-thing-p' is a helper function for defining specific THING-type predicates, such as `isearch(-not)-in-email-address-p'. ___ FWIW, my library `thing-cmds.el' has a command named `mark-things', which prompts for a THING type as arg: mark-things is an alias for 'select-things' in 'thing-cmds.el'. (mark-things THING &optional ARG ALLOW-EXTEND) Set point at one end of THING and set mark ARG THINGs from point. THING is a symbol that names a type of thing. Interactively, you are prompted for it. Completion is available (lax). (If THING doesn't have an associated `forward-'THING operation then do nothing.) Put mark at the same place command `forward-'THING would move point with the same prefix argument. Put point at the beginning of THING, unless the prefix argument (ARG) is negative, in which case put it at the end of THING. If `select-things' is repeated or if the mark is active (in Transient Mark mode), then it marks the next ARG THINGs, after the ones already marked. In this case the type of THING used is whatever was used the last time `select-things' was called - you are not prompted for it. This region extension reusing the last type of THING happens even if the active region is empty. This means that you can, for instance, just use `C-SPC' to activate an empty region and then use `select-things' to select more THINGS of the last kind selected. If there is no THING at point, and `thgcmd-use-nearest-thing-flag' is non-nil, then select a THING near point.