Received: (at 60587) by debbugs.gnu.org; 23 Jan 2023 12:14:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 23 07:14:37 2023 Received: from localhost ([127.0.0.1]:53511 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJvie-0002VP-V2 for submit <at> debbugs.gnu.org; Mon, 23 Jan 2023 07:14:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pJvic-0002V8-I7 for 60587 <at> debbugs.gnu.org; Mon, 23 Jan 2023 07:14:35 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pJviW-0003we-Jc; Mon, 23 Jan 2023 07:14:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=0OPGhGKYISgEE86WwMVzCVSniwYAkOzoFynq6RWFLq8=; b=WMcn3Bya4vKS BCOuom15iWjqjX8DWJE5lLkLPOfwxHJpkQPxom4i6xENwei6RN8PGAJeCQbUSk9wCvcjaRpdBGrvA QYE1lcojEa3qDLej0cGR4pq56gEzgP51LE9//fhVMovu3J0fyC0d/Ypmw1VlduoHYF6EqM3i0/nnA N9hQGcaqheW+iCKQh3c8SkQTZAeRlG1J62gThGuP7v/7rO86cBs+Jv+1peFcXwr60Vofgw8bZ/S7u 39tu0SUMl5ASobHilwlyJedGMoro2OQKJXUkNC5gd5E99Hg5NIDZ0kD8ApqqZSHuyUHRQXtlLtLlG raYiqjBFhnp5d5PQGUqm3g==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pJviW-0001nr-00; Mon, 23 Jan 2023 07:14:28 -0500 Date: Mon, 23 Jan 2023 14:14:35 +0200 Message-Id: <835ycxjvmc.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Drew Adams <drew.adams@HIDDEN> In-Reply-To: <SJ0PR10MB548816D2857B4BB56E16DDC0F3CB9@HIDDEN> (message from Drew Adams on Sun, 22 Jan 2023 22:09:28 +0000) Subject: Re: [External] : bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> <831qnomh6l.fsf@HIDDEN> <86lelvvdj1.fsf@HIDDEN> <834jsjkt16.fsf@HIDDEN> <SJ0PR10MB548816D2857B4BB56E16DDC0F3CB9@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: dieter@HIDDEN, 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Drew Adams <drew.adams@HIDDEN> > CC: "60587 <at> debbugs.gnu.org" <60587 <at> debbugs.gnu.org>, > "monnier@HIDDEN" <monnier@HIDDEN> > Date: Sun, 22 Jan 2023 22:09:28 +0000 > > > > Shouldn't I address the concern of Drew, as well? That a "button" is a > > > certain technical implementation of linking which might not be known by > ^^^^^^^^^^^^^^^^^^^^^^ > > > the reader. Maybe a term like "link button" or "link-button" conveys - > > > at the same time - the well known concept and correct technique, > > > different from an Info link (or "cross reference")? > > > > I think "button" is problematic, > > Did you perhaps mean _not_ problematic? Yes, I don't think "button" is problematic. > Drew thinks we should use the same standard term we > use everywhere - including in Info: for users it's a > link, not a button. We use "buttons" as well as "hyperlinks". See, e.g., the node "Mouse References" in the user manual, which basically describes the facility Dieter intends to use. > > If the user types "M-x describe-text-properties RET", > > will he/she see that there's a button at point? > > Dunno what Dieter's code shows for that. But this is > what doing that on an xref link in Info shows: > > There are text properties here: > font-lock-face info-xref > fontified t > help-echo [Show] > mouse-face highlight > > I wouldn't say that a user is told there's a button > there. I meant the hyperlinks in the *Help* buffer.
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 22 Jan 2023 22:09:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 22 17:09:33 2023 Received: from localhost ([127.0.0.1]:52755 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJiWr-0002Y4-GC for submit <at> debbugs.gnu.org; Sun, 22 Jan 2023 17:09:33 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:30024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <drew.adams@HIDDEN>) id 1pJiWp-0002Xu-NE for 60587 <at> debbugs.gnu.org; Sun, 22 Jan 2023 17:09:32 -0500 Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30MLE8s7007842; Sun, 22 Jan 2023 22:09:31 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-2022-7-12; bh=vORBVSeuVov43q+I2dD4xEq4MrcvEw92EKMFobWZMJU=; b=qYb7l4XQ8QM7OUzVfdb2k2oMOPADKJricAxz0b90IqVZRCASHFKjJD6csh8m+utVMyH1 r6qQO6IPWVEvlOd8K3jOWCiixJceu6zCs0vPU5PdUAuTjef0C+jXplLNQOgmBTF5H+Xx 7ty4MbKlF4KcrELslugcLeMbKjzMij27VI1kJwJJYd27kWFypV1Orz2LLJNgl69PKkel e1zIxF9kUYY9QiqkIYUICQ8sMHYUB7c+dcaqZNHORkqQeeHH9rBLvk83P+fIN5KCdsyI 6+OiIy2QFJbuh1o+W7jQG+pxn8cCwrSy27OsXUx5sIfrxWbtcMyjEWrIoG3cmFdVbAU+ DQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n883c1ns9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 22 Jan 2023 22:09:31 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30MLomoF013835; Sun, 22 Jan 2023 22:09:30 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2175.outbound.protection.outlook.com [104.47.59.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n86g93bxm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 22 Jan 2023 22:09:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RTGIL90nxKG6zoa64Yad9BkjM6CxBfBxz7Wo1NpaVIddIBh3lE8FLdK8Om0ddvSBEWip0cmEhDk8Gd0mTJGpqKpMCDjTdU9GHmtP78NuDzgszntbTA2BdeMTb1Gx4HX8LNLhi1vNtnVw5EsSQtF8HVxU1B6aMkJfnaFCI15n9DSHxNs0LdVDrbGKn5D/YYvIYhrcgfRf8Fro2Rxd6bEGb2n9Cn4nk7WAQZ/cfxPorU937x7wLrSYJAM+O8D0DH0kHT4Tn0VUmV2pTG1qz3+zEC7Vz33jAg135koi1ylBSF9pCjhcAxoXjnyuZF5TBwiNNe+JP0JHYBR4xFzRPwndng== 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=vORBVSeuVov43q+I2dD4xEq4MrcvEw92EKMFobWZMJU=; b=fETwSCoOZc8K0cLiTyzlso989OZRUxgLlZBS2f1fTfihI0ynDAOJ2XQGYuqog/QnbiL01rDqh9wKao1nZZgNPVIXXNpC2J5kzOxrt8ta0yu7kVHs6ngiTaN7XWn7CCZZYtVBjDHnoGtp/4j5IyH3bYlzMWMPQ2+doFRkCo0++OAnzfzboclODxTOf3jCIUKikSOTxZouMPYih8GTJiIGedevQkjdg42eIJEK1FnMvTdcSQSfORJOYL547nbo4RLfss/noAr7RK/OKU6Uwc5KGM7BBdMF2V/KuQh7bl1tYVmoPONqvS98rAagVtZbQT0PP4GUyyHEe30cIwuJ3rkURg== 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=vORBVSeuVov43q+I2dD4xEq4MrcvEw92EKMFobWZMJU=; b=lBg0Xrl9jkR/nVTWjDyLbWA6f2wNHIp31XmNg0AIZnsF6TNsGW8fAbzkR9xB3yWn2sXQRrW9/lc+XYwdvYiZ5uJHGfR66e7xwC2N9SX5ULClVD66D5Mw/3B+aRuBh9k7EkilAHTfKy6vWUM36nP2vPkfU63tC5UQ7JeBS1kGRlw= Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by PH0PR10MB4470.namprd10.prod.outlook.com (2603:10b6:510:41::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.16; Sun, 22 Jan 2023 22:09:28 +0000 Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::7c3c:e53d:5276:ef29]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::7c3c:e53d:5276:ef29%7]) with mapi id 15.20.6043.014; Sun, 22 Jan 2023 22:09:28 +0000 From: Drew Adams <drew.adams@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, "H. Dieter Wilhelm" <dieter@HIDDEN> Subject: RE: [External] : bug#60587: Patch for adding links to symbols' help documentation Thread-Topic: [External] : bug#60587: Patch for adding links to symbols' help documentation Thread-Index: AQHZLicEoXNYvVke2U2LVe2hSCnHWa6q/QbQ Date: Sun, 22 Jan 2023 22:09:28 +0000 Message-ID: <SJ0PR10MB548816D2857B4BB56E16DDC0F3CB9@HIDDEN> References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> <831qnomh6l.fsf@HIDDEN> <86lelvvdj1.fsf@HIDDEN> <834jsjkt16.fsf@HIDDEN> In-Reply-To: <834jsjkt16.fsf@HIDDEN> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|PH0PR10MB4470:EE_ x-ms-office365-filtering-correlation-id: cede5881-7d28-43d8-bf5c-08dafcc5546d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wWi29wD2AWEy0HJenxrm6RUF1rXo9Ufi9YfrMJ2ZkZh79CZPJsceVXrqVOSKsc2Xc8urg6ZR7f7jMOKCfSyqPBP9ZaFYYaYAVJNb8e8eg7SwbG4S+AoIVH36h7kDCy3CykAQFu1y60cOAFXNBGyHXxQGWFad3KBeT15gRXBJTIVyZ8EacEdlLqYFrPLClj3PpMwx1lxUgWeVfW6De42cDUOG3RYgr9f4tjBGHVCN0HVmGBi2IDGPfT19etAJkz3F6TXsaLNgsa2BowuH/Anpj2+UprD7KmrGOd6H4K522tD+akLRCwIMgZY7Bc/qHt08/Um//UumlVlI2gVjYlUtxM7orwJHrp1Qp4d8emaixMHHoWhdayZx3vFveTvfVsx8q6tYeG+pz4OcmIHevX2ojzYRNhj87wcMTAVSae/8YkPsEsVEG/cYuptWZokdzkE16Urnqn77Zi134lARZsRd8Qk4PNiR4ttqvBTpzRWSnZ6LHhpqKQDrg+o9BM0fX0EniYDoK0hXSn5413+yzhIiz4GSiCT4cDsJsfxhx843jPLNCCs4mDe5YyT12r04zbkud1VQaGMCXNDfju+UnUXL2MfTSMXRgBlK47TzysGuvmSvXVgMVD7x1Zq+xt+ixWWJWCphlIVul+6yxm64WehUbwwk7M8yHslIAU2fHGEcOZ/kYCfAfRX1TppaQs+iwntY1PjYhl9rp0N8VB3bMvKlWQ== 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:(13230022)(396003)(39860400002)(136003)(346002)(366004)(376002)(451199015)(38070700005)(55016003)(33656002)(86362001)(316002)(110136005)(54906003)(76116006)(66556008)(66476007)(66446008)(64756008)(26005)(186003)(9686003)(478600001)(6506007)(71200400001)(7696005)(66946007)(122000001)(38100700002)(83380400001)(8936002)(52536014)(41300700001)(2906002)(8676002)(4326008)(5660300002)(44832011); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?/BlXfpHToL9f0NTwzsNjU4L3oPn1OjmvzD+kDct3aCi/QAbXQhhIGe8gsxWe?= =?us-ascii?Q?mInh9ipso4JtNGTngf19WLq8m9xc3Yij7paKNOAfHkOAKgPR1QQcGzbYUgMu?= =?us-ascii?Q?Piv7t/PHcW6qf7bZZmcMs4S29tWCcq9xslf9Jt2/N121ij6sdNcfLwGv04K2?= =?us-ascii?Q?eE2iXv9jphlOUnprsp5xX/n5h3FMbuhbAdNXapwuns56Yxvy/utolR04l9S0?= =?us-ascii?Q?SgPOAph2rchJHfUQJ3VoZ86A94uTLejo7j/jiPiQH+Dp1KbKEE4MRqHmqObY?= =?us-ascii?Q?mQ8oAIfjb3Y9CLIK0wGoulaXrDdjvtAmHX4jsC0nSOTjp8ePLiAEXh60KGOu?= =?us-ascii?Q?5fC4EjMndnOsBLg13ZAPQwAgmIehbDCG2KuEkCJtkjLkyXar+ULk0Xs7+BTv?= =?us-ascii?Q?c9u/QXYVFUPyJUvrEJ4mTSiYHeiv+zuWSevjz1r13twnYgEEZQVu41cAw8t6?= =?us-ascii?Q?FxRtY7R5fXlG53+GfXthNIJzp9ZblYv1lWV+8QEGss46WAEGihsT3kR2bfCK?= =?us-ascii?Q?zHkgcKMjBRHZj9XMcwRnE5JDkhxzTAUsgqmJrh2UY5s5D38syj0QH0ZpE3F5?= =?us-ascii?Q?YVh6vjC5oJAQyoczmSQW8fVRNwt3JVIU3J2LqInpaZFzfxsU3Cr4mPDyUD69?= =?us-ascii?Q?fUc2JovUZPCyUS6n+9j6cbmW6KD+E+54WuHOQVxbUCK4ypeXWknDJ7XxK8Kf?= =?us-ascii?Q?L1Btk4zanBzPlzOXRqSyIoA4L98EH0p735a7xHZt7y1cCLSC97C4Rp1vxOhn?= =?us-ascii?Q?sMo5hzojPPj3KwvrL2rve+Jq71xn214uPXP/uczIklrPXHAm2qVTcerLprM9?= =?us-ascii?Q?HiABCxFkM1I34zNVMrPvT0kruNHKGlisbKM23UOCslgCOhXd97aOmKLdUMSK?= =?us-ascii?Q?VRDEhMbQ/6x4WWgRjj2A2XZHoJWOgodVrKSQAStxWoYCPpoYxZr3+qES7Pyh?= =?us-ascii?Q?RU7MYghSDw7OcfG00MMpm4qXqM9cS7myeDCyl1XeVxyb7VcKSs3VLAuI5tSr?= =?us-ascii?Q?XERiYwCNX1ZuxafpUAmrK9Oti/aiS3oQhG04Yqp94GW6S+a7gplTJNz8Ryf6?= =?us-ascii?Q?BlzC16YZDqfz+8bI/knlfVuEd3MA3VqOHNoXB19H/VhByMR4J7j4xy6tAPJk?= =?us-ascii?Q?IWgTOm+sq3kEsfEzX4HmRPx5a439vLa1Y1iPBs7/h4R/WjEGwCIOAWKpmiKG?= =?us-ascii?Q?Z2q2Fc+ZcVMLJ6N7R++PIBMFnMPA8xtts+BVy2J8L/bMOWx8B71LfIF2b2vG?= =?us-ascii?Q?mLBO4ElbRaSmipgkk/4zrCgeYKObSkds4N0GznNQIUuovUixNzOOqZKAP2qc?= =?us-ascii?Q?AoxaPc0pmUX8IiE5vrBvuYcpJnxZq/ByJ6ZpY5pr9naKluw2z+UTxDWhcLuk?= =?us-ascii?Q?A2e63JP0SUAh91bU8Vn4WMBwpYmVoiZ+bZVEUp0/Mq4AxH/BjKHg73Nq0noo?= =?us-ascii?Q?7u6NtSCewJw43T4OPOpFJDHjQQGyM9vjSlHat3AsZQmdW9LRkOBzhbMwDIJ1?= =?us-ascii?Q?mxp491oyng3bhTNmclwuI0s6uUQzkU66ftcyjKLiYMWYdCZElTIJp5N6A4OC?= =?us-ascii?Q?tHGqcF8V83h6AK2hp0ey+J769G/S5AW/L2U9zpNM?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Ofk26nqnInggHqr+mpiDJ6fCkP75oqsfGyyHjwAkXQ4FpFVwx7OrSx9SCD3p+QLQU+Fh1TG4pSMhHpeR8YeaHC+0R/Ng4CjDazzPeS0wfuevq4RxT0kkPhA3tAjIva2mEYQepuWFraxBZgCGHtGVc43L+EOcb4xyrdKnreJhvaBzGM0bjwIXdR2p2r1CReIs5OhkQjSXl3WWWyhTguOmqFTnKM7h5QmROi9Ea+FKGhxQCJkQKIIzL8IxNFyIpVXK3U4wunLsVg5rRiCbeLwAwsjftHYhBIiGjMUrqht3mLtOHxkekXXiMObmpcYJ0YukULbrvV0Rua25BPFAxNn7fXwSe4W+K5rTkbs8M6BWNyEvL3yPXp64p3C4K33unmA+HpHGbWxrJef3QU9spLcliohSZVSCpP+bfSzbiAXPS7P2HRFM8G0OaEBvyjOD4+I1TkQYs+xxTUoc9cJ1if2CQyDAYUT86gNbZDfBrUFQ+s+A9fF6i/2VfldTic3kfZrye8DK8FOibLt3hnBEcv4FvSNcgy5NRtUZDx7CVPuQfuU+fh0RFuh9KmovNp8e84FGgSc0cVVKzZe/NibzooKQyLEUONOiJfHWX7bh2aHeWQi+ScSxd7dleCDwSWAXNxuoIT3FxuG9E2BG6cnjmeAVaHv58iuqskvzA1bgXQIvufwGNzy05vC0WxTIMw5vr3V+8Tk0YQdfuWqoBNYJQdWxaRbYrFOxQG7tqAXbRnNX+OKtyP80FB3F9Xgs6YTAqkmUQhcI46ENSETjGIjFDbEmv4ROEuVhueTMCd+kgu/5+BxNnnLvv3ZAf9P8XrGeemqkB51GqNX1TV5QdOQNjCRbfSOwaNICePInpqvaGkbrhmIsESUS3hVPzjZSiEmqRltj 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: cede5881-7d28-43d8-bf5c-08dafcc5546d X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2023 22:09:28.0957 (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: EWzd8b+uGVVzl/5uhTsLOPuBe2eo6JJ5lm0lYD2cf7+pgRKwB2VcyEyRgLdlSF+j6sRdSyG8quXE+90dWg7B3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4470 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-22_18,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 mlxlogscore=963 adultscore=0 mlxscore=0 suspectscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301220217 X-Proofpoint-ORIG-GUID: _NTbHI8PuzGVhEP0mQ2mz-INlwC-eyeX X-Proofpoint-GUID: _NTbHI8PuzGVhEP0mQ2mz-INlwC-eyeX X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 60587 Cc: "60587 <at> debbugs.gnu.org" <60587 <at> debbugs.gnu.org>, "monnier@HIDDEN" <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > > Shouldn't I address the concern of Drew, as well? That a "button" is a > > certain technical implementation of linking which might not be known by ^^^^^^^^^^^^^^^^^^^^^^ > > the reader. Maybe a term like "link button" or "link-button" conveys - > > at the same time - the well known concept and correct technique, > > different from an Info link (or "cross reference")? >=20 > I think "button" is problematic,=20 Did you perhaps mean _not_ problematic? I said it's problematic, and you don't seem to agree with me. Or maybe you meant only "button" in "link button". In that case, I agree with you. We should just say "link". > and have no idea why Drew thinks we > should use another term here. Another term than "button"? Or "link-button"? Drew thinks we should use the same standard term we use everywhere - including in Info: for users it's a link, not a button. It may be implemented in Elisp by something Elisp calls a "button" (not a great name, but not important here) - but that's now what Emacs calls it in communicating with users. In particular, it's not how the Info docs refer to it. For users it's a link. > The code does insert buttons, right? The code implements links by inserting what Elisp calls "buttons", yes. Is how the code implements links what's important here? > If the user types "M-x describe-text-properties RET", > will he/she see that there's a button at point? Dunno what Dieter's code shows for that. But this is what doing that on an xref link in Info shows: There are text properties here: font-lock-face info-xref fontified t help-echo [Show] mouse-face highlight I wouldn't say that a user is told there's a button there.
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 22 Jan 2023 13:00:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 22 08:00:18 2023 Received: from localhost ([127.0.0.1]:50863 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJZxJ-0007Lr-KJ for submit <at> debbugs.gnu.org; Sun, 22 Jan 2023 08:00:17 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:44187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pJZxH-0007LW-La for 60587 <at> debbugs.gnu.org; Sun, 22 Jan 2023 08:00:16 -0500 Received: from ping ([109.250.147.186]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mofx1-1ovCQq3q49-00p2yg; Sun, 22 Jan 2023 14:00:02 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <jwv3584dbrc.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message of "Fri, 20 Jan 2023 18:32:32 -0500") References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> <jwv3584dbrc.fsf-monnier+emacs@HIDDEN> Date: Sun, 22 Jan 2023 14:00:00 +0100 Message-ID: <861qnmvi5r.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:taBxOSZCZPE717FBK5RYcYVjS5j3mr5qx/bG+4NiqIs5alIsOXt 7GsPYMiZCYp7Y2GYsd1aBSAGrLYlCo3lQLFw0DGEyBC4N9pf4NZHR9nBuHLpLqvdEK+lRcO zTp4lbIhK8EC5cpMsCv6gfko77Wb87+LDVqBcmU9mTQMI10fc9IBozgRfz1h3257XbnJlYH QGVskSlM1raF44TZkhYgA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:4FGfnt85yAk=;UxEW956pZgIW2Ja/h4x9i5uHtot Ye/CsLpBPV7uXwEfxOQ5WTu4TBIB7M+wp7CpVvb/mnZErLvMkx1232RwaZsOwUcRr50JgYPxK QspUZPGh+uTIK8gzHnggP4F9LhPDeidu+y1ZoB6tAFkMeE+37uca2YbkM5QQl+HEHgxRMrl/y +L22jcKd9LKBFqTSatuPvpVc8dYP0kNKH93b4JCihJGf6+EBIo2XyfJwPFhnJt1Szq216Wtg+ bRFc7NzXOx97TG53qxVcXkfRxBeDrJyoR+Ny0kWdmYNVWdiEJ+HgYNW4lOrz3JGb8aUZNh58M zwd9BrVFvEkREVyGR2vveWqh/sluOMhyVlmDXAo/KqWd+TuUNb5siEKgbQ7RLfOJRbAdz08Zk 47Cak1160V+DiE+iqafFMIj6Tt8T7d7oVpnzRy1tcNs7/YBRD/LYedZy0kB9f9feQyyeijdbA dpQPZKbqXNPQz9LAxD27K+VMFaBznV3F+mYT763UQ+KAbKap+3IZB3wdBUCrf0k3FiFdQQmJt w8yVGkMggS3egM1lhxIgXowF56BBsYTcpa0BAszN5iBw7GeHC8XyhqekQ+O8M63xtfVYUEosb t/Gq7ZfmVNc+2aV484ahEW15I7GlNUm5S7XfiOUjJr+2OhJ5cLKs4EcWyZedP/VezqHenYQ2Q HjjzPPTLrr9/OqNIifzKjVHKaDsI4gc+K/dYqSdy3g== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: Eli Zaretskii <eliz@HIDDEN>, 60587 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >> Unfortunately I also need to investigate the code anew. Yesterday I >> realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't >> working any longer for Info references. (E.g. the `Tab' keybinding is >> switched from `Info-next-reference' to `forward-button'..) Above information is, in fact, true but too narrow, since the "switching" of keybindings is not occurring in general but only happening when point sits directly on a button. In regular Info text either links, buttons and Info references, can still be reached by Tab (or S-Tab). > My crystal ball suggests that some code somewhere binds > `forward-button` to the "tab" event rather than to the "TAB" event. > "tab" should usually stay unbound (it is then remapped to "TAB" by > `function-key-map`). Poked around in button.el, info.el and help.el but couldn't find any "tab" event binding (only "TAB"). But I think, I found the reason why it appears since Emacs-29, when commenting out the following line in lisp/button.el the keybindings are working as before Emacs-29: (defvar-keymap button-buffer-map :doc "Keymap useful for buffers containing buttons. Mode-specific keymaps may want to use this as their parent keymap." "TAB" #'forward-button "ESC TAB" #'backward-button "<backtab>" #'backward-button) (defvar-keymap button-map :doc "Keymap used by buttons." -->;; :parent button-buffer-map "RET" #'push-button "<mouse-2>" #'push-button "<follow-link>" 'mouse-face ;; FIXME: You'd think that for keymaps coming from text-properties on the ;; mode-line or header-line, the `mode-line' or `header-line' prefix ;; shouldn't be necessary! "<mode-line> <mouse-2>" #'push-button "<header-line> <mouse-2>" #'push-button) It seems to me that this is not a regression but some additional functionality of Emacs. I've yet to figure out how to deal with the enhanced keymap of buttons.. -- Thank you for your interest Dieter Best wishes H. Dieter Wilhelm Zwingenberg, Germany
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 22 Jan 2023 06:00:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 22 01:00:48 2023 Received: from localhost ([127.0.0.1]:50444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJTPM-0008M8-Ho for submit <at> debbugs.gnu.org; Sun, 22 Jan 2023 01:00:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54332) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pJTPL-0008Lv-PY for 60587 <at> debbugs.gnu.org; Sun, 22 Jan 2023 01:00:48 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pJTPF-0004O7-7H; Sun, 22 Jan 2023 01:00:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=01aqTeiDDa0pCB6Z9aKYR/FEIfh5pSJLK1oWX+St0NQ=; b=FXOPUZHjkCWw h4HrPeBJ3nH6D+EXR6YvMldrwAqW+KQ/k8w4rY0W5GcTm5RM/hjX0C4Yiz3ZIK3cFx7wILh9So95n u3iC3776LxuGpQ8HGJX8xifboU64BOeUWokA5s2xupxZplpGmpDIiB2EzDOyF/cIXeoIznIO961Ow eTVqKYzoom6Tok4C6A5JKnDe9YCLVIHOKh28n8o8iz4fi/aWo1DnTpImQDyu8v/xa1+fMTXiih/qH nO/yxleIz5mVScGiy5nDSbnQ2BnARctE2eURctjaAIf82AM+sOUiGCiOWC8cI6jK0jn3KUazC77LQ sRw0UAji9Foo5OMIBEyfTA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pJTP5-0003tX-O4; Sun, 22 Jan 2023 01:00:35 -0500 Date: Sun, 22 Jan 2023 08:00:37 +0200 Message-Id: <834jsjkt16.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN> In-Reply-To: <86lelvvdj1.fsf@HIDDEN> (dieter@HIDDEN) Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> <831qnomh6l.fsf@HIDDEN> <86lelvvdj1.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "H. Dieter Wilhelm" <dieter@HIDDEN> > Cc: monnier@HIDDEN, 60587 <at> debbugs.gnu.org > Date: Sat, 21 Jan 2023 21:27:46 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> Unfortunately I also need to investigate the code anew. Yesterday I > >> realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't > >> working any longer for Info references. (E.g. the `Tab' keybinding is > >> switched from `Info-next-reference' to `forward-button'..) > > > > So I guess you will be submitting a new patch soon? > > Yes, I hope with the help of Stefan's crystal .., ahem promising hint, > soon. TIA > Shouldn't I address the concern of Drew, as well? That a "button" is a > certain technical implementation of linking which might not be known by > the reader. Maybe a term like "link button" or "link-button" conveys - > at the same time - the well known concept and correct technique, > different from an Info link (or "cross reference")? I think "button" is problematic, and have no idea why Drew thinks we should use another term here. The code does insert buttons, right? If the user types "M-x describe-text-properties RET", will he/she see that there's a button at point?
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 21 Jan 2023 20:27:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 21 15:27:59 2023 Received: from localhost ([127.0.0.1]:49863 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJKT1-0006Ql-5Y for submit <at> debbugs.gnu.org; Sat, 21 Jan 2023 15:27:59 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:50957) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pJKSz-0006QZ-DG for 60587 <at> debbugs.gnu.org; Sat, 21 Jan 2023 15:27:58 -0500 Received: from ping ([109.250.147.186]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N1xZX-1oZVBS3vTN-012EIO; Sat, 21 Jan 2023 21:27:48 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <831qnomh6l.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 21 Jan 2023 10:21:22 +0200") References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> <831qnomh6l.fsf@HIDDEN> Date: Sat, 21 Jan 2023 21:27:46 +0100 Message-ID: <86lelvvdj1.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:3zs1pA3xxWJV/PjwKseMDuNchMPWkcdY5eB/MQjPY//hCp4zYRZ S8xgIZyqptDxaxo4VgW4IE3kakkhyylTh30JoLZNvMzsq/spULmZXREAoK/DnlALWe+LwpC kOAEkzqLO0uDd8h1oC6h7bcxiZ/zWnDWcH5uq1WyPFTh6YE+954F7/cJ6jCBwd3WN+2eYR9 AZHlNSDarn2xWaHaGyjNA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:51IddVEd0MQ=;opBm2fEhEZ1iUqzRisEt/NL9wCf Sw/1K5/W+pfJBkiUfRx/MEjdkcGj7Cg9Jtrj0dTjPfJ5L+VUF7eKfpWNjyXAXqSQIttyjP3cL dDUXI7MNqKNQs1ISBR9YWlTMuRbycPlxqhTFPTFLn3XogRRnMyGGwVtj7Me77ISegYn0eFtue K/rN986bwwrPANgV20cFaNlLM77iGIoiL5KwGOpnnsK2GK6ne4gFKUXiX9KA8AcUmNTbT6aWI Hx9NCtpiD+s6P6nLNNNm8w47/8dkxJ8UoVE3P+gndRFcU7As9gXWCe6qMHU5dzbo5AUYMq8kz MRM9S/SurGsB7iOPw52dBBYb5gq60oj06HE3Ww09GyvLOfvLYIkCLjtXMkE3nxLX6e2mpxvXE /Nz9FwFI54b5DWEDKHtPc/WZnGCnujAeV1AH6cI0pJm3CEXffZkVRxOIIoxnUqJIylM/yQ+w+ 1UEzLyu6Pdsbv82pEXQFx5aefrCoSSAf4t7MZLDqORTu/tbV7+oMkIPYWjRwf2C4iqQcBp/cs cEGTrhlfuSqrcM7TXK2dB8u0pnAirJxBfV//26cdKY4w0oU+2FWI52cgBWb6SeF+vvHZuMruX mWjwj1KyJZOD/QSxOLWln7Pp6UD0iugpaywRCO7NGdsmKj7BAWmYBADBnx9yg+iksElizYn38 PIo9M/K3XqcrBl48YajU8I/wuKUzkOBzv5tIOHfXYw== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Unfortunately I also need to investigate the code anew. Yesterday I >> realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't >> working any longer for Info references. (E.g. the `Tab' keybinding is >> switched from `Info-next-reference' to `forward-button'..) > > So I guess you will be submitting a new patch soon? Yes, I hope with the help of Stefan's crystal .., ahem promising hint, soon. >> --- a/doc/emacs/help.texi >> +++ b/doc/emacs/help.texi >> ... > I think the first sentence should be rewritten as describing a > separate feature, not "the same as" something else. Just say that > symbols are converted into buttons that lead to their doc strings. That's clearer, I'll do that. Shouldn't I address the concern of Drew, as well? That a "button" is a certain technical implementation of linking which might not be known by the reader. Maybe a term like "link button" or "link-button" conveys - at the same time - the well known concept and correct technique, different from an Info link (or "cross reference")? > Also, the option which controls this should be mentioned and indexed. Ah, of course! Thanks for your suggestions -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 21 Jan 2023 08:21:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 21 03:21:46 2023 Received: from localhost ([127.0.0.1]:47990 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJ98D-0002by-OU for submit <at> debbugs.gnu.org; Sat, 21 Jan 2023 03:21:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49390) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pJ98C-0002bm-BT for 60587 <at> debbugs.gnu.org; Sat, 21 Jan 2023 03:21:44 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pJ97q-0008ER-4n; Sat, 21 Jan 2023 03:21:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=uRJ6TUVy6wj8PiOmp/CC6RDU5Y4DohJr7CCKBMEzNmU=; b=KGa8ItsDTkag Ni5XYGmfrGPJzIS61H62BOAMnK087zo3jG3bTW1DczusKtAGdfCpIRa1QB1MKHd/7O1/EnOVbkLXD ue5CZd5orOEJTe9UawoQxhZZaItMzZm+1ZcYt2HmNSOFb3GezUlT+ZF9lqhD+Ar4KxTGStYPXGLTG D6ZGvgkNXtaRjY5qDpUcW0xpGna2gAd9xMNYhvVOVN780aweJxA+g602wg2zDu4l175jrBfkG5ZBR s0NpmkoRMWuBvshKvYv4oKtwVsDpmG9EngzV7uweDaeqFCbxCibBKrFm+MJWAuwV3SiQNKTb56Muz txEY+QMIS3lNI3WY37B8uA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pJ97o-00061g-Up; Sat, 21 Jan 2023 03:21:21 -0500 Date: Sat, 21 Jan 2023 10:21:22 +0200 Message-Id: <831qnomh6l.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN> In-Reply-To: <864jskx6a8.fsf@HIDDEN> (dieter@HIDDEN) Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "H. Dieter Wilhelm" <dieter@HIDDEN> > Cc: monnier@HIDDEN, 60587 <at> debbugs.gnu.org > Date: Fri, 20 Jan 2023 22:09:03 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > I think a good place is to mention this feature in the "Misc Help" > > section. > > Could you please check if below formulation is better fitting? Yes, but it "needs some work", see below. > Unfortunately I also need to investigate the code anew. Yesterday I > realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't > working any longer for Info references. (E.g. the `Tab' keybinding is > switched from `Info-next-reference' to `forward-button'..) So I guess you will be submitting a new patch soon? > --- a/doc/emacs/help.texi > +++ b/doc/emacs/help.texi > @@ -653,6 +653,15 @@ Misc Help > K @var{key}}, described above, enter Info and go straight to the > documentation of @var{function} or @var{key}. > > + The commands @kbd{C-h f} and @kbd{C-h v}, also described above > +(@xref{Name Help}), in an Info buffer can be replaced by @kbd{Ret} or > +@kbd{mouse-1} on quoted symbol names. For example, the quoted name > +@code{info-other-window} is made into a button which shows the > +function's documentation string in another window in the @file{*Help*} > +buffer. Such quoted symbols (variables, functions and face names) are > +highlighted by a distinct face and can be reached, as the Info > +references, with @kbd{Tab} and @kbd{S-Tab}. I think the first sentence should be rewritten as describing a separate feature, not "the same as" something else. Just say that symbols are converted into buttons that lead to their doc strings. Also, the option which controls this should be mentioned and indexed. > +** Info > + > ++++ > +*** Info-mode provides buttons on symbols showing their documentation string. > +Quoted `symbols', like names of variables, functions or face names, > +are made into buttons which can display the respective documentation > +strings. These strings are presented in *Help* buffers in another > +window. Such buttons are working independently of the regular Info > +cross references and can be disabled with setting > +`info-make-xref-flag' to nil. This is OK. Thanks.
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 20 Jan 2023 23:32:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 20 18:32:44 2023 Received: from localhost ([127.0.0.1]:47471 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pJ0sG-0005Ah-7f for submit <at> debbugs.gnu.org; Fri, 20 Jan 2023 18:32:44 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:44022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1pJ0sE-0005AV-Mu for 60587 <at> debbugs.gnu.org; Fri, 20 Jan 2023 18:32:43 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 754601000D2; Fri, 20 Jan 2023 18:32:36 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id C4946100098; Fri, 20 Jan 2023 18:32:34 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1674257554; bh=osKkGqHFcMW+NpYn+gFNpGdHuVNDyvGYcZjWeDVJLZQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=BppODY0F2EtjLgY+ospfPUHx2OGtWNBLm9sj2FS7npcZV5PPxn9kZSxgw5tHFKS+6 RxRsDSdk1wTCfLORDl9Xl4MPhfWU0CPz+nFQQ5kYZVma2e44eK1O/AFjPeVHVU72m7 Zl4vxRW1xj0wAC8GqRpXWD62uQk7oR2hrdJehwkDAfxO0KI9RsB5oI6bjYentossE/ iduGcHy5V040bK89soZoS5K9Vj3mwsWQJQGCJfPYW003pugD2/nf2Mp8Hxeavi+Kzv BMOUGKXOTPL9iBWDcBZhnPN1gSULdAlJsX3ATcNAXvGZbv86FM0fEtayuWgySAf9XD o49n1ZrVp6BJQ== Received: from alfajor (unknown [64.238.140.245]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 9542F1211ED; Fri, 20 Jan 2023 18:32:34 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <864jskx6a8.fsf@HIDDEN> (H. Dieter Wilhelm's message of "Fri, 20 Jan 2023 22:09:03 +0100") Message-ID: <jwv3584dbrc.fsf-monnier+emacs@HIDDEN> References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> Date: Fri, 20 Jan 2023 18:32:32 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Unfortunately I also need to investigate the code anew. Yesterday I > realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't > working any longer for Info references. (E.g. the `Tab' [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [64.238.140.245 listed in zen.spamhaus.org] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [132.204.25.50 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record X-Debbugs-Envelope-To: 60587 Cc: Eli Zaretskii <eliz@HIDDEN>, 60587 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.3 (/) > Unfortunately I also need to investigate the code anew. Yesterday I > realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't > working any longer for Info references. (E.g. the `Tab' keybinding is > switched from `Info-next-reference' to `forward-button'..) My crystal ball suggests that some code somewhere binds `forward-button` to the "tab" event rather than to the "TAB" event. "tab" should usually stay unbound (it is then remapped to "TAB" by `function-key-map`). Stefan
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 20 Jan 2023 21:59:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 20 16:59:39 2023 Received: from localhost ([127.0.0.1]:47371 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pIzQB-0000FZ-AE for submit <at> debbugs.gnu.org; Fri, 20 Jan 2023 16:59:39 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:57870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <drew.adams@HIDDEN>) id 1pIzQ8-0000FP-KD for 60587 <at> debbugs.gnu.org; Fri, 20 Jan 2023 16:59:37 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30KJxeBH025641; Fri, 20 Jan 2023 21:59:35 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-2022-7-12; bh=GidDNdZYH6pHWWVZiMEQ83tmMEfBFliAngBvOVSWcoQ=; b=KVkPGZDA8qdpMOXbrrKJ+OR1I55IBhOjp0vD9rqDYo12EHxksWNhTMC2sDOwrloks1e+ zpwOCo0jvNWNeB4BOXgheARJi3LqcYtkwmDW+fKCtVuWRoVRYbc0cG70XPmbLUAqvDnv Vyo64vYWXzj3De0cY8cJHbCSg6UjNXgv0MLULP+s2ozK5FkaZ4UkijI/MR1mmR/TFN5L D8+hDUreLAAtk53JOUIDWMMXbb3RWI0NUZOIbht0w6y7YKx2c8Zo1qL3alhA+/tXSxhY w3+a7FaK8mmUJE8DdPaEbee1ScEsq10n+kqMdfWIopidudGnkjKCm101wJ9Sls9NF5JC 2g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3mxtds4y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 21:59:35 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30KKe5If000984; Fri, 20 Jan 2023 21:59:34 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2040.outbound.protection.outlook.com [104.47.57.40]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3n74d35ymn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Jan 2023 21:59:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LX2c5njiLCJaQ/jRoO5cVpyxitW1d0ol9BZyYXJ2c0PUJqyD9uekjHu0Jeyh6kiCtG77WxGuMjTKPqIXTk5jGF/eT+NL8vdDDK3tsAiz451pKTq4MGCwO2lY/sZ4kp48+XwOlCaSu3U7+AGHoCbaiD9eJ6DCmGb3mfKk0CoZAJ325kvEz0okQpTEKdvEb4/5Ne2QEnH1f/En29HRFMSM7A1gDpPi8ygfumQmwPc8H+PWw4hYgNYos7Ob4AqKsoTfXzg3LSIG+t8KPA9rHcW8j+382Lpdes2ZjLWmyqhqPUkkijo2uiLh64ZhaTCqnPopCL0Ky8rOtN6ix3D1xPYTcA== 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=GidDNdZYH6pHWWVZiMEQ83tmMEfBFliAngBvOVSWcoQ=; b=PR5XVXe+M2zXfQeD0zYLvPYdaqt6ewl1CpOCwErZdZaau9Ts1UPY6upPdNpXSZT9hETTYoTa9qdydOjg/KwFU7Yb54xUlQmVDnDEWvZCUhHiNavAbFSRHdT3eTnnXUE1nP2sbtSqNJZvWvw98ktih2PuKfizTswXjTjqQO1+K/tz2QW4Yj39f5yaG3CrAix4cWfBdcjxB/sQo9Anm3Uhza4RTAW+e/7k0t4Rh27NAqqUq6DWsoMTTIaVsuKU2dQMZeajFD9pnVtHRjHL1Q4cdD/rcxM96UQXQEiqJrEqMWku3+w5fjGWaecboPxGLcjkWkjldOr+TQWA9vWp7zUjTQ== 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=GidDNdZYH6pHWWVZiMEQ83tmMEfBFliAngBvOVSWcoQ=; b=nsIBKiY0GpSiX/NORi39PYrupq/z+cMxv0cue/8GQZsXc1ylkMDfekuIQqFEsPiyoC+4SCXKMoSsMpZwxUEUCA+kYtrn1rkCgXX1JEFXxL+fGqTjEnxEAJEa1/5Dfw7WKWysZyNfLx5yMeHOPZsOu7KHceWPyyeoFDj6DP/XiPw= Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by CH0PR10MB4937.namprd10.prod.outlook.com (2603:10b6:610:c5::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.7; Fri, 20 Jan 2023 21:59:27 +0000 Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::7c3c:e53d:5276:ef29]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::7c3c:e53d:5276:ef29%7]) with mapi id 15.20.6043.007; Fri, 20 Jan 2023 21:59:27 +0000 From: Drew Adams <drew.adams@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN>, Eli Zaretskii <eliz@HIDDEN> Subject: RE: [External] : bug#60587: Patch for adding links to symbols' help documentation Thread-Topic: [External] : bug#60587: Patch for adding links to symbols' help documentation Thread-Index: AQHZLROoSswej+9Mc0yojxbTs2n74a6n2AxQ Date: Fri, 20 Jan 2023 21:59:27 +0000 Message-ID: <SJ0PR10MB548880854B8286BB31F3082AF3C59@HIDDEN> References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> <864jskx6a8.fsf@HIDDEN> In-Reply-To: <864jskx6a8.fsf@HIDDEN> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|CH0PR10MB4937:EE_ x-ms-office365-filtering-correlation-id: babc9084-cade-4818-3939-08dafb319998 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U9HckSPUqotrhuJjOPp/XAvzCeIOma0OAxQlLt2J0xqBu68hxlxOK1TZs5QIzWMnN88wH1MVdIzYYwPvV8QxLKuCgXD4gEOkW9WtXP/LhjEHZI/ab4yCPoCgGrOnIHFCNhIbPtnlHm+L+gWmheObK6wlS47dks5kqJ7rJsB6wNZMF+LLWYI/rUtbCvG7vgzCjwWyG3seWlxNJkj2HL6xZCJ56UAqzktMIHlm2UsSa8kNv+jfKswsUwqgUlpUxEJzn+K6peqmQ82zjegMKxetHd+axbbnE8lHNqhTo8sTLGUoiLHJiImfbOgtGRWYkjS0l3lv/RqfVbaApTo0H+EVghMmmcpSAjtjH0GZTm2pC0Jry/lC5IzXgbWrppJFk4m7Gsx0ilbLHgc6r6ptsjWkb6jJaOkIHg/q7cOFGy26rYk5sNBGK+Pr4HVonfwmxBwjVWT7fbZ8eG+e0B5V7UM8HxX0uC3x9nR8DPk6Msa7mPXG7l0o+kBO3CABF/CFtLmIlili8M424FaVAFSoq35dp+Kf6gpLxF/gLZ5JJcVZ5K454NFMFhZ+9FjsLHth6v8pSRDYIOmhF8267pRzvuPp6Yo/KqDkpFE+YhL0RdOERwsJngaEK+0IDi/BObd2H7sZ9PRBGeYNpLURIPBru8i1tMkbTB736BdyZbxXsUt0QuVexobsvZIucDi40hDCVsHen06Bj2Dio+j+BpoVMno7Jg== 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:(13230022)(39860400002)(396003)(136003)(366004)(376002)(346002)(451199015)(5660300002)(8676002)(4326008)(7696005)(66476007)(64756008)(316002)(66446008)(66556008)(8936002)(52536014)(33656002)(6506007)(122000001)(41300700001)(38070700005)(71200400001)(54906003)(55016003)(110136005)(9686003)(2906002)(44832011)(86362001)(478600001)(26005)(186003)(38100700002)(76116006)(66946007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?BjuoahOVuL0A5RrF6jtfgEP+46ZQMUbY9haXP1bQUmRq9ZgHLfO/gBCebtjQ?= =?us-ascii?Q?LVI5JjZfWr3cT8vR6wfVkVZNgfyY+gO9XGEnnMZBKpH/+Dw399sp07T+rh4Z?= =?us-ascii?Q?9enSrZVKbZhEvjK+exmN/ZwNgPPdmKF6lCsFRkUI8TMJi6nU8CpDK1A+2WCw?= =?us-ascii?Q?m+C1g5HiofOG3MDDrEYsIeuV+sUIlQjhvyAuXvtQGSfzIjHjjApftlrQGRMH?= =?us-ascii?Q?bFQM8ykTGBOJ6+E0C57hzflyRuD9iQ76ARKpG+KaCfpbOjKO0mmvXrfA4HnK?= =?us-ascii?Q?GwG7BEe9qjgy11q9QwRSjorQOnghQZpd4OADizObOTlIYCHHVUNAFo0VV5K7?= =?us-ascii?Q?fnexoX+Yz1ZNdHao3sczxMiFTQ5IO9xXLjI9ZvzCI7N/703PWC0/wU+TQFaA?= =?us-ascii?Q?8Qa6TakA339gE7lYqkZfFYBjwPUsOIWNvd97CRfn8fJt5YPGl0qtCVzPyFR9?= =?us-ascii?Q?kyFBD3zYu3+5YeoeW6XwhgCUlB+hBsAT6Cmjz18JOK0DoMsSu0AZcZdvMmhL?= =?us-ascii?Q?0VlQ/dlc/PyFpsoRzPjlPNemlUovtGStB9Qy+28hk8Bx6TBCF6G6FDaBRY4h?= =?us-ascii?Q?qX1Kf6OB2mykHS0KN+a6tcrcwcpWJDPq2Z0kbnG0DW/twczgpzAJ5SgU5cRj?= =?us-ascii?Q?ERpOqEeKSsbSoeIdvJY0WRo0TGqx2zR8M7fuXvF3nfsyXLnMwrJi98gxKqx+?= =?us-ascii?Q?dOHl96pXCiZAij2ro00Exvyoy3a9OOegXORtdjVEO7wyWJrwP2J3HsHAcgVx?= =?us-ascii?Q?EIJp1tDy1yx0r/13JA5rb3Fg5xH8WyJOvMDjQXOfR4yXczBbob98DhBBrM49?= =?us-ascii?Q?Hc38gFFs8RqJ9gMvRz8ZL8mKuCHiaXs2sHY/QUyeY0PUYND2bNIElBi1u58y?= =?us-ascii?Q?CWoOu6yeP6HRKODf3M05Wz2ORFZq7DcfbZRyOoW5v+rfQgiV/9Mv8zizggvC?= =?us-ascii?Q?ohXy694Pc+lVdj4VEskgfwoWc+mKd6eykQyzV8Sv08aZdlgf9vPzxb2t6Sx1?= =?us-ascii?Q?UnVF1UHfPw7IWuhEjiR6e+0ppSTskzDhotnUxN5rKgqIfIenrh0UVS4wWTv5?= =?us-ascii?Q?CPWy6D6b3E93Sekd+VzakDZ/yZtAul1lo3lUzPkNiNgfaRclKCZLqNXOYHgD?= =?us-ascii?Q?nZPB41HfxU4NSjVTaB8bbUeZUxadGi5bGH9K1fz0hthqwdmh296Y8B0rysFH?= =?us-ascii?Q?5JqaoCjBMhn6CpNNpk8HzS32ByhE4KmiBNhRSTYjj7DTcBoo+BmdCM9sCMhN?= =?us-ascii?Q?I4uuJfPCGunQtvOrO2IsZiHPb/6kdv6MAMN34IsxOrWUtnZk0Cg/zpx2q5dP?= =?us-ascii?Q?i3iurdMUdZ69CbZo+t26qgJE01O1mpxwHdI6Vam8zdrKPq4eZvoOVNjLpiXB?= =?us-ascii?Q?dK95p34YdH2KLMa9IZ7Kj5z1/2Wc+ZaOpERVqQddw1uGHD3tzbQ0S9pXNWHu?= =?us-ascii?Q?MTLF3KwtXht3uD6SOyF78hsRUepGlpY8TXZ4lsQ8p3dzMLudlDsFp8AiTwCO?= =?us-ascii?Q?MiSYMKX+apSBvLIZwcGHPx1wjZgMMaAP+tc4D5LDoLGCrzqmtTiXQq7lUHkz?= =?us-ascii?Q?JADYai+bdmau3g0xR+rSJylRWOqeyEmQvHqVeG6K?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: T6i/QUbSzUpK1PF47QckmV0X2Jn++UhDFf88V5rhE4e6eczkg/qYqbx8jl9uLo6EwQzMmax1Hw4tSU3GzucNy/Nqw5TDAKKVs0kcLP76ot+N5Y3Qw8B8ZBVJgDcdc0Ym/v+6jfBa3yEpM36sXAfDnmk2og3Dd1D/8Yo08nRalMIRc0/jOR32g7psOj2XLHUgWhaqLOyIxSv0+NocMb/s/sf6OZEpjeBCQ2u9aE7PimR9DPgi0cOHHTw8rjXYumTMAu5IA/e08c7Dkd+HBTsNL/jLFMTpEL5onfVfLppbjS9WzqkaJOn3aHJUpUKMznJj9oIrtt8ryv87DoOkSCc6ddKDAYjWd3Wm7b7KnRZilLnukjgfiy1FXFOehL+L3KoaNfsxp/YBlKe6IBKqK/Pr0/2oBCqy/3qzWI/TZpxuhwMz3blX/fLGIWnkmWgl5561PXj1fGrXQpjh4M4FfnhKfBt4vNP07EipC0vCmlEvYbs6/Ftys+FQxjGHeug/mryV/rib263oTzQcbHQ6O/e+Weaz5y4/bi1BPuMCDZzScyemNQeH+whRRBjUUbap4RSobtLGCWawF/TT8dsERMoSiceqzogH75lYyQd1hslkJMb7disga77p83okV5p1tU59pMVcgd69HkKaI1mwLJnP1tj4/RlCVDN+iGMRmK91BSEeWyqeRaxjApM3j+4Sog7u5+BdqkYDTOozR3xA25EcX/3WOleAB8pYyttz+bWN7r1VX4qurb094haOUdDV4p1lM3kwTVsuafGCUoUJKOByqeg8ffQ7CxZM+UsgBYF7qJpemqX2YngM77+lsd2qxPtSP0fwQIZgX6jJxj+hKzBcyaW/C6pOuWPP5h4b5EQzVQsQQP1gzwSc/qDwqTPPR8Jk 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: babc9084-cade-4818-3939-08dafb319998 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2023 21:59:27.4737 (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: CMRb4ft6S8wB/Ym4RtDAYj/2PFP67amEnWYEZbOWlsnsMpOb4Ps6cEAe15FmnOLLu/iBagf56QZQJkFEaCWn5A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB4937 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-20_11,2023-01-20_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=975 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301200210 X-Proofpoint-GUID: 9uRJApjDnXccdA4EKa0ymbtvNrwiZRJ1 X-Proofpoint-ORIG-GUID: 9uRJApjDnXccdA4EKa0ymbtvNrwiZRJ1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 60587 Cc: "60587 <at> debbugs.gnu.org" <60587 <at> debbugs.gnu.org>, "monnier@HIDDEN" <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Caveat: I'm not following this thread; sorry. A quick look at your patch shows this: The commands @kbd{C-h f} and @kbd{C-h v}, also described above +(@xref{Name Help}), in an Info buffer can be replaced by @kbd{Ret} or +@kbd{mouse-1} on quoted symbol names. I think it's wrong to say that `mouse-1' does that. At least I hope it's wrong, and that you correctly used the behavior that `mouse-1' only does that if option `mouse-1-click-follows-link' is non-nil. I also disagree with calling these "buttons". I think that Info calls them "links". E.g., in (info)Help-Xref you see this: Such a cross reference looks like this: *Note Overview of Texinfo: (texinfo)Top. (After following this link, type 'l' to ^^^^ get back to this node.) And just the name of the above-mentioned option should make clear that these things are presented to users as "links", not "buttons". Its doc says: Non-nil means that clicking Mouse-1 on a link ^^^^ follows the link. ^^^^ The active bit of text is referred to as a "link", and so is the relation between this source location and the destination reached. You click a link to follow that link to its destination. Elisp may refer to creating a "button" for this, but for users we should call them "links", not "buttons".
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 20 Jan 2023 21:09:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 20 16:09:18 2023 Received: from localhost ([127.0.0.1]:47294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pIydR-0002gf-Td for submit <at> debbugs.gnu.org; Fri, 20 Jan 2023 16:09:18 -0500 Received: from mout.kundenserver.de ([212.227.126.133]:55467) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pIydO-0002gQ-Vt for 60587 <at> debbugs.gnu.org; Fri, 20 Jan 2023 16:09:16 -0500 Received: from ping ([109.250.146.179]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MeTkC-1ol1KG3LcK-00aXrm; Fri, 20 Jan 2023 22:09:04 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <83o7qw0yjy.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 18 Jan 2023 15:20:18 +0200") References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> <83o7qw0yjy.fsf@HIDDEN> Date: Fri, 20 Jan 2023 22:09:03 +0100 Message-ID: <864jskx6a8.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:Hckrq7/DXr30w9wB2akPxeZg/f4/7Tmu9AfXIw6AT19JmaaUN+Z hhWBHtOWYooNuOAyhw7K6LnPt/zPihMJPckLNKl0WAf9rTslB2IsjvaXxg0hLb/Ya2j/asx a7uC0vYKgjap2Wk5CQHfqhxJsvxihdI2dSXBQFc81Ut4b6b7Er+POnWuel7FnqaN0bv2Kdu quY9nKnqorX8rsHvBPcDw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:JLb+bNz85vM=;7vMzxxMC8d2KPgfre7lRYhy4lSr 6fYRbdf0e9ZFq67OpdEF+h2pg35qu1ay8Wa0fDfJitH6XTuPIruz/YIVggbewK43EpPQQo4Ws GzT1KANgo8KuJvhTfnSMMB2t/FluDcGBaQbUmuZjPA6itSLTV2BKM8JuynQ+knsFYeP24NfhE hPot0hAZJ+KWMyU8NFvPefcoG1xlQ1a8kJVNBhtMz3KLzS5LGduXjll6lE6QPUvhg8dnUv5bl V6paERol/U3Ogwl8nVwA4/F9haoqg4IdAbim+P35hKRQLNfMZo2nLL4RuWeIXaRQabzoIrlUb ElI++DieiPVAj30P41g6ZdPRLE2HXuA13dBI8ywFRS9O5NTcZFxOv/snt3FQC7NVe/PWRUu+7 SBFZIXK8j8NRH/y+k6H4YzVYHRDqnUzOv4QaVfR/yGFZMkDPXDuOO1K6zqF0D58ErPQe7hKDj a3eO6ALfTK8Xho/GJNHA9k+tGuYtRIqnH32D2/alfcYj1JrUoGzLxeSODVbeCX3a7ash86Xwy 994YdfXcHCgAg3FBoAbfLB20DP6HZrvqgo+E2eRuIT4ftpXdOpcccMNpgTD1kMGeBgWKblfyF +evbGf+NZWUiX5Ns/cx8zOlAMVQXVM26Z9SnwtQ8rSsa2un8O3uG0Vfq7SdVpJw3vUYty3gDi Z+KRyyLadTee7nPzbWQpCldT5iz77eJG8pHORVvbq4/r/3Jy5k6H5MbMo4kHtQo= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Eli Zaretskii <eliz@HIDDEN> writes: > I think a good place is to mention this feature in the "Misc Help" > section. Could you please check if below formulation is better fitting? Unfortunately I also need to investigate the code anew. Yesterday I realised a regression starting with Emacs-29! `Tab' and `S-Tab' aren't working any longer for Info references. (E.g. the `Tab' keybinding is switched from `Info-next-reference' to `forward-button'..) --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Documentation-of-Info-providing-buttons-on-quoted-sy.patch From fa7c61466157a580b17d15f989e1b825ba4c860a Mon Sep 17 00:00:00 2001 From: Dieter Wilhelm <dieter@HIDDEN> Date: Tue, 17 Jan 2023 22:25:54 +0100 Subject: [PATCH] Documentation of Info providing buttons on quoted symbols (bug#60587) *etc/NEWS: Mention implementation *doc/emacs/help.texi: Describe implementation --- doc/emacs/help.texi | 9 +++++++++ etc/NEWS | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 2513e6be271..781b2bf1ab4 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -653,6 +653,15 @@ Misc Help K @var{key}}, described above, enter Info and go straight to the documentation of @var{function} or @var{key}. + The commands @kbd{C-h f} and @kbd{C-h v}, also described above +(@xref{Name Help}), in an Info buffer can be replaced by @kbd{Ret} or +@kbd{mouse-1} on quoted symbol names. For example, the quoted name +@code{info-other-window} is made into a button which shows the +function's documentation string in another window in the @file{*Help*} +buffer. Such quoted symbols (variables, functions and face names) are +highlighted by a distinct face and can be reached, as the Info +references, with @kbd{Tab} and @kbd{S-Tab}. + @kindex C-h S @findex info-lookup-symbol When editing a program, if you have an Info version of the manual diff --git a/etc/NEWS b/etc/NEWS index fc8a3ac66a0..f9ea0084cb5 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -174,6 +174,17 @@ the new argument non-nil, it will use a new buffer instead. Interactively, invoke 'eww-open-file' with a prefix argument to activate this behavior. +** Info + ++++ +*** Info-mode provides buttons on symbols showing their documentation string. +Quoted `symbols', like names of variables, functions or face names, +are made into buttons which can display the respective documentation +strings. These strings are presented in *Help* buffers in another +window. Such buttons are working independently of the regular Info +cross references and can be disabled with setting +`info-make-xref-flag' to nil. + * New Modes and Packages in Emacs 30.1 -- 2.34.1 --=-=-= Content-Type: text/plain -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 18 Jan 2023 13:20:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 18 08:20:15 2023 Received: from localhost ([127.0.0.1]:39830 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pI8MR-0002cu-E8 for submit <at> debbugs.gnu.org; Wed, 18 Jan 2023 08:20:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35138) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pI8MP-0002cc-Rj for 60587 <at> debbugs.gnu.org; Wed, 18 Jan 2023 08:20:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pI8MI-0007AK-1h; Wed, 18 Jan 2023 08:20:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=06Eihm7W4m5UDm5tQJoR1Azhi+aEgpRVTqTFWtBNu+I=; b=hy8vCD1JLMRE ejKqXyaYkgLmIPjYSYX00h6tICdNsI3WIhidJ/x4FF8rpW1nsaSXT+azBNz5sRt/DO9kMGc5R1Mj6 zUTbldn+ADXvnv3Fg2rqeKfc/ezJjHd3ZwoyEyvmZy8BYoR99md5+rM7WXnLX90zAawB/r1Holn0Z 980V4exn4zOBhDGfld62LgII1Tg/e0o4Q+eFPZw10Fhhmosn5xtbL08C9VeFxKM2HW68x82EIA0di UvASw0aef8c7uVa96OBRgIM2J0iDmQVWMa2jZHG25z/v4xB3Dug8TG1ae6elvE9/DSr7ru1LSnWqV OOfjKZ/tcz1Eh8gdg0GRcA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pI8MG-0007SS-PR; Wed, 18 Jan 2023 08:20:05 -0500 Date: Wed, 18 Jan 2023 15:20:18 +0200 Message-Id: <83o7qw0yjy.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN> In-Reply-To: <863588rfos.fsf@HIDDEN> (dieter@HIDDEN) Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <863588rfos.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "H. Dieter Wilhelm" <dieter@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, 60587 <at> debbugs.gnu.org > Date: Tue, 17 Jan 2023 22:53:23 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > Finally, this needs additions to the user manual and NEWS. > > Do you think about Emacs' Info manual? My feeling is that it could be > fitting to explain the additional linking capability here: > > (info "(info) Help-Xref"). No, the info.info manual is not what I had in mind. I meant the Emacs manual. I think a good place is to mention this feature in the "Misc Help" section. > +*** Info viewer provides now links from symbols to their help documentation. > +Links from quoted `symbol' names, like names of variables, functions > +and faces, are pointing to their *Help* documentation. If you want to > +disable such links - in addition to the regular Info cross references > +- you can set the variable `info-make-xref-flag' to nil. First, please leave 2 spaces between sentences, and use "--" for a dash. More importantly, "pointing to help documentation" is confusing: what exactly is "help documentation" here, and how does an Info manual "point" there. I think you should instead say that these symbols are made into buttons that can be used to display the documentation strings of the functions/variables. Or something to that effect. Thanks.
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 17 Jan 2023 21:53:38 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 17 16:53:38 2023 Received: from localhost ([127.0.0.1]:38438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pHtti-0001da-8l for submit <at> debbugs.gnu.org; Tue, 17 Jan 2023 16:53:38 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:51089) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pHtte-0001dK-Rg for 60587 <at> debbugs.gnu.org; Tue, 17 Jan 2023 16:53:36 -0500 Received: from ping ([109.250.147.186]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MS3vJ-1pAZd00Fbv-00TY9x; Tue, 17 Jan 2023 22:53:25 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <83h6x2u74b.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 07 Jan 2023 09:38:28 +0200") References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> Date: Tue, 17 Jan 2023 22:53:23 +0100 Message-ID: <863588rfos.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:84Xa+GIhorSOekAvbzKfEDu+eGJHA0oU2FV3c5S2DwYWmZ2E1sf IunlSHXkbzBBxee+WktGp7zERqvzWl3ANNZ30ysCeKlI7z4FLpVvj+E8RvP0snzWfulS6vq Bz+T1qyKmYnpYrpJmoTpV4zSdjAL30M7bgNq2r4zpVqe3se4zA+9FfotDQOkmOcz1BLmm7P kCAVWqc+8MLrOZn3UwOXg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:DME1vpIhY8c=;Sg1g7wShRLqW1HU++kmOlxFjotG 18EwcbRKLZj26AdqRjq04tAIhNULtuC4XikkRSACbkcELipB7YbrTGO/ykh6D6aVMUR6iFb6m GOe2s/wPulEiuzOJoqbDQGJtQV/SvQkzHsROlR/lBFNOCe3q1ZReRwuUzgSYWIXSiKbO+G94/ eCQon5hZPwPvPbOOWZwTqz7tVzRpZf80RmTanuGQCgKH0GtW1FQcDf/iMMfvPGJTLEtsxfYr3 ectUnykcPi8IYfcUM3VEJ8oInJtMF/xUOhAVwbJ1DDF++RKtpPNA3NMh0MPm4BXzIf0ZbfFhr dZFABA1zi0sWYZwr656VLFgmtFfkVM31n3mwgIza/+g0Sj97Xn76AJjlioez7EyucbMYlzCCa xGjuCXCOJCx0HNeZWrDw/74UFUOsJ25TSy3YbocJYKBNnVoaifjS0Htn3gw4GlTOkxsM2tp6G +1nQFJcnAvUEtmmfB54ZhOAcctdknrNeui73Gc5i9bvWOFnNBGR7ui3IhaQyjOLSoc/1h4CbT cDBT4y1GvSY2AQfHeAQHLGFWp45uUqFRVGEIKi/wpPp2rPaYPUktsSyTFjwEb/RxU/b8uRIKu GlazpOQ+ReDO6XZf9KhFHD2Ro0zPA9pK3N8H3a6CQmLhcIgidvqQgkyDnxaDLhhGm3TbydaXT qPQD9CGlvx1ujFVDWGdBzdM8VZl0P6DNy1uioJjvOA== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Eli Zaretskii <eliz@HIDDEN> writes: > Finally, this needs additions to the user manual and NEWS. Do you think about Emacs' Info manual? My feeling is that it could be fitting to explain the additional linking capability here: (info "(info) Help-Xref"). --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Entry-for-Info-viewer-providing-links-from-symbols-b.patch From 31229f536627fbb0e7dadd3f60be4d94119b9f80 Mon Sep 17 00:00:00 2001 From: Dieter Wilhelm <dieter@HIDDEN> Date: Tue, 17 Jan 2023 22:25:54 +0100 Subject: [PATCH] Entry for Info viewer providing links from symbols (bug#60587) *etc/NEWS: Mention implementation --- etc/NEWS | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 068f7a27db8..c193b59647a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -165,6 +165,14 @@ the new argument non-nil, it will use a new buffer instead. Interactively, invoke 'eww-open-file' with a prefix argument to activate this behavior. +** Info + +*** Info viewer provides now links from symbols to their help documentation. +Links from quoted `symbol' names, like names of variables, functions +and faces, are pointing to their *Help* documentation. If you want to +disable such links - in addition to the regular Info cross references +- you can set the variable `info-make-xref-flag' to nil. + * New Modes and Packages in Emacs 30.1 -- 2.34.1 --=-=-= Content-Type: text/plain -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available."H. Dieter Wilhelm" <dieter@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 15 Jan 2023 12:49:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 15 07:49:16 2023 Received: from localhost ([127.0.0.1]:56370 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pH2Rn-0007cy-D3 for submit <at> debbugs.gnu.org; Sun, 15 Jan 2023 07:49:16 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:48499) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pH2Ri-0007cg-4V for 60587 <at> debbugs.gnu.org; Sun, 15 Jan 2023 07:49:13 -0500 Received: from ping ([109.250.147.186]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MrxfX-1ovfmI0X4v-00nzdx; Sun, 15 Jan 2023 13:48:59 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <83sfgd8u8l.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 14 Jan 2023 09:12:42 +0200") References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <867cxqui0w.fsf@HIDDEN> <83sfgd8u8l.fsf@HIDDEN> Date: Sun, 15 Jan 2023 13:48:57 +0100 Message-ID: <86a62k55fq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:45Zz/YuWugNOj4LZCo31tffOlfDQk3+P1JvmUozIdPT+dIdwimq 0/W4lPEbtFC5Wjd5TKEi7OMoeAuqZp2LyD8yLLZLCSXO24lWgdA646AmTUFkr8DypnnqsFP h+ZWt39ecvAhiNAqYE6mWcKRuXVbmEXbEVYMyhU/ZrzW8qZ+fm9HUCHIz80kRrPPQ86DKWm X5ACmZeRZJ/aP2mjjIl2A== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:BqWUiPlOdvY=;h37+UyTd1uZJhU9SD5l7mku0928 56Kyc/XsBBVq7vbnDXaHCcRniJ6JSnrI3k4iT9QcmwVZFehGqu55zdvGuXTUK/akckxFgZOYp HtJ+MfRETdOmnqbShtnF8YD1DJPjQlbo6UDOJanLfd/oUf4EzZh+zyxslfLvMz375qKrN25uC jKYQfHYudGMqi7abfxSY/3R9Lfcgjwl9CzzMPVn+oExWhmUfX71Fb72O5UTs5J9g8pd7TI7Bj +rp0Ihlf1CKu+rpRnB+Yddj3k2pxGPBViUDbGeqP8UumpQhCtRDUfIgfmXbaPs2TOKxVmpKCw ZWZ6VhfF4Y+nWQQCGSP59J5ILFU+63kOXkdjrgGZcW5ngTg6tca6Pte3rCqcDmcwlFbW1i4rx WUsmOC2LqqklGqE7LyM2uHbMpwF09a5Ybht9dFhKWIWT24cXO+Y64EBoUe5u76u5NijVtOKx4 uhI9b6CViaTjkJ96nYwCtYzMqKpAq6Z015iR2jWcbXc2UhlPiNZNCaSsEjentSW9LTPmMosXe IDRDBTd1NMfR43/OLaMuY2kJXTSKmstOV2UUWql2gfeso1ajPyCrzm/4VFawtcFC8FJXwzC6G qbaEgn2GSKtRQe3oPqXHCA+sX8k7ELa6w5SwEP2MMEP3p1J7FU6lLMYXTTI/VcRzZ/apjvCVR ebyJG2hUpkuj+R3dEcaOJkUlyTJZORR11MIng568vbbhEh2wqK1SerYQ716IMzY= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Could you please check the attached patch of info.el? I'm a bit concerned about the "symbol link" face: I think it's helpful that they're distinct from the info link face. On the other hand the colour is then inconsistent to links as they appear in the help buffers. The other concern is that the info documentation from freshly installed packages (in the current Emacs session) are still excluded from the linking process.. I'm looking forward to your assessments --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0001-Provide-links-in-Info-from-symbols-to-their-help-doc.patch Content-Transfer-Encoding: quoted-printable From 57725936981c50cd1234d8c01c86733cc29d791f Mon Sep 17 00:00:00 2001 From: Dieter Wilhelm <dieter@HIDDEN> Date: Sun, 15 Jan 2023 13:30:45 +0100 Subject: [PATCH] Provide links in Info from symbols to their help documentation --- lisp/info.el | 383 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 383 insertions(+) diff --git a/lisp/info.el b/lisp/info.el index 035dff66e7..876addd7e1 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -5510,6 +5510,389 @@ info--manual-names Info-directory-list (mapcar #'car Info-suffix-list)))))))) =20 + +;;; Commentary: + +;; The code below provides links of symbols (functions, variables, and +;; faces) within Emacs' Info viewer to their builtin help +;; documentation. This linking is done when symbol names in texinfo +;; documentation (like the Emacs- and Elisp manual) are: + +;; 1. Quoted symbol names like `quoted-symbol' or: + +;; 2. Function names which are prefixed by M-x, for example M-x +;; function-name or are quoted and prefixed, like `M-x function-name'. + +;; 3. Function names appearing behind the following forms, which +;; occur, for example, in the Elisp manual: + +;; -- Special Form: function-name +;; -- Command: ... +;; -- Function: ... +;; -- Macro: ... + +;; 4. And variables names behind the following text: + +;; -- User Option: variable-name +;; -- Variable: ... + +;; In any case all symbol names must be known to Emacs, which means it +;; is either a built-in, or its Lisp package is loaded for the current +;; Emacs session, or the symbol is auto-loaded. + +;; You can follow the additional links with the usual Info +;; keybindings. The customisation variable +;; `mouse-1-click-follows-link' is influencing the clicking behavior +;; (and tooltips) of the links, the variable's default is 450 (milli +;; seconds) setting it to nil means only clicking with mouse-2 is +;; following the link (hint: Drew Adams). + +;; The link color of symbols - referencing their builtin documentation +;; - is distinct from links which are referencing further Info +;; documentation. + +;; Below code is checking if Info documents are relevant Elisp and +;; Emacs related files to avoid false positives. Please see the +;; customization variable `info-none-emacs-or-elisp-documents'. + +;; The code uses mostly mechanisms from Emacs' lisp/help-mode.el file. + + +;;; Code: + +(require 'button) +(require 'cl-lib) +(require 'help-mode) +(require 'cl-seq) +(require 'subr-x) + +(defcustom info-make-xref-flag t + "Non-nil means Emacs creates symbol links in info buffers. +Please see the function `info-make-xrefs' for further +information." + :type '(choice (const :tag "Create links" t) + (const :tag "Do not link" nil)) + :version "30.1" + :group 'info) + +;; Toggle on or off the linking to help documents +(when info-make-xref-flag + (add-hook 'Info-selection-hook 'info-make-xrefs)) + +(defvar info-emacs-info-dir-content nil + "List of file names in Emacs' info directories. +It is used to check if the current info file `Info-current-file' +belongs to the Emacs and Elisp context. This variable will be +initialised when opening the first info file.") + +;; Turn better into a regexp list? Hint: Stefan Monier or switch to +;; alists with an explanation of file name? +(defcustom info-none-emacs-or-elisp-documents + '("aarm2012" ; Stefan: Ada manual, Elpa archive + "arm2012" ; Stefan: Ada manual + "sicp" ; T.V: Structure and Interpretation of Computer Programs, + ; Melpa archive + ) + "List of (known) documentation which is not related to GNU Emacs or Elis= p. +As well as documents which should not be searched for linking to +help documentation, for more details please see +`info-check-docu-p'. The list must contain only the base name of +files, without the file extension \".info\"." + :type '(repeat string) + :version "30.1" + :group 'info) + +(defun info-check-docu-p () + "Check if the current info file is relevant to Emacs or Elisp. +That means `Info-current-file' is either found in Emacs' info/ +directory or in `package-user-dir' and is not included in the +`info-none-emacs-or-elisp-documents' list." + (unless info-emacs-info-dir-content + (info-compile-emacs-info-dir-content)) + (let* ((ifile Info-current-file) + (ifi (when ifile + (file-name-sans-extension + (file-name-nondirectory ifile)))) + (pdir (when (boundp 'package-user-dir) + (expand-file-name + package-user-dir))) + ;; Check if checking pdir is redundant because Package adds + ;; info package folders to Info-directory-list anyway? + (ifiles info-emacs-info-dir-content) + (ndocu info-none-emacs-or-elisp-documents) + (is-info (and ifile + (or (assoc-string (concat ifi ".info") ifiles) + ;; the top info "dir" file + (assoc-string (concat ifi ".info.gz") ifiles) + ;; info files might be archived! + (when pdir (string-match pdir ifile))) + (not (assoc-string ifi ndocu))))) + (unless is-info + (message "No Emacs related info file: %s." ifile)) + is-info)) + +(defvar describe-symbol-backends) ;from help-mode.el +(defvar help-xref-following) ;dito + +(defface info-color + '((t (:inherit font-lock-doc-face + ;; font-lock-preprocessor-face ; similar to link face (de= fault) + ;; font-lock-builtin-face ; similar (default Emacs) + ;; font-lock-function-name-face ; similar (default) + ;; info-face + ))) + "Face for the `symbol' reference items in `info' nodes." + :group 'info-colors) + +;; Button types +(define-button-type 'info + 'link t ;for Info-next-reference-or-link + 'follow-link t + 'face 'info-color + 'action #'info-button-action) + +(define-button-type 'info-function + :supertype 'info + 'info-function 'describe-function + 'info-echo (purecopy "mouse-2, RET: describe this function")) + +(define-button-type 'info-variable + :supertype 'info + 'info-function 'describe-variable + 'info-echo (purecopy "mouse-2, RET: describe this variable")) + +(define-button-type 'info-face + :supertype 'info + 'info-function 'describe-face + 'info-echo (purecopy "mouse-2, RET: describe this face")) + +(define-button-type 'info-symbol + :supertype 'info + 'info-function #'describe-symbol + 'info-echo (purecopy "mouse-2, RET: describe this symbol")) + +(define-button-type 'info-function-def + :supertype 'info + 'info-function (lambda (fun &optional file type) + (or file + (setq file (find-lisp-object-file-name fun type))) + (if (not file) + (message "Unable to find defining file") + (require 'find-func) + (when (eq file 'C-source) + (setq file + (help-C-file-name (indirect-function fun) 'fu= n))) + ;; Don't use find-function-noselect because it follows + ;; aliases (which fails for built-in functions). + (let ((location + (find-function-search-for-symbol fun type file= ))) + (pop-to-buffer (car location)) + (run-hooks 'find-function-after-hook) + (if (cdr location) + (goto-char (cdr location)) + (message "Unable to find location in file"))))) + 'info-echo (purecopy "mouse-2, RET: find function's definition")) + +;; Functions + +(defun info-compile-emacs-info-dir-content () + "Build a list of file names from Emacs' info directories. +This function fills `info-emacs-info-dir-content' with files from +`Info-directory-list'." + (setq info-emacs-info-dir-content + (mapcar 'file-name-nondirectory ;'file-name-sans-extension + (directory-files + (car + ;; search for the main Emacs' info/ directory, when this + ;; function is called Info-directory-list is already + ;; initialised + (cl-member "[^.]emacs" Info-directory-list :test + 'string-match-p)) + ;; don't list "." and ".." + t "[^.]$")))) + +(defun info-button-action (button) + "Call BUTTON's help function." + (info-do-xref nil + (button-get button 'info-function) + (button-get button 'info-args))) + +(defun info-do-xref (_pos function args) + "Call the help cross-reference function FUNCTION with args ARGS. +Things are set up properly so that the resulting `help-buffer' has +a proper [back] button." + ;; There is a reference at point. Follow it. + (let ((help-xref-following nil)) + (apply + function (if (eq function 'info) + (append args (list (generate-new-buffer-name "*info*")))= args)))) + +(defun info-button (match-number type &rest args) + "Make a hyperlink for cross-reference text previously matched. +MATCH-NUMBER is the subexpression of interest in the last matched +regexp. TYPE is the type of button to use. Any remaining arguments are +passed to the button's info-function when it is invoked. +See `info-make-xrefs' Don't forget ARGS." + ;; Don't munge properties we've added, especially in some instances. + (unless (button-at (match-beginning match-number)) + ;; (message "Creating button: %s." args) + (make-text-button (match-beginning match-number) + (match-end match-number) + 'type type 'info-args args))) + +(defvar info-symbol-context + '(( variable . "variable\\|option") + ( function . "function\\|command\\|call") + ( face . "face") + ( ignore . "symbol\\|program\\|property") + ;; ignore symbols following this context type + ( definition . "source \\(?:code \\)?\\(?:of\\|for\\)")) + ;; function definitions in files + "This list helps to distinguish symbol types. +Words in info documentation preceding a (quoted) symbol are used +to distinguish variables, functions, faces and symbols. The +context information can also be used to ignore symbols because +there is no help documentation for them. The strings of the the +list are becoming part of `info-symbol-regexp'.") + +(defvar info-symbol-regexp + ;; use purecopy? + (concat + "\\(" ; Context start + "\\<\\(" ; Contex type definition + (string-remove-suffix + "\\|" + (mapconcat + (lambda (x) (concat "\\(" (cdr x) "\\)\\|")) + info-symbol-context "")) + "\\)" ; Context type definition end + "[ \t\n]+" ; Separators to quoted symbols + "\\)?" ; End of context + ;; quoted symbol + "['`=E2=80=98]" ; opening quotes + ;; Note: Symbol starting with word-syntax character: + "\\(\\sw\\(\\sw\\|\\s_\\)+\\|`\\)" ; The symbol itself + "['=E2=80=99]" ; End quotes + ) + "The regular expression for matching symbols to their help documentation. +It is comprised of the symbol's context and the (quoted) symbol +name. The various groups of context regular expressions are +matched in `info-make-xrefs' to distinct info buttons.") + +(defun info-check-type( type) + "Check if TYPE corresponds to the current search result. +The function is used in `info-make-xrefs'." + (let* ((isc info-symbol-context) + (n 3) ;embedded within 2 groups + (l (+ 3 (length isc)))) + (while (and (not (eq type (caar isc) ) ) (< n l) ) + (setq n (1+ n)) + (setq isc (cdr isc))) + (match-string n))) + + +;;;###autoload +(defun info-make-xrefs (&optional buffer) + "Parse and hyperlink documentation cross-references in the given BUFFER. +Find cross-reference information in a buffer and activate such +cross references for selection with `help-follow'. The current +buffer is processed if the BUFFER argument is omitted. + + Cross-references have the canonical (quoted) form `symbol-name' +and the type of reference may be disambiguated by the preceding +word(s) as compiled in `info-symbol-regexp'. For example: Symbol +names are receiving distinct variable buttons when preceeded by +the words \"variable\" or \"option\". + +Variables are also detected when their names follow below form: + + -- User Option: variable-name + -- Variable: ... + +Function names are also detected when prefixed by `M-x`, for +example `M-x function-name` or are quoted and prefixed like `M-x +function-name`. + +Function names are detected, as well, when appearing behind the +following forms, which occur - for example - in the Elisp manual: + + -- Special Form: function-name + -- Command: ... + -- Function: ... + -- Macro: ... + +The linking is similar to mechanisms from lisp/help.el." + (interactive "b") + (when (info-check-docu-p) + (with-current-buffer (or buffer (current-buffer)) + (save-excursion + (goto-char (point-min)) + (with-silent-modifications ;hint from Stefan + (let ((case-fold-search t) + (inhibit-read-only t)) + (with-syntax-table emacs-lisp-mode-syntax-table + ;; Quoted symbols + (save-excursion + (while (re-search-forward info-symbol-regexp nil t) + (let* ((data (match-string (+ 3 (length info-symbol-cont= ext)))) + (sym (intern-soft data))) + (if sym + (cond + ((info-check-type 'variable) + (and (or (boundp sym) + (get sym 'variable-documentation)) + (info-button 8 'info-variable sym))) + ((info-check-type 'function) + (and (fboundp sym) + (info-button 8 'info-function sym))) + ((info-check-type 'face) + (and (facep sym) + (info-button 8 'info-face sym))) + ((info-check-type 'ignore)) + ((info-check-type 'definition) + (info-button 8 'info-function-def sym)) + ;; symbols + ((cl-some (lambda (x) (funcall (nth 1 x) sym)) + describe-symbol-backends) + (info-button 8 'info-symbol sym))))))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; (info "(elisp) Eval") + ;; Elisp manual -- Special Form: + ;; -- Command: + ;; -- Function: function-name function + ;; -- Macro: + (save-excursion + (while (re-search-forward + "-- \\(Special Form:\\|Command:\\|Function:\\|Macr= o:\\) " + nil t) + (looking-at "\\(\\sw\\|\\s_\\)+") + (let ((sym (intern-soft (match-string 0)))) + (if (fboundp sym) + (info-button 0 'info-function sym))))) + ;; -- User Option: + ;; -- Variable: variable-name + (save-excursion + (while (re-search-forward + "-- \\(User Option:\\|Variable:\\) " + nil t) + (looking-at "\\(\\sw\\|\\s_\\)+") + (let ((sym (intern-soft (match-string 0)))) + (if (boundp sym) + (info-button 0 'info-variable sym))))) + ;; M-x prefixed functions + (save-excursion + (while (re-search-forward + ;; Assume command name is only word and symbol + ;; characters to get things like `use M-x foo->bar= '. + ;; Command required to end with word constituent + ;; to avoid `.' at end of a sentence. + ;; "\\<M-x\\s-+\\(\\sw\\(\\sw\\|\\s_\\)*\\sw\\)" n= il t) + ;; include M-x and quotes + "['`=E2=80=98]?M-x\\s-*\n?\\(\\sw\\(\\sw\\|\\s_\\)= *\\sw\\)['=E2=80=99]?" nil t) + (let ((sym (intern-soft (match-string 1)))) + (if (fboundp sym) + (info-button 1 'info-function sym)))))))))))) + (provide 'info) =20 ;;; info.el ends here --=20 2.34.1 --=-=-= Content-Type: text/plain -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 14 Jan 2023 07:12:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 14 02:12:52 2023 Received: from localhost ([127.0.0.1]:53088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pGaii-0007cl-5x for submit <at> debbugs.gnu.org; Sat, 14 Jan 2023 02:12:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33308) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pGaig-0007cY-EN for 60587 <at> debbugs.gnu.org; Sat, 14 Jan 2023 02:12:50 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pGaia-00049j-3d; Sat, 14 Jan 2023 02:12:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=/FpdTe1cFmZsKEEjFdt+gz898IFKnU6TfN0p+sROG5s=; b=aUVbE1NiMwEh CJub4+kPnHXwwliokTU0HLnmUD2aIVIBlSrzGN/zeIwX+Oj7mn+4/0OY03t3KMoIzlSCpbZEFkKnB f4XZMfijhq1sfvfXAiO3hVefm9nWwy33xETZUBAwnTlP30BKElJ2+UJrmgrtTBCIAOE7mAadqzRNO RHs2MleviFbqpVSfjqzXuusbnTS+69HSQihVhOPDY8CDAbLgGZkf//FErnuMMf5aLUlZB88MUeTof YNMAOLk3PL1frGFKRwNaxcYl0B06Zc62lX8WupAmv0PB8rZrSYgPpHLn3+eEVAvrlME6pFYseEoVt 8HpKn5EKVlcHzAYKX/mYmw==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pGaiX-00083q-Lh; Sat, 14 Jan 2023 02:12:43 -0500 Date: Sat, 14 Jan 2023 09:12:42 +0200 Message-Id: <83sfgd8u8l.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN> In-Reply-To: <867cxqui0w.fsf@HIDDEN> (dieter@HIDDEN) Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <867cxqui0w.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "H. Dieter Wilhelm" <dieter@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, 60587 <at> debbugs.gnu.org > Date: Sat, 14 Jan 2023 00:33:19 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> +(require 'button) > >> +(require 'cl-lib) > >> +(require 'help-mode) ;redundant? > > > > If this is added to an existing file, there should be a ^L and some > > heading-style command before it. > > I had a look at the usage of ^L in info.el but I can't discern any rule > or consistency. The number of lines between its page delimiters are > over 900 and below 20. I assume you want me to use ^L to separate a > different topic within info.el? Yes. This has nothing to do with the size of each topic's code. > > Can this be rewritten so as to avoid the need for error-prone updates > > of the sub-expression numbers every time Info-xref-symbol-regexp is > > modified? > > What do you think about the following approach? Something like that, yes. However, ... > (defcustom info-symbol-context > '(( variable . "variable\\|option") > ;; defining symbol as variable > ( function . "function\\|command\\|call") > ;; defining symbol as function > ( face . "face") > ;; defining symbol as face > ( ignore . "symbol\\|program\\|property") > ;; ignore symbols following this context type > ( definition . "source \\(?:code \\)?\\(?:of\\|for\\)")) > ;; function definitions in files > "Help." > :type 'list > :version "30.1" > :group 'info) I'm not sure this should be a defcustom. Do we really expect users to want to customize this? for what reason(s)?
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 13 Jan 2023 23:33:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 13 18:33:34 2023 Received: from localhost ([127.0.0.1]:52689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pGTYD-0008Vx-Lr for submit <at> debbugs.gnu.org; Fri, 13 Jan 2023 18:33:34 -0500 Received: from mout.kundenserver.de ([212.227.17.24]:32943) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pGTYB-0008Vj-FS for 60587 <at> debbugs.gnu.org; Fri, 13 Jan 2023 18:33:32 -0500 Received: from ping ([109.250.147.186]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MKsax-1p1pTo1ttd-00LGWI; Sat, 14 Jan 2023 00:33:21 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> Date: Sat, 14 Jan 2023 00:33:19 +0100 In-Reply-To: <83h6x2u74b.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 07 Jan 2023 09:38:28 +0200") Message-ID: <867cxqui0w.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Lkr8Q5u5QNBHy/B6/eeUHwUnQ/ryhAEcbjJjBFLm0A8b3/GL91V 0tRi/+LdIo2wXpULCg2D34Z3/YZn31Y/CDbmHOU1aQPqUboqC+gs2L66HrI5GHRJ/xes15u 3lgtUJF01lIzS1ZzncR6BnJ6YS311/sTdv0wE/yoL0Z76bLBJZfTbiog4xffskCn+ZgGdOO PXJzsutWZ61+JEQLiqiKA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:GPR0p3Y5iNY=;f5VVTHTNhPNXcU8lPgkfaXH6LJL CiR+KF9/zxBl3PENl8e4xXNq86v0gCFfvcSfzwfqXjgLsGLfRv/BuUyXRbBXymku0FBw5dQap fDHoXg32S7EjZpQy0QYlj50NslyMOUXyXxGOrqQBBsiR/HDAvCELi+WhsLUcxN8nVjkEeqHAL xGM9qornYV/XAsPtYQZIfmndBuTbyedWLwpuuqiWsgRj0JAP97JpoVZtCt4Wn2+5KsmV2lg2e PlSTZ6PZyXlXOQJn+rRQRmyvDw2cClPhHcvVoYY9B+r0n1UXQH2rIDvsoM61cP7AYO8/bh/Ny /dk14ru5UM/DrqEpnX2SrP90evN9pjs1x795rEzNwtpT+PdyeVYPdqkcdr8QcJvKjp7KrcWPx A4tYB+1EowEHLaeQ4oLQCSA4GntgGqcpgMTcZr1d5nj6dbksGd+3BhBa843JGtJrME3tDmEdu 0P9Ck55vHWf6ru0Cgir8CD7ivKsQAVYyeWMDyUB/mgX/3640Aqc83VO0g+8lUsuRzhRjMgzVQ uPqW7NnQLFIi8luH5OccJ57I4O0LFis+KyFNWtuoZNj2VWRfqEKkSJJD1EIsJrzvRDK65kIry d6xXl8a4uxImrD+SE0HX3mkoPqBJ9fFklmDUZO5M2Jo1/NDckAofIu74FhcU8xmLfaJiBPHek oS+8au6aJZksWgjaVwz/aTMOOvJAnJFsFBYqIOMj4w== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> +(require 'button) >> +(require 'cl-lib) >> +(require 'help-mode) ;redundant? > > If this is added to an existing file, there should be a ^L and some > heading-style command before it. I had a look at the usage of ^L in info.el but I can't discern any rule or consistency. The number of lines between its page delimiters are over 900 and below 20. I assume you want me to use ^L to separate a different topic within info.el? >> + (while (re-search-forward Info-xref-symbol-regexp nil t) >> + (let* ((data (match-string 8)) >> + (sym (intern-soft data))) >> + (if sym >> + (cond >> + ((match-string 3) ; `variable' &c >> + (and (or (boundp sym) ; `variable' doesn't en= sure >> + ; it's actually bound >> + (get sym 'variable-documentation)) >> + (Info-xref-button 8 'Info-xref-variable = sym))) >> + ((match-string 4) ; `function' &c >> + (and (fboundp sym) ; similarly >> + (Info-xref-button 8 'Info-xref-function = sym))) >> + ((match-string 5) ; `face' >> + (and (facep sym) >> + (Info-xref-button 8 'Info-xref-face sym)= )) >> + ((match-string 6)) ; nothing for `symbol' >> + ((match-string 7) >> + (Info-xref-button 8 'Info-xref-function-def s= ym)) >> + ((cl-some (lambda (x) (funcall (nth 1 x) sym)) >> + describe-symbol-backends) >> + (Info-xref-button 8 'Info-xref-symbol sym))))= ))) > > Can this be rewritten so as to avoid the need for error-prone updates > of the sub-expression numbers every time Info-xref-symbol-regexp is > modified? What do you think about the following approach? (defcustom info-symbol-context '(( variable . "variable\\|option") ;; defining symbol as variable ( function . "function\\|command\\|call") ;; defining symbol as function ( face . "face") ;; defining symbol as face ( ignore . "symbol\\|program\\|property") ;; ignore symbols following this context type ( definition . "source \\(?:code \\)?\\(?:of\\|for\\)")) ;; function definitions in files "Help." :type 'list :version "30.1" :group 'info) ;; Assembling the complete regexp (defvar info-symbol-regexp (concat ;; context "\\(" ; ---- context start "\\<\\(" ; contex definition (string-remove-suffix "\\|" (mapconcat (lambda (x) (concat "\\(" (cdr x) "\\)\\|")) info-symbol-context "")) "\\)" ; --- definition end "[ \t\n]+" ; --- separators to quoted symbols "\\)?" ;; ---- end of context ;; quoted symbol "['`=E2=80=98]" ; start quotes ;; Note: symbol starting with word-syntax character: "\\(\\sw\\(\\sw\\|\\s_\\)+\\|`\\)" ; symbol "['=E2=80=99]" ; end quotes ) "Help.") ;; helper function (defun info-check-type( type) "Check if TYPE corresponds to the current search result. `match-string'." (let ((ictr info-symbol-regexp) (n 3) ;embedded within 2 groups ) (while (not (eq type (caar ictr))) (setq n (1+ n)) (setq ictr (cdr ictr))) (match-string n) )) ;;Here comes the function creating links ;;.... (while (re-search-forward info-symbol-regexp nil t) (let* ((data (match-string 8)) (sym (intern-soft data))) (if sym (cond ((info-check-type 'variable) (and (or (boundp sym) (get sym 'variable-documentation)) (info-button 8 'info-variable sym))) ((info-check-type 'function) (and (fboundp sym) (info-button 8 'info-function sym))) ((info-check-type 'face) (and (facep sym) (info-button 8 'info-face sym))) ((info-check-type 'ignore)) ((info-check-type 'definition) (info-button 8 'info-function-def sym)) ;;=20 ((cl-some (lambda (x) (funcall (nth 1 x) sym)) describe-symbol-backends) (info-button 8 'info-symbol sym))))))) --=20 Best wishes H. Dieter Wilhelm Zwingenberg, Germany
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 9 Jan 2023 20:01:22 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 09 15:01:22 2023 Received: from localhost ([127.0.0.1]:38259 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pEyKf-0008G3-Fz for submit <at> debbugs.gnu.org; Mon, 09 Jan 2023 15:01:21 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:40519) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pEyKd-0008Fo-EY for 60587 <at> debbugs.gnu.org; Mon, 09 Jan 2023 15:01:20 -0500 Received: from ping ([109.250.146.158]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mq2rM-1oTCzf3zSE-00n9Ot; Mon, 09 Jan 2023 21:01:10 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <86pmbovljq.fsf@HIDDEN> <835ydfq3iq.fsf@HIDDEN> Date: Mon, 09 Jan 2023 21:01:08 +0100 In-Reply-To: <835ydfq3iq.fsf@HIDDEN> (Eli Zaretskii's message of "Mon, 09 Jan 2023 14:46:37 +0200") Message-ID: <86ilhfv5ob.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:AWwFRml1sW/60VxOTsTYIReEJ3k4yH073ReWxYze+PzmWh+aM+L CT8TXVyonTE/egq6Y0lqfZpZrevLT+ZNEGsAUIMdj8EwWT0VRlyWtpjhQtJmMiOazhfIZh2 VUXbDXFBMi2RS8rdVcy1039O2yXb2Qahv2bqSJLOJyLIu+E7jlItnYVwsMiPKzV5KWaiLPq WaLaOpVgO3Yl+jENNWatg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:E0X4NWCk1oI=;9i4xGDzTXs13RsBIoef236OiKCC 55BiTBtTePnSBib36ISWdLwE5nQo8UPEvBYkJnuW3oBNKn6VrdN/rPy6hPbKhrXpSE6FZSkn5 oECU9gGmPtD2cIBK64z7JjIM2l0i0lEYfMiB5yKC045FRoYkdS2m9WPgBLtWH3tk7duxz614f 3kPGv0BkA6vOf1dKDwa/ZJZDpRhsQpRKk5ufaGXv3jmxrBW+Jp8zzlZw6ZeCr5Q56EQuyT+/e 6nmIPA5yvD1MkE5xzxS52bEiZNfMJQdYA79A9IkYQmrQ7XqoQ+PHtnvy9SiOGZ/a9ZYU/nkkG /S25/aVi8G7azKgu09vRlHNsDxPAENfXY/meL0siX2Gs2zXpOjQdC/tu2MgyBd5yak7JVyXeY fR6vpmRIUJlUG3+p6YnOvQ3mu+OVhMkbXMrfHj2DxYzdwmTw7cEKGYq8x+/BeLe0Nsu/r+VmI 30rDNk4GArxr/hAyddwvUzEi7pktk7bvJ77lRJM2xtTv4o+kUvGi4hRiBP0rgo/t6hpgSn502 /FMN9lbs0IVqmPvn5hfYRB/CwO/4APQnDFrzvoBVzXyqdy2/RYG+OVeZsP9I+v0S1CNUXSGfJ JgIsuB3YxIwkMNtHt2WCjXCqrDlkz2cubKZsfnLlZQH+7eNqzgL9WKbcC8cECfL0znKaH/5zV qOI1in2VQc/AvXA5l5ClSFH+E+mJOy6DNc75u4M+7g== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> >> +(info-initialize) >> > >> > Why do you need to call this? and why on top level? >> >> Because I have no better idea to build info-emacs-info-dir-content >> (maybe dynamically?). With the code below I force the initialisation of >> Info-directory-list. It is used for checking if the current info >> document is relevant to Emacs. > > Info-directory-list starts as nil, so you can test its value. > More generally, this feature displays links in an Info buffer, right? > If an Info buffer is displayed in Emacs, info-initialize was already > called, and you don't need to call it again. That is true. It was not much work to avoid it. :-) >> >> +;; Turn into regexp list necessary? Stefan >> >> +;; Switch to alist with explanation of file name? >> >> +(defcustom info-xref-none-emacs-or-elisp-documents >> >> + '("aarm2012" ; Stefan: Ada manual, Elpa archive >> >> + "arm2012" ; Stefan: Ada manual >> >> + "sicp" ; T.V: Structure and Interpretation of Computer Programs, >> >> + ; Melpa archive >> >> + ) >> >> + "List of all none GNU-Emacs or Elisp documentation. >> >> +Or other documents not to be checked for linking to their help >> >> +documentation. The list must contains only the base name of the >> >> +files (without their file name extension \".info\")." >> >> + :type '(repeat string) >> >> + :group 'info-xref) >> > >> > Not sure what is this about, and what do the names above signify. >> >> This was a discussion on gmane.emacs.devel (please see >> jwvtv0qv5av.fsf-monnier+emacs@HIDDEN) on how to avoid trying to link >> info documents which don't belong to Emacs. (Core-Utils, Ada >> documentation from Melpa, etc.) > > I cannot access that discussion with this URL (can you tell on which > date that happened? then I will look in the emacs-devel list > archives) Please have a look here: https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00994.html (Above is the message-id from 2020-05-08) > , and I don't think I understand how such names will creep > into this feature. Does the code somehow search every Info manual on > the system to do its job? It's not searching, just checking whether Info-current-file has an extension of .info(.gz) (this is redundant on my system but I forgot to document in what circumstances this check might be necessary) and is included in any of the Info-directory-list directories. Since Info-directory-list may contain info files which are not related to Emacs, it checks against the "blacklist" info-none-emacs-or-elisp-documents. E.g. from Elpa there are packages, like sicp (Structure and Interpretation of Computer Programs) in info format. (defun info-check-docu-p () "Check if the current info file is relevant to Emacs. That means `Info-current-file' is either found in Emacs' info/ directory or in `package-user-dir' and is not included in the `info-none-emacs-or-elisp-documents' list." (unless info-emacs-info-dir-content (info-compile-emacs-info-dir-content)) (let* ((ifile Info-current-file) (ifi (when ifile (file-name-sans-extension (file-name-nondirectory ifile)))) (pdir (when (boundp 'package-user-dir) (expand-file-name package-user-dir))) ;; FIXME: Check if pdir is redundant because Package adds ;; info package folders to Info-directory-list anyway (ifiles info-emacs-info-dir-content) (ndocu info-none-emacs-or-elisp-documents)) (and ifile (or (assoc-string (concat ifi ".info") ifiles) ;; info files might be archived! (assoc-string (concat ifi ".info.gz") ifiles) (when pdir (string-match pdir ifile))) (not (assoc-string ifi ndocu))))) -- Best wishes) H. Dieter Wilhelm Zwingenberg, Germany
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 9 Jan 2023 14:25:38 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 09 09:25:38 2023 Received: from localhost ([127.0.0.1]:36068 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pEt5l-00055S-Ly for submit <at> debbugs.gnu.org; Mon, 09 Jan 2023 09:25:38 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <monnier@HIDDEN>) id 1pEt5k-00055G-9r for 60587 <at> debbugs.gnu.org; Mon, 09 Jan 2023 09:25:36 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 85442440C36; Mon, 9 Jan 2023 09:25:30 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id CC8A8440FA5; Mon, 9 Jan 2023 09:25:24 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1673274324; bh=c59rRJdYzxcpan0WuzMxm9t5f2Q1/Yyo+dNfQEAwl/4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=nJUH+5EfFPEd5hhyW335yanvfHw87Oz9SqefzgU6rDn/k/RKEfTe8G829K8DHV3PV on7hQxnTRCSRytJljjbBPT1RV9tnLoHYGNJzgymG1mllFsCyyJEmDqwYdvKf7g6Cep WiUgXD3QeK5AJ7bUACa0LUdpILNTPdCpX0gSLb4IR+NFd2BCKhbsh69nC76A5XAqtf 7Qt5ombkeYLvIaCvorN85jtXiT64mkIjFABecAfzu/zH/s9etgKZRy78HIyyiUWK0i f2OAC8XprYii8EJXBJu71gaG8fYn9KKw4DNoWlSZzY3fiUs/QAlhyfCQalf1WahuFS l4EaLKXtza6tQ== Received: from pastel (unknown [45.72.200.228]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 7451A1201A6; Mon, 9 Jan 2023 09:25:24 -0500 (EST) From: Stefan Monnier <monnier@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <835ydfq3iq.fsf@HIDDEN> (Eli Zaretskii's message of "Mon, 09 Jan 2023 14:46:37 +0200") Message-ID: <jwvh6wz23ea.fsf-monnier+emacs@HIDDEN> References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <86pmbovljq.fsf@HIDDEN> <835ydfq3iq.fsf@HIDDEN> Date: Mon, 09 Jan 2023 09:25:23 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.251 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: "H. Dieter Wilhelm" <dieter@HIDDEN>, 60587 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > I cannot access that discussion with this URL (can you tell on which > date that happened? then I will look in the emacs-devel list > archives), and I don't think I understand how such names will creep > into this feature. Does the code somehow search every Info manual on > the system to do its job? More or less, yes. IIRC it tries to limit itself to ELisp-related manuals by avoiding all the manual except those that are in Emacs's own `info` directory and those that are inside ELPA-installed packages. Hence the list of exceptions being sicp and ada manuals since these can be installed as ELPA packages. Stefan
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 9 Jan 2023 12:46:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 09 07:46:20 2023 Received: from localhost ([127.0.0.1]:35993 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pErXg-00005R-2R for submit <at> debbugs.gnu.org; Mon, 09 Jan 2023 07:46:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33660) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pErXe-000058-12 for 60587 <at> debbugs.gnu.org; Mon, 09 Jan 2023 07:46:18 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pErXY-0005O4-C2; Mon, 09 Jan 2023 07:46:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=o80Wj/54ecas1gX9nrN6RGSRyDY22c5PRmaPytXk2kM=; b=lhSdUGU05FQ7 zSng0/SHUBbXrgs8muG6wcUzFsGFsKqwUn47d35WtUh9IWdnsMZjrE66q5gkaNXynVje3LsXcz3kJ MVqc62x1vIN4fz8a9T2kFhBJ3fLA+iyEuDg3IZFVXR57tJtuzhhRigmfhJDiuuIdkeMenNwDQ7dwO MOvtmtemMjmy30beR/MMEsfwAkS2opkVoaGkQ2DrfHbjcFb3JlMkGQCR6DCnkTQdTSfNcs0yZ7/OW 4qzm41d0oY78MZDmCxxoeMDbRUp4MT6RnNZYRH5crQ2vIn4hHHouwWcQU74QugF2SifEN9xpGn6UI L4RSlPUizpGMxXtzKO7QeA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pErXX-0000dZ-NJ; Mon, 09 Jan 2023 07:46:12 -0500 Date: Mon, 09 Jan 2023 14:46:37 +0200 Message-Id: <835ydfq3iq.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN> In-Reply-To: <86pmbovljq.fsf@HIDDEN> (dieter@HIDDEN) Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> <86pmbovljq.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "H. Dieter Wilhelm" <dieter@HIDDEN> > Cc: Stefan Monnier <monnier@HIDDEN>, 60587 <at> debbugs.gnu.org > Date: Sun, 08 Jan 2023 21:06:01 +0100 > > >> +(info-initialize) > > > > Why do you need to call this? and why on top level? > > Because I have no better idea to build info-emacs-info-dir-content > (maybe dynamically?). With the code below I force the initialisation of > Info-directory-list. It is used for checking if the current info > document is relevant to Emacs. Info-directory-list starts as nil, so you can test its value. More generally, this feature displays links in an Info buffer, right? If an Info buffer is displayed in Emacs, info-initialize was already called, and you don't need to call it again. > >> +;; Turn into regexp list necessary? Stefan > >> +;; Switch to alist with explanation of file name? > >> +(defcustom info-xref-none-emacs-or-elisp-documents > >> + '("aarm2012" ; Stefan: Ada manual, Elpa archive > >> + "arm2012" ; Stefan: Ada manual > >> + "sicp" ; T.V: Structure and Interpretation of Computer Programs, > >> + ; Melpa archive > >> + ) > >> + "List of all none GNU-Emacs or Elisp documentation. > >> +Or other documents not to be checked for linking to their help > >> +documentation. The list must contains only the base name of the > >> +files (without their file name extension \".info\")." > >> + :type '(repeat string) > >> + :group 'info-xref) > > > > Not sure what is this about, and what do the names above signify. > > This was a discussion on gmane.emacs.devel (please see > jwvtv0qv5av.fsf-monnier+emacs@HIDDEN) on how to avoid trying to link > info documents which don't belong to Emacs. (Core-Utils, Ada > documentation from Melpa, etc.) I cannot access that discussion with this URL (can you tell on which date that happened? then I will look in the emacs-devel list archives), and I don't think I understand how such names will creep into this feature. Does the code somehow search every Info manual on the system to do its job?
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 8 Jan 2023 20:06:18 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 08 15:06:18 2023 Received: from localhost ([127.0.0.1]:34767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pEbvt-0007Hz-Gx for submit <at> debbugs.gnu.org; Sun, 08 Jan 2023 15:06:18 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:36373) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pEbvq-0007Hl-Vg for 60587 <at> debbugs.gnu.org; Sun, 08 Jan 2023 15:06:16 -0500 Received: from ping ([109.250.146.158]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M894P-1p9P0J3ESh-005LCC; Sun, 08 Jan 2023 21:06:05 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#60587: Patch for adding links to symbols' help documentation In-Reply-To: <83h6x2u74b.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 07 Jan 2023 09:38:28 +0200") References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> <83h6x2u74b.fsf@HIDDEN> Date: Sun, 08 Jan 2023 21:06:01 +0100 Message-ID: <86pmbovljq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:b1BUZ8md6lT//6XwrT5ywjLokYTdv+aakDdmEjw+GPwUgRmCjj3 hZu/WZT0AZXyx6og+729GnpRsTjelrVFfKDuAdKab1qUaK+djujA5ygh5Te/22+3XY6OQhi ALl/FNcqN4IseIr59mAH4mPCmqRcs7AmyItqVlqeaB5JxoO1LSL6DLQeRAJ5qlKlOaz38iF 22kSFwcDKSTzWQJO87Thg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:+A0iS+cW4eI=;tEu6Y7h+/GCTgqSjFiB8kwTob9A MYt9VrBU5oG+PvFeAamTPGxDX/6tA7cUUr4PK3f98qg0zukNH3RddVqa7X70IFxjJGzeeC9nd 25tvbGH/4k9J6NItTezLuAsIMMB1qfe8vNZyI93Jcg1EU3OPU6ZagZxxgmEacHqEiEdnBNyuq YS06g6VgmVkwlxkcj7Yg4jSwjfC9+r43jm/wNl8yzv4oTNH/88PgEkCa3xbv+aqqCKJQcs1jo Ewcz2ePaKIVirjp68WddC5CegpiC7Eo0TnBEL0zZ9XcgaCKY3Gee/nUS7gbp001PykG+xWUAg aMpwX6RtK/gi3Ntx/sqsMwHpmDJqBW1WUMn/sYjGcjNe3HbCdGzb9wsL3fHsS3njmik4Ndkv4 Cp9NwXggayMHfAbjWYJut2CT+QBStHL0U4x2omKtmyOZZWiJ6OIHXfo0CsSF+fMwe9VfrHJmS eL7o249xHK72ls+KZgzx0VuOBwMTG+i5f4A28ecW+fa6jfZvcLxWPMn//SOZm21oPwQxvtj9U Cu/nOeJSd0rP/x6ewajz1N7Yxu0ETlLlk3m0CiKpDfFiiZELN4kU5JNXtTadSJlPms+uUMPcJ hcOZFDPb5f3sHn48dKOM6qhZAPHoQBx80cJprHMVdRO/oasVzsuEpRiOb69CmBZ4nhp2MNFYq eOz6/DLHmBB0CqK5MZjSV/I4RvEu4xAmqPvx9d4KVzNE6HaCsVcRar10aOU1+/E= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Eli Zaretskii <eliz@HIDDEN> writes: >> From: "H. Dieter Wilhelm" <dieter@HIDDEN> >> Date: Fri, 06 Jan 2023 20:03:23 +0100 >> >> I attached a patch for the current master branch build from git >> format-patch. And spliced the code to implement the linking of symbols >> in info manuals to the help documentation into lisp/info-xref.el. > > Thanks. No, thank you. It's a pleasure to read your comments. > I think this should be in info.el, or maybe in a separate > info-SOMETHING.el file. info-xref.el is for a certain job, of > interest primarily to Emacs maintainers, that is different from this > one, and I'm not sure conflating them is TRT. Understood, it's now located in info.el. >> +;; This library provides links of symbols (functions, variables, > > The "This library" part is a remnant of the previous life of this > code, and should be reworded to refer to specific command(s). Done. (I'm sorry, I should have reviewed first this code from 2020.) >> +;; In any case all symbol names must be known to Emacs, i.e. their >> +;; names are found in the variable `obarray'. > > I think a more useful way of saying this is > > In any case, the symbol must be known to Emacs, which means it is > either a built-in, or its Lisp package is loaded in the current > Emacs session, or the symbol is auto-loaded. Absolutely, done >> +;; Inform is checking if the Info documents are relevant Elisp and > ^^^^^^ > This should be adapted to the "new life" of Inform as part of Emacs. Done >> +;; Emacs related files to avoid false positives. Please see the >> +;; customization variable `inform-none-emacs-or-elisp-documents'. > ^^^^^^ > And this. Done >> +;;; Change Log: >> + >> ... >> +;; (`font-lock-function-name-face') > > Not sure if it makes sense to keep this change log. Agreed and removed >> +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> +;; Does the following belong to customize.el? >> .... >> +;;; Ideas: >> +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > > Please review this part and decide which portions should be kept, > perhaps after a suitable rewording, and which should be removed. I removed above blather and kept it as private notes. >> +(require 'button) >> +(require 'cl-lib) >> +(require 'help-mode) ;redundant? > > If this is added to an existing file, there should be a ^L and some > heading-style command before it. Sure, please let me learn about the application of "page markers" first. >> +;; activate inform without manually loading it. Is there a better way? >> +;; ;;;###autoload (require 'info-xref) >> >> +;; this is spawning lisp/info-xref.el's definition to 'info! This >> +;; group is sorted now in 'docs and 'info! -FIXME- > > Comments should start with a capital letter. Done >> +;;;###autoload >> +(defcustom info-xref-make-xref-flag t >> + "Non-nil means create symbol links in info buffers." >> + :type '(choice (const :tag "Create links" t) >> + (const :tag "Do not link" nil)) >> + :group 'info-xref) > > I think we frown on autoloading defcustoms. Removed it, I think above is redundant when the code resides in info.el, anyway. > Also, every new defcustom should have a :version tag. Done >> +;; Info-director-list must be initialised > ^^^^^^^^ > Typo. Also, comments should be complete sentences, and end with a > period (here and elsewhere in the patch). Done (I should have run checkdoc first, uuups there are lots of warnings from the other code in info.el.) >> +(info-initialize) > > Why do you need to call this? and why on top level? Because I have no better idea to build info-emacs-info-dir-content (maybe dynamically?). With the code below I force the initialisation of Info-directory-list. It is used for checking if the current info document is relevant to Emacs. ;; We need to initalise Info-directory-list first. (info-initialize) ;; Before declaring the following variable: (defvar info-emacs-info-dir-content (mapcar 'file-name-nondirectory ;'file-name-sans-extension (directory-files (car ;; search for the main Emacs' info/ directory (cl-member "[^.]emacs" Info-directory-list :test 'string-match-p)) ;; don't list "." and ".." t "[^.]$")) "List of file names in Emacs' own info/ directory.") >> +;; Turn into regexp list necessary? Stefan >> +;; Switch to alist with explanation of file name? >> +(defcustom info-xref-none-emacs-or-elisp-documents >> + '("aarm2012" ; Stefan: Ada manual, Elpa archive >> + "arm2012" ; Stefan: Ada manual >> + "sicp" ; T.V: Structure and Interpretation of Computer Programs, >> + ; Melpa archive >> + ) >> + "List of all none GNU-Emacs or Elisp documentation. >> +Or other documents not to be checked for linking to their help >> +documentation. The list must contains only the base name of the >> +files (without their file name extension \".info\")." >> + :type '(repeat string) >> + :group 'info-xref) > > Not sure what is this about, and what do the names above signify. This was a discussion on gmane.emacs.devel (please see jwvtv0qv5av.fsf-monnier+emacs@HIDDEN) on how to avoid trying to link info documents which don't belong to Emacs. (Core-Utils, Ada documentation from Melpa, etc.) > There are also typos: "none GNU-Emacs", "must contains". Done. >> +(defun Info-xref-make-xrefs (&optional buffer) >> + "Parse and hyperlink documentation cross-references in the given BUFFER. > > The doc string should tell what happens if BUFFER is omitted or nil. Thank you, I'll take care about it. >> + (while (re-search-forward Info-xref-symbol-regexp nil t) >> + (let* ((data (match-string 8)) >> + (sym (intern-soft data))) >> + (if sym >> + (cond >> + ((match-string 3) ; `variable' &c >> + (and (or (boundp sym) ; `variable' doesn't ensure >> + ; it's actually bound >> + (get sym 'variable-documentation)) >> + (Info-xref-button 8 'Info-xref-variable sym))) >> + ((match-string 4) ; `function' &c >> + (and (fboundp sym) ; similarly >> + (Info-xref-button 8 'Info-xref-function sym))) >> + ((match-string 5) ; `face' >> + (and (facep sym) >> + (Info-xref-button 8 'Info-xref-face sym))) >> + ((match-string 6)) ; nothing for `symbol' >> + ((match-string 7) >> + (Info-xref-button 8 'Info-xref-function-def sym)) >> + ((cl-some (lambda (x) (funcall (nth 1 x) sym)) >> + describe-symbol-backends) >> + (Info-xref-button 8 'Info-xref-symbol sym))))))) > > Can this be rewritten so as to avoid the need for error-prone updates > of the sub-expression numbers every time Info-xref-symbol-regexp is > modified? I'll try later, took note. > Finally, this needs additions to the user manual and NEWS. Alright, I took a note for working on this. Thank you :-) --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=info.patch Content-Transfer-Encoding: quoted-printable diff --git a/lisp/info.el b/lisp/info.el index 035dff66e75..f7153af5b26 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -5510,6 +5510,339 @@ info--manual-names Info-directory-list (mapcar #'car Info-suffix-list)))))))) =20 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; This code below provides links of symbols (functions, variables, +;; faces) within Emacs' Info viewer to their builtin help +;; documentation. This linking is done, when the symbol names in +;; texinfo documentations (like the Emacs- and Elisp manual) are + +;; 1. Quoted symbol names like `quoted-symbol' or: + +;; 2. Function names are prefixed by M-x, for example M-x +;; function-name or are quoted and prefixed like `M-x function-name'. + +;; 3. Function names appearing behind the following forms, which +;; occur, for example, in the Elisp manual: + +;; -- Special Form: function-name +;; -- Command: ... +;; -- Function: ... +;; -- Macro: ... + +;; 4. And variables names behind the following text: + +;; -- User Option: variable-name +;; -- Variable: ... + +;; In any case all symbol names must be known to Emacs, which means it +;; is either a built-in, or its Lisp package is loaded in the current +;; Emacs session, or the symbol is auto-loaded. + +;; You can follow the additional links with the usual Info +;; keybindings. The customisation variable +;; `mouse-1-click-follows-link' is influencing the clicking behavior +;; (and the tooltips) of the links, the variable's default is 450 +;; (milli seconds) setting it to nil means only clicking with mouse-2 +;; is following the link (hint: Drew Adams). + +;; The link color of symbols - referencing their builtin documentation +;; - is distinct from links which are referencing further Info +;; documentation. + +;; Below code is checking if Info documents are relevant Elisp and +;; Emacs related files to avoid false positives. Please see the +;; customization variable `info-none-emacs-or-elisp-documents'. + +;; The code uses mostly mechanisms from Emacs' lisp/help-mode.el file. + + + +(require 'button) +(require 'cl-lib) +(require 'help-mode) ;redundant? +(require 'cl-seq) + +(defcustom info-make-xref-flag t + "Non-nil means create symbol links in info buffers. +Please see the function `info-make-xrefs' for further +information." + :type '(choice (const :tag "Create links" t) + (const :tag "Do not link" nil)) + :version "30.1" + :group 'info) + +;; We need to initalise Info-directory-list first. +(info-initialize) +;; Before declaring the following: +(defvar info-emacs-info-dir-content + (mapcar 'file-name-nondirectory ;'file-name-sans-extension + (directory-files + (car + ;; search for the main Emacs' info/ directory + (cl-member "[^.]emacs" Info-directory-list :test 'string-match= -p)) + ;; don't list "." and ".." + t "[^.]$")) + "List of file names in Emacs' own info/ directory.") + +;; FIXME: Turn into regexp list? Hint Stefan Monier or switch to alist +;; with explanation of file name? +(defcustom info-none-emacs-or-elisp-documents + '("aarm2012" ; Stefan: Ada manual, Elpa archive + "arm2012" ; Stefan: Ada manual + "sicp" ; T.V: Structure and Interpretation of Computer Programs, + ; Melpa archive + ) + "List of all none GNU Emacs or Elisp documentation. +Or other documents not to be checked for linking to their help +documentation. The list must contain only the base name of the +files (without their file name extension \".info\")." + :type '(repeat string) + :version "30.1" + :group 'info) + +(defun info-check-docu-p () + "Check if the current info file is relevant to Emacs. +That means `Info-current-file' is either found in Emacs' info/ +directory or in `package-user-dir' and is not included in the +`info-none-emacs-or-elisp-documents' list." + (let* ((ifile Info-current-file) + (ifi (when ifile + (file-name-sans-extension + (file-name-nondirectory ifile)))) + (pdir (when (boundp 'package-user-dir) + (expand-file-name + package-user-dir))) + (ifiles info-emacs-info-dir-content) + (ndocu info-none-emacs-or-elisp-documents)) + (and ifile + (or (assoc-string (concat ifi ".info") ifiles) + ;; info files might be archived! + (assoc-string (concat ifi ".info.gz") ifiles) + (when pdir (string-match pdir ifile))) + (not (assoc-string ifi ndocu))))) + +;; FIXME: what are these variables for, suppress compiler warnings? +(defvar describe-symbol-backends) ;from help-mode.el +(defvar help-xref-following) ;dito + +;; This toggles the complete linking process +(when info-make-xref-flag + (add-hook 'Info-selection-hook 'info-make-xrefs)) + +(defface info-color + '((t (:inherit font-lock-doc-face + ;; font-lock-preprocessor-face ; similar to link face (de= fault) + ;; font-lock-builtin-face ; similar (default Emacs) + ;; font-lock-function-name-face ; similar (default) + ;; info-face + ))) + "Face for the `symbol' reference items in `info' nodes." + :group 'info-colors) + +;; Button types + +(define-button-type 'info + 'link t ;for Info-next-reference-or-link + 'follow-link t + 'face 'info-color + 'action #'info-button-action) + +(define-button-type 'info-function + :supertype 'info + 'info-function 'describe-function + 'info-echo (purecopy "mouse-2, RET: describe this function")) + +(define-button-type 'info-variable + :supertype 'info + 'info-function 'describe-variable + 'info-echo (purecopy "mouse-2, RET: describe this variable")) + +(define-button-type 'info-face + :supertype 'info + 'info-function 'describe-face + 'info-echo (purecopy "mouse-2, RET: describe this face")) + +(define-button-type 'info-symbol + :supertype 'info + 'info-function #'describe-symbol + 'info-echo (purecopy "mouse-2, RET: describe this symbol")) + +(define-button-type 'info-function-def + :supertype 'info + 'info-function (lambda (fun &optional file type) + (or file + (setq file (find-lisp-object-file-name fun typ= e))) + (if (not file) + (message "Unable to find defining file") + (require 'find-func) + (when (eq file 'C-source) + (setq file + (help-C-file-name (indirect-function fun= ) 'fun))) + ;; Don't use find-function-noselect because it f= ollows + ;; aliases (which fails for built-in functions). + (let ((location + (find-function-search-for-symbol fun type= file))) + (pop-to-buffer (car location)) + (run-hooks 'find-function-after-hook) + (if (cdr location) + (goto-char (cdr location)) + (message "Unable to find location in file"))= ))) + 'info-echo (purecopy "mouse-2, RET: find function's definition")) + +;; Functions + +(defun info-button-action (button) + "Call BUTTON's help function." + (info-do-xref nil + (button-get button 'info-function) + (button-get button 'info-args))) + +(defun info-do-xref (_pos function args) + "Call the help cross-reference function FUNCTION with args ARGS. +Things are set up properly so that the resulting `help-buffer' has +a proper [back] button." + ;; There is a reference at point. Follow it. + (let ((help-xref-following nil)) + (apply + function (if (eq function 'info) + (append args (list (generate-new-buffer-name "*info*")))= args)))) + +(defun info-button (match-number type &rest args) + "Make a hyperlink for cross-reference text previously matched. +MATCH-NUMBER is the subexpression of interest in the last matched +regexp. TYPE is the type of button to use. Any remaining arguments are +passed to the button's info-function when it is invoked. +See `info-make-xrefs' Don't forget ARGS." ; -TODO- + ;; Don't mung properties we've added specially in some instances. + (unless (button-at (match-beginning match-number)) + ;; (message "Creating button: %s." args) + (make-text-button (match-beginning match-number) + (match-end match-number) + 'type type 'info-args args))) + +(defconst info-symbol-regexp + (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var + "\\(function\\|command\\|call\\)\\|" ; Link to funct= ion + "\\(face\\)\\|" ; Link to face + "\\(symbol\\|program\\|property\\)\\|" ; Don't link + "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)" + "[ \t\n]+\\)?" + ;; Note starting with word-syntax character: + "['`=E2=80=98]\\(\\sw\\(\\sw\\|\\s_\\)+\\|`\\)['=E2=80= =99]")) + "Regexp matching info document references to their help references. +The words preceding the quoted symbol can be used in doc strings to +distinguish references to variables, functions and symbols.") + +;;;###autoload +(defun info-make-xrefs (&optional buffer) + "Parse and hyperlink documentation cross-references in the given BUFFER. +Find cross-reference information in a buffer and activate such cross +references for selection with `help-follow'. Cross-references have +the canonical form `...' and the type of reference may be +disambiguated by the preceding word(s) used in +`info-symbol-regexp'. + +Function names are also prefixed by \"M-x\", for example \"M-x +function-name\" or are quoted and prefixed like `M-x +function-name'. + +Also Function names appearing behind the following forms, which +occur, for example, in the Elisp manual: + + -- Special Form: function-name + -- Command: ... + -- Function: ... + -- Macro: ... + +And variables names behind the following text: + + -- User Option: variable-name + -- Variable: ... + +Faces only get cross-referenced if preceded or followed by the +word `face'. Variables without variable documentation do not get +cross-referenced, unless preceded by the word `variable' or +`option'." + (interactive "b") + (when (info-check-docu-p) + (with-current-buffer (or buffer (current-buffer)) + (save-excursion + (goto-char (point-min)) + ;; Skip the header-type info, though it might be useful to parse + ;; it at some stage (e.g. "function in `library'"). + ;; (forward-paragraph) + (with-silent-modifications ;from Stefan + (let (;(stab (syntax-table)) + (case-fold-search t) + (inhibit-read-only t)) + (with-syntax-table emacs-lisp-mode-syntax-table + ;; Quoted symbols + (save-excursion + (while (re-search-forward info-symbol-regexp nil t) + (let* ((data (match-string 8)) + (sym (intern-soft data))) + (if sym + (cond + ((match-string 3) ; `variable' &c + (and (or (boundp sym) ; `variable' doesn't ensure + ; it's actually bound + (get sym 'variable-documentation)) + (info-button 8 'info-variable sym))) + ((match-string 4) ; `function' &c + (and (fboundp sym) ; similarly + (info-button 8 'info-function sym))) + ((match-string 5) ; `face' + (and (facep sym) + (info-button 8 'info-face sym))) + ((match-string 6)) ; nothing for `symbol' + ((match-string 7) + (info-button 8 'info-function-def sym)) + ((cl-some (lambda (x) (funcall (nth 1 x) sym)) + describe-symbol-backends) + (info-button 8 'info-symbol sym))))))) + + ;; (info "(elisp) Eval") + ;; Elisp manual -- Special Form: + ;; -- Command: + ;; -- Function: function-name function + ;; -- Macro: + (save-excursion + (while (re-search-forward + "-- \\(Special Form:\\|Command:\\|Function:\\|Macr= o:\\) " + nil t) + (looking-at "\\(\\sw\\|\\s_\\)+") + (let ((sym (intern-soft (match-string 0)))) + (if (fboundp sym) + (info-button 0 'info-function sym))))) + + ;; -- User Option: + ;; -- Variable: variable-name + (save-excursion + (while (re-search-forward + "-- \\(User Option:\\|Variable:\\) " + nil t) + (looking-at "\\(\\sw\\|\\s_\\)+") + (let ((sym (intern-soft (match-string 0)))) + (if (boundp sym) + (info-button 0 'info-variable sym))))) + + ;; M-x prefixed functions + (save-excursion + (while (re-search-forward + ;; Assume command name is only word and symbol + ;; characters to get things like `use M-x foo->bar= '. + ;; Command required to end with word constituent + ;; to avoid `.' at end of a sentence. + ;; "\\<M-x\\s-+\\(\\sw\\(\\sw\\|\\s_\\)*\\sw\\)" n= il t) + ;; include M-x and quotes + "['`=E2=80=98]?M-x\\s-*\n?\\(\\sw\\(\\sw\\|\\s_\\)= *\\sw\\)['=E2=80=99]?" nil t) + (let ((sym (intern-soft (match-string 1)))) + ;; (message "found %s" sym) + (if (fboundp sym) + (info-button 1 'info-function sym)))))))))))) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + (provide 'info) =20 ;;; info.el ends here --=-=-= Content-Type: text/plain -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 7 Jan 2023 07:38:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 07 02:38:19 2023 Received: from localhost ([127.0.0.1]:56381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pE3mU-0006bv-Sg for submit <at> debbugs.gnu.org; Sat, 07 Jan 2023 02:38:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1pE3mS-0006bi-QH for 60587 <at> debbugs.gnu.org; Sat, 07 Jan 2023 02:38:17 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pE3mM-00046M-Jg; Sat, 07 Jan 2023 02:38:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=r6IKAMTILweRcSY3x0ec315NbzPXwK9hvsO0hiFT5YU=; b=VyCMZubEdiOV H9BL0pFCmoZIlIcOBDXQ0jW2TeB2/9YX4VvT+MssTdHXN3LEZI3T4qzl6wlmcXBsY+H3nZJdWDgqE IL1IrT88dmkgwe3+skJ27O2EvlrR4i1OWs9is6JyzYJCfRHBNNSRH/KY7LB3CaXSG83B8YEGdfF/0 qmHqkhHm6DUTo2NE39n5bPtVppQ3AcJAxEpGoWfgfSeEP+Zeyvqk0aEHFX9oikER8jtmAVC8akc5C zyNNeJyJGrhdckjHPHGAp5X6rDEUI9eagc8R0Fhxwdncz2YiSlCK08uLuIKpuZnZhXiLq6jjbnKA1 2y+dLW78XFMdKPHOsbAO8w==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1pE3mL-0000WE-Rn; Sat, 07 Jan 2023 02:38:10 -0500 Date: Sat, 07 Jan 2023 09:38:28 +0200 Message-Id: <83h6x2u74b.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "H. Dieter Wilhelm" <dieter@HIDDEN>, Stefan Monnier <monnier@HIDDEN> In-Reply-To: <86tu13qydg.fsf@HIDDEN> (dieter@HIDDEN) Subject: Re: bug#60587: Patch for adding links to symbols' help documentation References: <86y1qgr1bf.fsf@HIDDEN> <86tu13qydg.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60587 Cc: 60587 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "H. Dieter Wilhelm" <dieter@HIDDEN> > Date: Fri, 06 Jan 2023 20:03:23 +0100 > > I attached a patch for the current master branch build from git > format-patch. And spliced the code to implement the linking of symbols > in info manuals to the help documentation into lisp/info-xref.el. Thanks. I think this should be in info.el, or maybe in a separate info-SOMETHING.el file. info-xref.el is for a certain job, of interest primarily to Emacs maintainers, that is different from this one, and I'm not sure conflating them is TRT. More specific comments below. > +;; This library provides links of symbols (functions, variables, The "This library" part is a remnant of the previous life of this code, and should be reworded to refer to specific command(s). > +;; In any case all symbol names must be known to Emacs, i.e. their > +;; names are found in the variable `obarray'. I think a more useful way of saying this is In any case, the symbol must be known to Emacs, which means it is either a built-in, or its Lisp package is loaded in the current Emacs session, or the symbol is auto-loaded. > +;; Inform is checking if the Info documents are relevant Elisp and ^^^^^^ This should be adapted to the "new life" of Inform as part of Emacs. > +;; Emacs related files to avoid false positives. Please see the > +;; customization variable `inform-none-emacs-or-elisp-documents'. ^^^^^^ And this. > +;;; Change Log: > + > +;; 1.3: > + > +;; Inform is checking if the Info documents are relevant Elisp and > +;; Emacs related files to avoid false positives. > + > +;; 1.2: > + > +;; Link Elisp descriptions of symbols to their help documentation, > +;; like the following function example: -- Function: eval form > + > +;; Distinguish color of texinfo links (`link' type) and Help links > +;; (`font-lock-function-name-face') Not sure if it makes sense to keep this change log. > +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > +;; Does the following belong to customize.el? > + > +;; Generalise linking to "customization buffers" for the "easy > +;; customization" info documentation see also the customization > +;; section in the elisp manual > + > +;; - distinguish the Customization-links from Help- and Info-links > +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > + > +;;; Ideas: > + > +;; Link the help buffers back to higher level info manual subjects, > +;; similar to help-fns+.el from Drew Adams. > + > +;; Twice clicking or RETurning removes *Help* buffer (idea: Drew > +;; Adams) > + > +;; Different colors for different symbol types (idea: Drew Adams) see > +;; package helpful and info+ / info-colors on Melpa and see > +;; font-lock.el for common faces. > + > +;; - Do we need to indicate an already visited Help link with a > +;; different color? > + > +;; - Would it be be good to overtake all colors of package > +;; "info-colors"? > + > +;; - Do we need to distinguish the link FONTS? No, difficult to read! > + > +;; Back / Forward button in help buffer - back to info buffer or > +;; remain in help mode? > + > +;; Linking of standard symbol properties? > + > +;; - (info "(elisp) Standard Properties") > + > +;; Elisp manual examples: > +;; (symbol-name 'car) ... ? > + > +;; Shortening the verbose texinfo URLs? But how to handle the changed > +;; indentation? > + > +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Please review this part and decide which portions should be kept, perhaps after a suitable rewording, and which should be removed. > +(require 'button) > +(require 'cl-lib) > +(require 'help-mode) ;redundant? If this is added to an existing file, there should be a ^L and some heading-style command before it. > +;; activate inform without manually loading it. Is there a better way? > +;; ;;;###autoload (require 'info-xref) > > +;; this is spawning lisp/info-xref.el's definition to 'info! This > +;; group is sorted now in 'docs and 'info! -FIXME- Comments should start with a capital letter. > +;;;###autoload > +(defcustom info-xref-make-xref-flag t > + "Non-nil means create symbol links in info buffers." > + :type '(choice (const :tag "Create links" t) > + (const :tag "Do not link" nil)) > + :group 'info-xref) I think we frown on autoloading defcustoms. Also, every new defcustom should have a :version tag. > +;; Info-director-list must be initialised ^^^^^^^^ Typo. Also, comments should be complete sentences, and end with a period (here and elsewhere in the patch). > +(info-initialize) Why do you need to call this? and why on top level? > +;; Turn into regexp list necessary? Stefan > +;; Switch to alist with explanation of file name? > +(defcustom info-xref-none-emacs-or-elisp-documents > + '("aarm2012" ; Stefan: Ada manual, Elpa archive > + "arm2012" ; Stefan: Ada manual > + "sicp" ; T.V: Structure and Interpretation of Computer Programs, > + ; Melpa archive > + ) > + "List of all none GNU-Emacs or Elisp documentation. > +Or other documents not to be checked for linking to their help > +documentation. The list must contains only the base name of the > +files (without their file name extension \".info\")." > + :type '(repeat string) > + :group 'info-xref) Not sure what is this about, and what do the names above signify. There are also typos: "none GNU-Emacs", "must contains". > +(defun Info-xref-make-xrefs (&optional buffer) > + "Parse and hyperlink documentation cross-references in the given BUFFER. The doc string should tell what happens if BUFFER is omitted or nil. > + (while (re-search-forward Info-xref-symbol-regexp nil t) > + (let* ((data (match-string 8)) > + (sym (intern-soft data))) > + (if sym > + (cond > + ((match-string 3) ; `variable' &c > + (and (or (boundp sym) ; `variable' doesn't ensure > + ; it's actually bound > + (get sym 'variable-documentation)) > + (Info-xref-button 8 'Info-xref-variable sym))) > + ((match-string 4) ; `function' &c > + (and (fboundp sym) ; similarly > + (Info-xref-button 8 'Info-xref-function sym))) > + ((match-string 5) ; `face' > + (and (facep sym) > + (Info-xref-button 8 'Info-xref-face sym))) > + ((match-string 6)) ; nothing for `symbol' > + ((match-string 7) > + (Info-xref-button 8 'Info-xref-function-def sym)) > + ((cl-some (lambda (x) (funcall (nth 1 x) sym)) > + describe-symbol-backends) > + (Info-xref-button 8 'Info-xref-symbol sym))))))) Can this be rewritten so as to avoid the need for error-prone updates of the sub-expression numbers every time Info-xref-symbol-regexp is modified? Finally, this needs additions to the user manual and NEWS.
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at 60587) by debbugs.gnu.org; 6 Jan 2023 19:03:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 06 14:03:35 2023 Received: from localhost ([127.0.0.1]:55879 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pDs06-000081-H8 for submit <at> debbugs.gnu.org; Fri, 06 Jan 2023 14:03:35 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:57929) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pDs04-00007d-3t for 60587 <at> debbugs.gnu.org; Fri, 06 Jan 2023 14:03:33 -0500 Received: from ping ([109.250.227.141]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MybCV-1or70i2ok1-00yzjQ for <60587 <at> debbugs.gnu.org>; Fri, 06 Jan 2023 20:03:25 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: 60587 <at> debbugs.gnu.org Subject: Patch for adding links to symbols' help documentation Date: Fri, 06 Jan 2023 20:03:23 +0100 Message-ID: <86tu13qydg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:4VyOO3MPqNGAD3Fcwu+elbt4LWv6UaBNH3gKrUwo9/mPw2NRivI CN6+vRIH2zeeCnfQcNS+eorQqGwpLMYSEhjujQBG1lHHgP6anZDnh6vgbXeWrQeI3w/Jtc/ IfzOlRnA+8YC27aSa4xciWzl6lWduOEEFW1GXcq2AbnQNcC0CcOE0M6OMAjhmV/W/k4I1gC ie0x+1fqs2saqusVdCetw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:2wllreTeDr4=;WpGUbJQtPhAlgxr4r+LpF0gY70d rY00toE1vxRAZVgJuXfLJE1MD/XZ/viXpYZ0rd2HPyV9/igHc2YxT1NDEb5oRii8Rp18uBVwh 8wpJaZ+KPCad5dRtyV19vKszU70MFEyGYwPU6suRJ7MgnUIjpfsgPAk+y9VIh5jKvaRzLrZe2 s4O/ScHf2lc54L/XZhH2LcO7eGtx+4xX828ARg1pGIJbyy/nslMqLLTLb/4rm0rzwP9H6PT2T BZuflmiiyIusMjKb5PJTiR/g1ltdU/lx3OimL83lSIchnTOoeDYlwqNe/WIyUynhv9u4jMkul X6CqTAGKU4ph4iP3A6JDCldLGIYIWh+EGQ3sRiX3qWMovxb11zUwX2CoeluOQoDvtDtnnH6MV vfY2UcJYJ0ymcl8/qe2+i/qFyxs9ehq+zPhcsSnsIOCPgK3dWAMcqJeiLUr3h1M+HsqK2MGIl 9XFaf4T5KgzQwNKVrk7fR8SgPMR4gOVSAvi2L2vyDFpXq2JuOLUeGc5Oo0mdySyJgj4jku974 2KIn654i1HnKffjIGl4edZPc0gXwK9PPvQnQ0cRn2OQs0Y1AfIrFmgi+Y4fAN7mYgaJdOPci9 c+ibbvOyBU4eLFWVeMKyvJeeuB1I/+TUfGvpzvayyy83965Vt+i/Foydt4+j346Xb8REMmKqG hRD1Ma9AiFSi5Bf4Xd4AhgdRIBtrcUrQneDvamQ1Ng== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60587 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hello Emacs, I attached a patch for the current master branch build from git format-patch. And spliced the code to implement the linking of symbols in info manuals to the help documentation into lisp/info-xref.el. Thank you for your review --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0001-Provide-in-Info-manuals-links-of-symbols-to-their-he.patch Content-Transfer-Encoding: quoted-printable From a7a90284bbe5a55dd0a4cdd0759698787db0a4be Mon Sep 17 00:00:00 2001 From: Dieter Wilhelm <dieter@HIDDEN> Date: Wed, 4 Jan 2023 20:50:15 +0100 Subject: [PATCH] Provide in Info manuals links of symbols to their help documentation * lisp/info-xref.el contains all the necessary code. It is separated from the original code - for the moment - with lines of semi-colons. --- lisp/info-xref.el | 494 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 451 insertions(+), 43 deletions(-) diff --git a/lisp/info-xref.el b/lisp/info-xref.el index a910f38af84..6677ade1328 100644 --- a/lisp/info-xref.el +++ b/lisp/info-xref.el @@ -1,4 +1,4 @@ -;;; info-xref.el --- check external references in an Info document -*- lex= ical-binding: t -*- +;;; info-xref.el --- Cross references in an Info document -*- lexical-bind= ing: t -*- =20 ;; Copyright (C) 2003-2023 Free Software Foundation, Inc. =20 @@ -38,6 +38,119 @@ ;; `M-x info-xref-docstrings' checks docstring "Info node ..." hyperlinks = in ;; source files (and other files). =20 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; This library provides links of symbols (functions, variables, +;; faces) within Emacs' Info viewer to their builtin help +;; documentation. This linking is done, when the symbol names in +;; texinfo documentations (like the Emacs- and Elisp manual) are + +;; 1. Quoted symbol names like `quoted-symbol' or: + +;; 2. Function names are prefixed by M-x, for example M-x +;; function-name or are quoted and prefixed like `M-x function-name'. + +;; 3. Function names appearing behind the following forms, which +;; occur, for example, in the Elisp manual: + +;; -- Special Form: function-name +;; -- Command: +;; -- Function: +;; -- Macro: + +;; 4. And variables names behind the following text: + +;; -- User Option: variable-name +;; -- Variable: + +;; In any case all symbol names must be known to Emacs, i.e. their +;; names are found in the variable `obarray'. + +;; You can follow the additional links with the usual Info +;; keybindings. The customisation variable +;; `mouse-1-click-follows-link' is influencing the clicking behavior +;; (and the tooltips) of the links, the variable's default is 450 +;; (milli seconds) setting it to nil means only clicking with mouse-2 +;; is following the link (hint: Drew Adams). + +;; The link color of symbols - referencing their builtin documentation +;; - is distinct from links which are referencing further Info +;; documentation. + +;; Inform is checking if the Info documents are relevant Elisp and +;; Emacs related files to avoid false positives. Please see the +;; customization variable `inform-none-emacs-or-elisp-documents'. + +;; The code uses mostly mechanisms from Emacs' lisp/help-mode.el file. + +;;; Change Log: + +;; 1.3: + +;; Inform is checking if the Info documents are relevant Elisp and +;; Emacs related files to avoid false positives. + +;; 1.2: + +;; Link Elisp descriptions of symbols to their help documentation, +;; like the following function example: -- Function: eval form + +;; Distinguish color of texinfo links (`link' type) and Help links +;; (`font-lock-function-name-face') + +;;; TODO: + +;; Currently inconsistent link colors to help buffers: In *info* +;; different as in *Help* buffers! + +;; Check the application `inform-xref-symbol-regexp' for additional +;; symbol prefixes without quoting of symbol-names + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Does the following belong to customize.el? + +;; Generalise linking to "customization buffers" for the "easy +;; customization" info documentation see also the customization +;; section in the elisp manual + +;; - distinguish the Customization-links from Help- and Info-links +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; Ideas: + +;; Link the help buffers back to higher level info manual subjects, +;; similar to help-fns+.el from Drew Adams. + +;; Twice clicking or RETurning removes *Help* buffer (idea: Drew +;; Adams) + +;; Different colors for different symbol types (idea: Drew Adams) see +;; package helpful and info+ / info-colors on Melpa and see +;; font-lock.el for common faces. + +;; - Do we need to indicate an already visited Help link with a +;; different color? + +;; - Would it be be good to overtake all colors of package +;; "info-colors"? + +;; - Do we need to distinguish the link FONTS? No, difficult to read! + +;; Back / Forward button in help buffer - back to info buffer or +;; remain in help mode? + +;; Linking of standard symbol properties? + +;; - (info "(elisp) Standard Properties") + +;; Elisp manual examples: +;; (symbol-name 'car) ... ? + +;; Shortening the verbose texinfo URLs? But how to handle the changed +;; indentation? + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;;; History: =20 ;; Version 3 - new M-x info-xref-docstrings, use compilation-mode @@ -297,16 +410,16 @@ info-xref-check (interactive (list (let* ((default-filename - (cond ((eq major-mode 'Info-mode) - Info-current-file) - ((eq major-mode 'texinfo-mode) - ;; look for @setfilename like makeinfo.el does - (save-excursion - (goto-char (point-min)) - (if (re-search-forward - "^@setfilename[ \t]+\\([^ \t\n]+\\)[ \t]*" - (line-beginning-position 100) t) - (expand-file-name (match-string 1))))))) + (cond ((eq major-mode 'Info-mode) + Info-current-file) + ((eq major-mode 'texinfo-mode) + ;; look for @setfilename like makeinfo.el does + (save-excursion + (goto-char (point-min)) + (if (re-search-forward + "^@setfilename[ \t]+\\([^ \t\n]+\\)[ \t]*" + (line-beginning-position 100) t) + (expand-file-name (match-string 1))))))) (prompt (if default-filename (format "Info file (%s): " default-filename) "Info file: "))) @@ -367,24 +480,24 @@ info-xref-all-info-files (defun info-xref-check-list (filename-list) "Check external references in info documents in FILENAME-LIST." (info-xref-with-output - (dolist (info-xref-filename filename-list) - (setq info-xref-xfile-alist nil) - (let ((info-xref-output-heading - (format "Info file %s\n" info-xref-filename))) - (with-temp-message (format "Looking at %s" info-xref-filename) - (with-temp-buffer - (info-insert-file-contents info-xref-filename) - (goto-char (point-min)) - (if (search-forward "\^_\nIndirect:\n" nil t) - (let ((dir (file-name-directory info-xref-filename))) - (while (looking-at "\\(.*\\): [0-9]+\n") - (let ((info-xref-filename - (expand-file-name (match-string 1) dir))) - (with-temp-buffer - (info-insert-file-contents info-xref-filename) - (info-xref-check-buffer))) - (forward-line))) - (info-xref-check-buffer)))))))) + (dolist (info-xref-filename filename-list) + (setq info-xref-xfile-alist nil) + (let ((info-xref-output-heading + (format "Info file %s\n" info-xref-filename))) + (with-temp-message (format "Looking at %s" info-xref-filename) + (with-temp-buffer + (info-insert-file-contents info-xref-filename) + (goto-char (point-min)) + (if (search-forward "\^_\nIndirect:\n" nil t) + (let ((dir (file-name-directory info-xref-filename))) + (while (looking-at "\\(.*\\): [0-9]+\n") + (let ((info-xref-filename + (expand-file-name (match-string 1) dir))) + (with-temp-buffer + (info-insert-file-contents info-xref-filename) + (info-xref-check-buffer))) + (forward-line))) + (info-xref-check-buffer)))))))) =20 (defconst info-xref-node-re "\\(?1:\\(([^)]*)\\)[^.,]+\\)" "Regexp with subexp 1 matching (manual)node.") @@ -513,7 +626,7 @@ info-xref-docstrings the sources handy." (interactive (let* ((default (and buffer-file-name - (file-relative-name buffer-file-name))) + (file-relative-name buffer-file-name))) (prompt (if default (format "Filename with wildcards (%s): " default) @@ -539,23 +652,318 @@ info-xref-docstrings (setq info-xref-xfile-alist nil) ;; "not found"s once per file =20 (info-xref-with-file info-xref-filename - (goto-char (point-min)) - (while (re-search-forward help-xref-info-regexp nil t) - (let ((node (match-string 2))) - (save-excursion - (goto-char (match-beginning 2)) ;; start of node as error pos= ition + (goto-char (point-min)) + (while (re-search-forward help-xref-info-regexp = nil t) + (let ((node (match-string 2))) + (save-excursion + (goto-char (match-beginning 2)) ;; start o= f node as error position + + ;; skip nodes with "%" as probably `format= ' strings such as in + ;; info-look.el + (unless (string-search "%" node) + + ;; "(emacs)" is the default manual for d= ocstring hyperlinks, + ;; per `help-make-xrefs' + (unless (string-match "\\`(" node) + (setq node (concat "(emacs)" node))) + + (info-xref-check-node node))))))))) =20 - ;; skip nodes with "%" as probably `format' strings such as in - ;; info-look.el - (unless (string-search "%" node) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; =20 - ;; "(emacs)" is the default manual for docstring hyperlinks, - ;; per `help-make-xrefs' - (unless (string-match "\\`(" node) - (setq node (concat "(emacs)" node))) +(require 'button) +(require 'cl-lib) +(require 'help-mode) ;redundant? =20 - (info-xref-check-node node))))))))) +;; activate inform without manually loading it. Is there a better way? +;; ;;;###autoload (require 'info-xref) =20 +;; this is spawning lisp/info-xref.el's definition to 'info! This +;; group is sorted now in 'docs and 'info! -FIXME- +(defgroup info-xref nil + "Customisation 'info-xref' subgroup of info. +Check external cross-references in Info documents and provide +hyperlinks from symbols to their help documentation." + :group 'info) + +;;;###autoload +(defcustom info-xref-make-xref-flag t + "Non-nil means create symbol links in info buffers." + :type '(choice (const :tag "Create links" t) + (const :tag "Do not link" nil)) + :group 'info-xref) + +(require 'cl-seq) +;; Info-director-list must be initialised +(info-initialize) +(defvar Info-xref-emacs-info-dir-content + (mapcar 'file-name-nondirectory ;'file-name-sans-extension + (directory-files + (car + ;; search for the main Emacs' info/ directory + (cl-member "[^.]emacs" Info-directory-list :test 'string-match= -p)) + ;; don't list "." and ".." + t "[^.]$")) + "List of file names in Emacs' own info/ directory.") + +;; Turn into regexp list necessary? Stefan +;; Switch to alist with explanation of file name? +(defcustom info-xref-none-emacs-or-elisp-documents + '("aarm2012" ; Stefan: Ada manual, Elpa archive + "arm2012" ; Stefan: Ada manual + "sicp" ; T.V: Structure and Interpretation of Computer Programs, + ; Melpa archive + ) + "List of all none GNU-Emacs or Elisp documentation. +Or other documents not to be checked for linking to their help +documentation. The list must contains only the base name of the +files (without their file name extension \".info\")." + :type '(repeat string) + :group 'info-xref) + +(defun Info-xref-check-docu-p () + "Check if the current info file is relevant to Emacs. +That means `Info-current-file' is either found in Emacs' info/ +directory or in `package-user-dir' and is not included in the +`info-xref-none-emacs-or-elisp-documents' list." + (let* ((ifile Info-current-file) + (ifi (when ifile + (file-name-sans-extension + (file-name-nondirectory ifile)))) + (pdir (when (boundp 'package-user-dir) + (expand-file-name + package-user-dir))) + (ifiles Info-xref-emacs-info-dir-content) + (ndocu info-xref-none-emacs-or-elisp-documents)) + (and ifile + (or (assoc-string (concat ifi ".info") ifiles) + ;; info files might be archived! + (assoc-string (concat ifi ".info.gz") ifiles) + (when pdir (string-match pdir ifile))) + (not (assoc-string ifi ndocu))))) + +(defvar describe-symbol-backends) ;from help-mode.el +(defvar help-xref-following) ;dito + +;; this toggles the complete linking process +;;;###autoload +(when info-xref-make-xref-flag + (add-hook 'Info-selection-hook 'Info-xref-make-xrefs)) + +(defface Info-xref-color + '((t (:inherit font-lock-doc-face + ;; font-lock-preprocessor-face ; similar to link face (de= fault) + ;; font-lock-builtin-face ; similar (default Emacs) + ;; font-lock-function-name-face ; similar (default) + ;; Info-xref-face + ))) + "Face for the `symbol' reference items in `info' nodes." + :group 'info-colors) + +;; Button types + +(define-button-type 'Info-xref + 'link t ;for Info-next-reference-or-link + 'follow-link t + 'face 'Info-xref-color + 'action #'Info-xref-button-action) + +(define-button-type 'Info-xref-function + :supertype 'Info-xref + 'Info-xref-function 'describe-function + 'Info-xref-echo (purecopy "mouse-2, RET: describe this function")) + +(define-button-type 'Info-xref-variable + :supertype 'Info-xref + 'Info-xref-function 'describe-variable + 'Info-xref-echo (purecopy "mouse-2, RET: describe this variable")) + +(define-button-type 'Info-xref-face + :supertype 'Info-xref + 'Info-xref-function 'describe-face + 'Info-xref-echo (purecopy "mouse-2, RET: describe this face")) + +(define-button-type 'Info-xref-symbol + :supertype 'Info-xref + 'Info-xref-function #'describe-symbol + 'Info-xref-echo (purecopy "mouse-2, RET: describe this symbol")) + +(define-button-type 'Info-xref-function-def + :supertype 'Info-xref + 'Info-xref-function (lambda (fun &optional file type) + (or file + (setq file (find-lisp-object-file-name fun typ= e))) + (if (not file) + (message "Unable to find defining file") + (require 'find-func) + (when (eq file 'C-source) + (setq file + (help-C-file-name (indirect-function fun= ) 'fun))) + ;; Don't use find-function-noselect because it f= ollows + ;; aliases (which fails for built-in functions). + (let ((location + (find-function-search-for-symbol fun type= file))) + (pop-to-buffer (car location)) + (run-hooks 'find-function-after-hook) + (if (cdr location) + (goto-char (cdr location)) + (message "Unable to find location in file"))= ))) + 'Info-xref-echo (purecopy "mouse-2, RET: find function's definition")) + +;; Functions + +(defun Info-xref-button-action (button) + "Call BUTTON's help function." + (Info-xref-do-xref nil + (button-get button 'Info-xref-function) + (button-get button 'Info-xref-args))) + +(defun Info-xref-do-xref (_pos function args) + "Call the help cross-reference function FUNCTION with args ARGS. +Things are set up properly so that the resulting `help-buffer' has +a proper [back] button." + ;; There is a reference at point. Follow it. + (let ((help-xref-following nil)) + (apply + function (if (eq function 'info) + (append args (list (generate-new-buffer-name "*info*")))= args)))) + +(defun Info-xref-button (match-number type &rest args) + "Make a hyperlink for cross-reference text previously matched. +MATCH-NUMBER is the subexpression of interest in the last matched +regexp. TYPE is the type of button to use. Any remaining arguments are +passed to the button's Info-xref-function when it is invoked. +See `Info-xref-make-xrefs' Don't forget ARGS." ; -TODO- + ;; Don't mung properties we've added specially in some instances. + (unless (button-at (match-beginning match-number)) + ;; (message "Creating button: %s." args) + (make-text-button (match-beginning match-number) + (match-end match-number) + 'type type 'Info-xref-args args))) + +(defconst Info-xref-symbol-regexp + (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var + "\\(function\\|command\\|call\\)\\|" ; Link to funct= ion + "\\(face\\)\\|" ; Link to face + "\\(symbol\\|program\\|property\\)\\|" ; Don't link + "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)" + "[ \t\n]+\\)?" + ;; Note starting with word-syntax character: + "['`=E2=80=98]\\(\\sw\\(\\sw\\|\\s_\\)+\\|`\\)['=E2=80= =99]")) + "Regexp matching doc string references to symbols. + +The words preceding the quoted symbol can be used in doc strings to +distinguish references to variables, functions and symbols.") + +;;;###autoload +(defun Info-xref-make-xrefs (&optional buffer) + "Parse and hyperlink documentation cross-references in the given BUFFER. + +Find cross-reference information in a buffer and activate such cross +references for selection with `help-follow'. Cross-references have +the canonical form `...' and the type of reference may be +disambiguated by the preceding word(s) used in +`Info-xref-symbol-regexp'. + +Function names are also prefixed by \"M-x\", for example \"M-x +function-name\" or are quoted and prefixed like `M-x +function-name'. + +Also Function names appearing behind the following forms, which +occur, for example, in the Elisp manual: + + -- Special Form: function-name + -- Command: + -- Function: + -- Macro: + +And variables names behind the following text: + + -- User Option: variable-name + -- Variable: + +Faces only get cross-referenced if preceded or followed by the +word `face'. Variables without variable documentation do not get +cross-referenced, unless preceded by the word `variable' or +`option'." + (interactive "b") + (when (Info-xref-check-docu-p) + (with-current-buffer (or buffer (current-buffer)) + (save-excursion + (goto-char (point-min)) + ;; Skip the header-type info, though it might be useful to parse + ;; it at some stage (e.g. "function in `library'"). + ;; (forward-paragraph) + (with-silent-modifications ;from Stefan + (let (;(stab (syntax-table)) + (case-fold-search t) + (inhibit-read-only t)) + (with-syntax-table emacs-lisp-mode-syntax-table + ;; Quoted symbols + (save-excursion + (while (re-search-forward Info-xref-symbol-regexp nil t) + (let* ((data (match-string 8)) + (sym (intern-soft data))) + (if sym + (cond + ((match-string 3) ; `variable' &c + (and (or (boundp sym) ; `variable' doesn't ensure + ; it's actually bound + (get sym 'variable-documentation)) + (Info-xref-button 8 'Info-xref-variable sym= ))) + ((match-string 4) ; `function' &c + (and (fboundp sym) ; similarly + (Info-xref-button 8 'Info-xref-function sym= ))) + ((match-string 5) ; `face' + (and (facep sym) + (Info-xref-button 8 'Info-xref-face sym))) + ((match-string 6)) ; nothing for `symbol' + ((match-string 7) + (Info-xref-button 8 'Info-xref-function-def sym)) + ((cl-some (lambda (x) (funcall (nth 1 x) sym)) + describe-symbol-backends) + (Info-xref-button 8 'Info-xref-symbol sym))))))) + + ;; (info "(elisp) Eval") + ;; Elisp manual -- Special Form: + ;; -- Command: + ;; -- Function: function-name function + ;; -- Macro: + (save-excursion + (while (re-search-forward + "-- \\(Special Form:\\|Command:\\|Function:\\|Macr= o:\\) " + nil t) + (looking-at "\\(\\sw\\|\\s_\\)+") + (let ((sym (intern-soft (match-string 0)))) + (if (fboundp sym) + (Info-xref-button 0 'Info-xref-function sym))))) + + ;; -- User Option: + ;; -- Variable: variable-name + (save-excursion + (while (re-search-forward + "-- \\(User Option:\\|Variable:\\) " + nil t) + (looking-at "\\(\\sw\\|\\s_\\)+") + (let ((sym (intern-soft (match-string 0)))) + (if (boundp sym) + (Info-xref-button 0 'Info-xref-variable sym))))) + + ;; M-x prefixed functions + (save-excursion + (while (re-search-forward + ;; Assume command name is only word and symbol + ;; characters to get things like `use M-x foo->bar= '. + ;; Command required to end with word constituent + ;; to avoid `.' at end of a sentence. + ;; "\\<M-x\\s-+\\(\\sw\\(\\sw\\|\\s_\\)*\\sw\\)" n= il t) + ;; include M-x and quotes + "['`=E2=80=98]?M-x\\s-*\n?\\(\\sw\\(\\sw\\|\\s_\\)= *\\sw\\)['=E2=80=99]?" nil t) + (let ((sym (intern-soft (match-string 1)))) + ;; (message "found %s" sym) + (if (fboundp sym) + (Info-xref-button 1 'Info-xref-function sym)))))))= ))))) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; =20 (provide 'info-xref) =20 --=20 2.34.1 --=-=-= Content-Type: text/plain -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 5 Jan 2023 23:47:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 05 18:47:49 2023 Received: from localhost ([127.0.0.1]:53288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pDZxd-0007lb-E2 for submit <at> debbugs.gnu.org; Thu, 05 Jan 2023 18:47:49 -0500 Received: from lists.gnu.org ([209.51.188.17]:51202) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dieter@HIDDEN>) id 1pDZxc-0007lR-Ku for submit <at> debbugs.gnu.org; Thu, 05 Jan 2023 18:47:48 -0500 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 <dieter@HIDDEN>) id 1pDZxb-0002Do-IX for bug-gnu-emacs@HIDDEN; Thu, 05 Jan 2023 18:47:48 -0500 Received: from mout.kundenserver.de ([212.227.126.130]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <dieter@HIDDEN>) id 1pDZxZ-0007jo-MJ; Thu, 05 Jan 2023 18:47:47 -0500 Received: from ping ([109.250.146.1]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MelWf-1od98s2qFZ-00anBV; Fri, 06 Jan 2023 00:47:35 +0100 From: "H. Dieter Wilhelm" <dieter@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: 30.0.50; Info pages are lacking links from symbol names to the symbol's help documentation Date: Fri, 06 Jan 2023 00:47:32 +0100 Message-ID: <86y1qgr1bf.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:KE6nSXjVrN33rnsd8E7gXnNjjt25F+UKqgMPA8hbQf6ZxtUrkyN N4491bzcQUIun0OroBzNFVwICFeNWB4AmVMCTF7l/DCLX16bezFqWI8Z4vBzCdhThpydnFR GJF/wnz57Hv1VWV5b6xZhrwVaKHGO1vAcVaxNZ7iWtjCHQJcRj2a+2hcXnRtLQ6dJGIWY+c WQLdl6DWRBgaq9rRFIilg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:JqAxJqTuuPw=;Xh2ElzpluC2VxfommlhUIrOFmiJ 1SpoHFjhqB1mutuUOg8dvyMP/m9pKn4MSSNhQv1RicV1sGdW4CWoof5AsY9PT4smc35sFGH/c 3eXU2ba62YptgVtL3xANvhe+nSiZq7GkVYxUwnXbGfrxqt+lTrU2GF4qunDQUKSXx/q5gIy20 VHdvoJrvU10avt1UMVwjlIb74yqJmuN0142LfLXUeb/JyeNQcMgo36rRCxm12t9hahmaDbCVC TitrPlYsyvnwbybVl2ek2d5l3Y18acmNLJIwJlailVO4dMa93sXnHM1UAoGXMfJ9kjngGMhja cv5nDc9x9WTMalnoGlIj0onrtvwoNVjRfYxPZvHG4640ZYnJn4Kv9auj6ddw2s+QEIT67/Bd4 6OPe+4s4YkkGbYqSsnNLNKUk9ID2/Hak6ulqLgIww27WYW0M4ALK321WojPhA8pxn5lGclRph pFHYBwWK18kNJx/tJy5170YRTto+pCPTsfPHMyfUXxAlpg6YSiUmooFp+y+OmU3JSiUx6YFj5 iRIK4C+MK8FRSCr98z2xEsPrH3OngQ6SNfBv44Ydu9l4Z/d4SYsuBC3v+hNpcWqYZpQyKxZqc 7/80a3cojMp+GE8dC1aJQMc93JobMFCt1+PWcdPI6C90C0vmdyu4g/2/cHwQJehX23kTQZgw8 pu9X114Cfd1ObjtFXI7cXd31ewWVGqBBmSdvz/R10A== Received-SPF: none client-ip=212.227.126.130; envelope-from=dieter@HIDDEN; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: Ihor Radchenko <yantar92@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hello Here's the bug-report which was proposed in the thread "Re: [ELPA] New package: inform" on the mailing list emacs-devel. When I tried to attach a patch to illustrate the point of this bug-report I've got an error message that it is not possible to send bug reports with an attachment!? I'll attach the patch when I've received the acknowledgement. Dieter -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany
"H. Dieter Wilhelm" <dieter@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#60587
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.