9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: sirjofri <sirjofri+ml-9fans@sirjofri.de>
To: 9fans <9fans@9fans.net>
Subject: Re: [9fans] Codebase navigation and using tags files in acme
Date: Wed, 18 Aug 2021 06:52:52 +0000 (UTC)	[thread overview]
Message-ID: <7ffd2fe2-1790-42df-8907-483b764aff1a@sirjofri.de> (raw)
In-Reply-To: <e0c8f85b-1d1a-114f-f5f1-fa0204e814b9@benghancock.com>

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 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.

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. 
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) and 
invokes g, for example.

sirjofri

------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/Tf8ceac12df9da674-M01a99fa6f5ef08418c3e312f
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

  reply	other threads:[~2021-08-18  6:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-17 20:22 Ben Hancock
2021-08-18  6:52 ` sirjofri [this message]
2021-08-18  9:12   ` Richard Miller
2021-08-18  9:17     ` Gabriel Diaz Lopez de la Llave via 9fans
2021-08-18  9:25       ` Rob Pike
2021-08-18 16:01         ` Ben Hancock
2021-08-19 11:44         ` Maurizio Boriani
2021-08-19 11:49           ` Gorka Guardiola
2021-08-19 18:59           ` unobe
2021-08-19 19:00             ` unobe
2021-08-19 20:41               ` Rob Pike
2021-08-18  9:13   ` Nick Owens
2021-08-18  9:26 ` Ole-Hjalmar Kristensen
2021-08-19  3:51   ` 6o205zd02
2021-08-19  7:29     ` igor
2021-08-20 10:55     ` Ole-Hjalmar Kristensen
2021-08-20 23:08       ` a
2021-08-20 23:31         ` Steve Simon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7ffd2fe2-1790-42df-8907-483b764aff1a@sirjofri.de \
    --to=sirjofri+ml-9fans@sirjofri.de \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).