From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8163 invoked from network); 18 Aug 2021 09:13:41 -0000 Received: from tb-ob20.topicbox.com (173.228.157.66) by inbox.vuxu.org with ESMTPUTF8; 18 Aug 2021 09:13:41 -0000 Received: from tb-mx0.topicbox.com (tb-mx0.nyi.icgroup.com [10.90.30.73]) by tb-ob20.topicbox.com (Postfix) with ESMTP id D321E19219 for ; Wed, 18 Aug 2021 05:13:39 -0400 (EDT) (envelope-from bounce.mM8b0bad52403f628bb89eebec.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx0.topicbox.com (Postfix, from userid 1132) id 9AC64323BE8A; Wed, 18 Aug 2021 05:13:39 -0400 (EDT) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=offblast-org.20150623.gappssmtp.com header.i=@offblast-org.20150623.gappssmtp.com header.b=VbAODco1 header.a=rsa-sha256 header.s=20150623 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=offblast.org; spf=pass smtp.mailfrom=mischief@offblast.org smtp.helo=mail-il1-f178.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1629278019; bh=pV5Bk4RmLbZI12nb Y3lPy05wdh0v06qE0JcJGColDkQ=; b=XQ88xBJ/PL6bSZguLHFdfk96MU/B+K4e qmk/txQUh6J+7Axj2T21qwKhw2rVUHTBpfk2AeIJUerAhtsmL6JrdOfFjo1mEXlb vtOkGQDT3OAt1+/i/e+HIUlikOSgYf7GbM/PN3slffPRrLHc2MB1QFyN88dJjGq3 +eXFR/9GDeI= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1629278019; b=W+xWmJSsQXN8JM3AQlb8Sw9EqZorAiHqfvVu64I/PW7sK6Lf9M z+6faDL9Nag8a+RJV6l4Ls0AUFbZxgehis3iJp+Qaq+Zmil3wQtVBA1B5vIrkRaa Xnbq4QcYk7YVQh6ZQova7ZtKwxBPqBOxqAIE0R7kgaVIAlZkFVYYGGFwM= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=offblast-org.20150623.gappssmtp.com header.i=@offblast-org.20150623.gappssmtp.com header.b=VbAODco1 header.a=rsa-sha256 header.s=20150623 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=offblast.org; spf=pass smtp.mailfrom=mischief@offblast.org smtp.helo=mail-il1-f178.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx1.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC did not pass); dkim=pass (2048-bit rsa key sha256) header.d=offblast-org.20150623.gappssmtp.com header.i=@offblast-org.20150623.gappssmtp.com header.b=VbAODco1 header.a=rsa-sha256 header.s=20150623 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=offblast.org; iprev=pass smtp.remote-ip=209.85.166.178 (mail-il1-f178.google.com); spf=pass smtp.mailfrom=mischief@offblast.org smtp.helo=mail-il1-f178.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=mlyMvkl7; x-me-sender=none; x-ptr=pass smtp.helo=mail-il1-f178.google.com policy.ptr=mail-il1-f178.google.com; x-return-mx=pass header.domain=offblast.org policy.is_org=yes (MX Records found: aspmx4.googlemail.com,alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com); x-return-mx=pass smtp.domain=offblast.org policy.is_org=yes (MX Records found: aspmx4.googlemail.com,alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; bh=O8z36rKBipP832KyaBtRB3Rlr0Bb1CTy9pUrdBr6OWY=; b=hWTywReyg2Ed iOwsQ88O+Wfoa28iLLczseHw/0V8WkWGcUjYx1WGWbWQds3npKlXnjE8IR6KQ2vD O8w06QRFvhQqvAfmv7ZSkPoBFlD9BqfqfFxwkMx2pifKQ2Urtv3O0c5x+qEblzuZ Dy5lYEVoXrXNkBGt9Uhh4EUfbyOCbhs= Received: from tb-mx1.topicbox.com (localhost.local [127.0.0.1]) by tb-mx1.topicbox.com (Postfix) with ESMTP id 5A17D33034EE for <9fans@9fans.net>; Wed, 18 Aug 2021 05:13:29 -0400 (EDT) (envelope-from mischief@offblast.org) Received: from tb-mx1.topicbox.com (localhost [127.0.0.1]) by tb-mx1.topicbox.com (Authentication Milter) with ESMTP id F81B3B75DE8; Wed, 18 Aug 2021 05:13:29 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1629278009; b=BIiDSFBCTbKaeg52F2d3HeEFY+XCmBaqifioMq/SnsIKiUSWD4 MUo4OP+7ZsopRD2hpfChjKvtcgSPr2rNwxdDKVkiX6ByG+pDZJL3OqRzJ/mtWV3i LAaZPsi/MshtUA4Hqb8MZLT0BPX3KNNwNBVHs3gecOnlopg/jSiA9iKJA5bMUsDX rURyggWZp9ySa0b3REHWf+3E9EsWJrPeiSA2Ge7wwRSuCjLvYIOjb0VSIbc8cVaK 5h/8NEf4OkDzg8SEA1uvP9JRV2taIkTKtqo8YCgMU+BJXxfu7bMcdVcyHnMD0szN 23TnHHR401Ns0ApVO0o69aXHmhCZTqzQadGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type; s=arcseal; t=1629278009; bh=o0dhAtzqjMRa+Sc49ufiUgisP5O2JTgptmehSlpC3Vs=; b=VHZsPoltD9YO r1d95St3+UKTL4uMSm4rkZQZxYcmXvpd/0B/Lvh9bhFrTDGLZ5wW63ctNQuCHWzk 80BXqZy4pPQoqe8AhkItQ6LNXoGl7jOKrBfquwoHNvMs9j194702chpbemDHxJyc injg72YmgvzLjSSxVqmYMbOVM1tg2CjL3glQ+Lk3W40dnR19LWd9BckqaChTfSwe X+ncmJPiIppM8WM82yuU7mw4cL3B/qlwldfSqiuzq/9hF56PvpGpVNiP5xkL2gM3 hKLK1IyN4j86mAy0xN4MIqu1LiBXhw+d5RlZlQAjyUiPYPjdPe0raZflmUrUziDr JPdUSQj2tQ== ARC-Authentication-Results: i=1; tb-mx1.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC did not pass); dkim=pass (2048-bit rsa key sha256) header.d=offblast-org.20150623.gappssmtp.com header.i=@offblast-org.20150623.gappssmtp.com header.b=VbAODco1 header.a=rsa-sha256 header.s=20150623 x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=offblast.org; iprev=pass smtp.remote-ip=209.85.166.178 (mail-il1-f178.google.com); spf=pass smtp.mailfrom=mischief@offblast.org smtp.helo=mail-il1-f178.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=mlyMvkl7; x-me-sender=none; x-ptr=pass smtp.helo=mail-il1-f178.google.com policy.ptr=mail-il1-f178.google.com; x-return-mx=pass header.domain=offblast.org policy.is_org=yes (MX Records found: aspmx4.googlemail.com,alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com); x-return-mx=pass smtp.domain=offblast.org policy.is_org=yes (MX Records found: aspmx4.googlemail.com,alt1.aspmx.l.google.com,aspmx.l.google.com,aspmx2.googlemail.com,alt2.aspmx.l.google.com,aspmx3.googlemail.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgedvtddrleehgddufecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhepgghfjgfhff fkuffvtgesrgdtreertddtjeenucfhrhhomheppfhitghkucfqfigvnhhsuceomhhishgt hhhivghfsehofhhfsghlrghsthdrohhrgheqnecuggftrfgrthhtvghrnheplefhleelle ejffelkeelveduuedtteelgeelhfetkeefkeejfeehieevudejhedvnecuffhomhgrihhn pehtohhpihgtsghogidrtghomhenucfkphepvddtledrkeehrdduieeirddujeeknecuve hluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvddtledrkeehrdduieei rddujeekpdhhvghlohepmhgrihhlqdhilhduqdhfudejkedrghhoohhglhgvrdgtohhmpd hmrghilhhfrhhomhepoehmihhstghhihgvfhesohhffhgslhgrshhtrdhorhhgqe X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (offblast.org: Sender is authorized to use 'mischief@offblast.org' in 'mfrom' identity (mechanism 'include:_spf.google.com' matched)) receiver=tb-mx1.topicbox.com; identity=mailfrom; envelope-from="mischief@offblast.org"; helo=mail-il1-f178.google.com; client-ip=209.85.166.178 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx1.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Wed, 18 Aug 2021 05:13:26 -0400 (EDT) (envelope-from mischief@offblast.org) Received: by mail-il1-f178.google.com with SMTP id f15so1503191ilk.4 for <9fans@9fans.net>; Wed, 18 Aug 2021 02:13:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=o0dhAtzqjMRa+Sc49ufiUgisP5O2JTgptmehSlpC3Vs=; b=mlyMvkl79U5gr+myP8Hb8sQbkT91D2WKjlrI8zIiO3SeJK5g4vxEYi9pkLm84/2nbx uaWiTwuO9FPkpWXGcPPZG48YFzG8Ts45Zf0+dooSfMFvo43A01C2zWsoYeUuGVvjMywi Fgqom68IKY5Te+O2lPQlGKRvZ4WHGZ94davdrmcUigtIA7fY4DAkBpMckiIeBBRrrcp8 t79hthxnJeKx6xnVO5mVp0MK+s7U+7ZtFxMV3upHr4NDyB1azVCDsqWHaN5JnfdHKdaF wrSvnMlwaH26UBpUkKVy2pNizYYTOIB7I7zSPmiUqkBGjRb6Czohy2kmZp4CLNy4WLqr TxcA== X-Gm-Message-State: AOAM530FsuARQzZZcNj+lTQc/AIvvUd2i0Wqj0tGCT5syMYA6kv8qE9Z nS5E3UjnDKzcVGBjTDR4Hw0lyGb84zihKYDHj5RnvKvY/E1fqA== X-Google-Smtp-Source: ABdhPJyVS4fkDvD0znMYn/Qrh7ajELeqYc5MrffwjE3wYW83Gn861h7ANioE5QVOUjigGv0xfe3YPBZk24uOZGYzqZ8= X-Received: by 2002:a05:6e02:1906:: with SMTP id w6mr5703495ilu.295.1629278005979; Wed, 18 Aug 2021 02:13:25 -0700 (PDT) MIME-Version: 1.0 References: <7ffd2fe2-1790-42df-8907-483b764aff1a@sirjofri.de> In-Reply-To: <7ffd2fe2-1790-42df-8907-483b764aff1a@sirjofri.de> From: Nick Owens Date: Wed, 18 Aug 2021 02:13:13 -0700 Message-ID: Subject: Re: [9fans] Codebase navigation and using tags files in acme To: 9fans <9fans@9fans.net> Content-Type: multipart/alternative; boundary="000000000000c984e005c9d1d846" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 90434ed2-0004-11ec-b353-ead0d31030e8 Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UZjhjZWFjMTJkZjlkYTY3NC1NOGIwYmFkNTI0MDNmNjI4YmI4OWVl?= =?UTF-8?B?YmVjPg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: 7bit List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:M8b0bad52403f628bb89eebec:1:VqDlVAe-PL8ClFDeSxIJLeSVoSE9IKU_JfqRmwKP8LU --000000000000c984e005c9d1d846 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable that's a long winded way of saying 'use the plumber' On Tue, Aug 17, 2021, 23:54 sirjofri wrote: > Hello Ben, > > 17.08.2021 22:22:09 Ben Hancock : > > I've just recently started using the acme editor and am really enjoying > > it, and trying to get the hang of the "acme way" of doing things. One > > bit of functionality that I'm familiar with from other editors is the > > ability to easily look up a function or symbol definition within a > > codebase. In Emacs and vi, this is done by generating tags files (etags > > or ctags), which those editors can parse and allow you to easily jump > > to a definition of the symbol under the point/cursor. > > The original developers of Plan 9 software were people who made simple > things even simpler so they can understand them. Imagine your codebase is > so small that you can know many symbols and have other symbols open or at > least know where to look. Using g(rep) in the parent directory of your > project and your brain should be enough. If it isn't your project might > be too complex/large. > > (That's different when reading other code or revisiting code after a long > time, but then you are supposed to read it again so you can understand it > anyway.) > > > What's the preferred method or workflow for achieving this in acme? I > > have tried passing a selected symbol to 'g -n' in the window's tag, > > using the Mouse-2 + Mouse-1 chord. That gets me part of the way there > > but isn't effective if the file where the symbol is defined happens to > > be in another directory. I feel like I'm missing something. >=20 > I doubt you are missing something. People used to use text editor since > there were no IDEs, and keep in mind that the core of unix was written > with ed, maybe even on teletypes. It's like writing code on paper, and it > works. >=20 > My advise is, read and produce good clean code. If you need syntax > highlighting and fancy IDE stuff your codebase is probably too large. > With more training you can work with larger codebases, but still they to > keep it simple and small. If you really need to work with extremely > complex codebases you likely won't find success using plan9 at all. >=20 > Many plan9 tools are one C file only. In acme you can jump between > selected text by right clicking it, which works very well in these cases. > Right clicking included files opens them and you can search there. These > are basically the tools you have. >=20 > I'm personally very happy reading man pages and searching the plan 9 > source with g(rep) and plumbing the results. >=20 > I hope this helps. >=20 > Oh, and you can always write your own tools and call them using > middle-click in acme. You could write an rc-script that cd..s to your > project home directory (if it's a git repo, the one containing .git) and > invokes g, for example. >=20 > sirjofri ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Tf8ceac12df9da674-M8b0ba= d52403f628bb89eebec Delivery options: https://9fans.topicbox.com/groups/9fans/subscription --000000000000c984e005c9d1d846 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
that's a long winded way of saying 'u= se the plumber'

On Tue, Aug 17, 2021, 23:54 sirjofri <sirjofri+ml-9fans@sirjofri.de>= wrote:
Hello Ben,

17.08.2021 22:22:09 Ben Hancock <ben@benghancock.com>:
> I've just recently started using the acme editor and am really enj= oying
> it, and trying to get the hang of the "acme way" of doing th= ings. One
> bit of functionality that I'm familiar with from other editors is = the
> ability to easily look up a function or symbol definition within a > codebase. In Emacs and vi, this is done by generating tags files (etag= s
> or ctags), which those editors can parse and allow you to easily jump =
> to a definition of the symbol under the point/cursor.

The original developers of Plan 9 software were people who made simple
things even simpler so they can understand them. Imagine your codebase is <= br /> so small that you can know many symbols and have other symbols open or at <= br /> least know where to look. Using g(rep) in the parent directory of your
project and your brain should be enough. If it isn't your project might=
be too complex/large.

(That's different when reading other code or revisiting code after a lo= ng
time, but then you are supposed to read it again so you can understand it <= br /> anyway.)

> What's the preferred method or workflow for achieving this in acme= ? I
> have tried passing a selected symbol to 'g -n' in the window&#= 39;s tag,
> using the Mouse-2 + Mouse-1 chord. That gets me part of the way there =
> but isn't effective if the file where the symbol is defined happen= s to
> be in another directory. I feel like I'm missing something.
<= br /> I doubt you are missing something. People used to use text editor since there were no IDEs, and keep in mind that the core of unix was written
with ed, maybe even on teletypes. It's like writing code on paper, and = it
works.

My advise is, read and produce good clean code. If you need syntax
highlighting and fancy IDE stuff your codebase is probably too large.
With more training you can work with larger codebases, but still they to keep it simple and small. If you really need to work with extremely
complex codebases you likely won't find success using plan9 at all.

Many plan9 tools are one C file only. In acme you can jump between
selected text by right clicking it, which works very well in these cases. <= br /> Right clicking included files opens them and you can search there. These are basically the tools you have.

I'm personally very happy reading man pages and searching the plan 9 source with g(rep) and plumbing the results.

I hope this helps.

Oh, and you can always write your own tools and call them using
middle-click in acme. You could write an rc-script that cd..s to your
project home directory (if it's a git repo, the one containing .git) an= d
invokes g, for example.

sirjofri

------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/Tf8ceac12df9da674-M01a99fa6f5e= f08418c3e312f
Delivery options: https://9fans.topic= box.com/groups/9fans/subscription
= --000000000000c984e005c9d1d846--