all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Hongyi Zhao <hongyi.zhao@gmail.com>
To: Thibaut Verron <thibaut.verron@gmail.com>
Cc: help-gnu-emacs <help-gnu-emacs@gnu.org>
Subject: Re: Format code snippets of the wolfram language to improve readability.
Date: Wed, 27 Apr 2022 16:33:32 +0800	[thread overview]
Message-ID: <CAGP6PO+j3WMj-1JP1N5B4a+t0HVaU_P22ucULAT4Rgr_eLRAxA@mail.gmail.com> (raw)
In-Reply-To: <09b8f470-944c-1f96-ae38-5bf55aba4285@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3140 bytes --]

On Wed, Apr 27, 2022 at 3:59 PM Thibaut Verron <thibaut.verron@gmail.com> wrote:
>
>
> On 27/04/2022 02:32, Hongyi Zhao wrote:
> > On Tue, Apr 26, 2022 at 10:31 PM Thibaut Verron
> > <thibaut.verron@gmail.com> wrote:
> >> On 26/04/2022 16:00, Hongyi Zhao wrote:
> >>> On Tue, Apr 26, 2022 at 9:17 PM Thibaut Verron <thibaut.verron@gmail.com> wrote:
> >>>> Hi,
> >>>>
> >>>> Once the mode is activated, introducing newlines at key places should
> >>>> make the formula readable.
> >>> Yes. It works. But this method needs to hit many times on <RET> to
> >>> achieve the goal.
> >>>> You can also use sexp-navigation commands to
> >>>> quickly navigate the parentheses and find those key points.
> >>> I don't have this command, as shown in the attachment.
> >> It's not one command, but a set of commands for navigating paired
> >> expressions: for example forward-sexp C-M-f (jumping over a symbol or a
> >> paired expression), backward-sexp C-M-b, and down-list C-M-d (jumping
> >> inside the next paired expression). Those commands are designed for lisp
> >> languages, but they work remarkably well for most programming languages
> >> (and are even occasionally useful with natural languages).
> >>
> >> For example for your expression, you can get the formatted version I
> >> sent with: (indented to follow the depth in the expression)
> >>
> >> C-M-d
> >>     C-M-d
> >>       C-j
> >>       C-M-f C-M-f C-f C-j
> >>       C-M-d
> >>         C-j
> >>           C-M-d
> >>             C-M-d
> >>               C-M-f C-M-f C-f C-j
> >>               C-M-f C-M-f C-f C-j
> >>               C-M-f C-M-f C-f C-j
> >>               C-M-f
> >>             C-f
> >>           C-f C-j
> >>           C-M-f C-M-f
> >>        C-f
> >>     C-f C-j
> >>
> >> I know that it looks somewhat complicated and long, but it's easier done
> >> interactively than read. :)
> > It would be much more useful to generalize the working logic like the
> > one above and use a function implementation to handle the work here.
>
> As usual with this type of questions, the difficulty is in formalizing
> the requirement.
>
> For instance, if the goal is to break the line after each syntactic
> unit, that's reasonably easy to automatize. But then the first list will
> be 15 lines, so I don't think that's what you want.
>
> But as it stands, there is no "working logic", it's an interactive
> process. And the best the editor can do is make this process easy, by
> letting us navigate through the possible points for inserting line
> breaks, and leaving the choice to us.
>
> This is exactly what the sequence of key presses I suggested does: each
> M-C-f, M-C-d and C-f just means "jump to the next candidate break
> point", with sometimes C-M-f used for jumping over multiple points (such
> as the first list). And you just add a C-j (or RET) whenever you reach a
> point where you would like to break the expression.
>
> If you have a precise way to describe the result you want, I'm sure
> writing a function to do it won't be too difficult.

I think the criterion is readability and perhaps the results shown in
the attachment are desirable.

Regards,
HZ

[-- Attachment #2: image.png --]
[-- Type: image/png, Size: 51386 bytes --]

  reply	other threads:[~2022-04-27  8:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-26  8:42 Format code snippets of the wolfram language to improve readability Hongyi Zhao
2022-04-26  8:53 ` Robert Pluim
2022-04-26  9:34   ` Hongyi Zhao
2022-04-26  9:40   ` Hongyi Zhao
2022-04-26 13:13     ` Thibaut Verron
2022-04-26 14:00       ` Hongyi Zhao
2022-04-26 14:31         ` Thibaut Verron
2022-04-27  0:32           ` Hongyi Zhao
2022-04-27  1:14             ` Emanuel Berg via Users list for the GNU Emacs text editor
2022-04-27  7:59             ` Thibaut Verron
2022-04-27  8:33               ` Hongyi Zhao [this message]
2022-04-27  9:00                 ` thibaut.verron

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=CAGP6PO+j3WMj-1JP1N5B4a+t0HVaU_P22ucULAT4Rgr_eLRAxA@mail.gmail.com \
    --to=hongyi.zhao@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=thibaut.verron@gmail.com \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.