From: Thibaut Verron <thibaut.verron@gmail.com>
To: David Masterson <dsmasterson92630@outlook.com>,
Hongyi Zhao <hongyi.zhao@gmail.com>
Cc: help-gnu-emacs <help-gnu-emacs@gnu.org>
Subject: Re: Code folding in Emacs.
Date: Thu, 14 Oct 2021 10:21:59 +0200 [thread overview]
Message-ID: <0323cdae-b22c-c9e2-7ff6-77568b1a5e57@gmail.com> (raw)
In-Reply-To: <SJ0PR03MB54554A24C7B486C4EE10B5789BB89@SJ0PR03MB5455.namprd03.prod.outlook.com>
On 14/10/2021 07:47, David Masterson wrote:
> Hongyi Zhao <hongyi.zhao@gmail.com> writes:
>
>> I just found the following code snippet from here [1] for code folding in Emacs:
>>
>>
>> (global-set-key (kbd "<C-f5>") 'set-selective-display-dlw)
>>
>> (defun set-selective-display-dlw (&optional level)
>> "Fold text indented same of more than the cursor.
>> If level is set, set the indent level to LEVEL.
>> If 'selective-display' is already set to LEVEL, clicking
>> F5 again will unset 'selective-display' by setting it to 0."
>> (interactive "P")
>> (if (eq selective-display (1+ (current-column)))
>> (set-selective-display 0)
>> (set-selective-display (or level (1+ (current-column))))))
>>
>> The above code trick seems very simple, but it works for many
>> languages. So I recommend it here.
>>
>> [1] https://discourse.julialang.org/t/code-folding-for-emacs/41421/3
> See Origami.
Which is, sadly, now unmaintained. Most notably, it lacks documentation
on how to specify a parser, all one can do is guess based on the
existing ones. There are forks attempting to clear those gaps, but afaik
it's not there yet -- and they face distribution issues, with package
repositories refusing to keep several packages with the same name.
It would be great if Emacs had something like origami built-in, aka a
folding framework with a more flexible way to specify folding points
than regexps (hideshow) or headers (outline). Essentially something like
smie, but for folding: define functions to test if we are at an opener,
at a closer, to find the closer for an opener, to find the subnodes if
applicable, and let the package merge it all, construct the folding tree
and take care of the folding.
prev parent reply other threads:[~2021-10-14 8:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-10 8:16 Code folding in Emacs Hongyi Zhao
2021-10-10 11:37 ` tolugboji
2021-10-10 11:54 ` Hongyi Zhao
2021-10-10 12:42 ` tolugboji
2021-10-10 13:16 ` Hongyi Zhao
2021-10-10 13:49 ` tolugboji
2021-10-10 16:35 ` Daniel Fleischer
2021-10-11 0:39 ` Hongyi Zhao
2021-10-11 12:09 ` Hongyi Zhao
2021-10-11 12:56 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-10 14:29 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-10 20:11 ` Eric S Fraga
2021-10-14 5:47 ` David Masterson
2021-10-14 8:21 ` Thibaut Verron [this message]
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0323cdae-b22c-c9e2-7ff6-77568b1a5e57@gmail.com \
--to=thibaut.verron@gmail.com \
--cc=dsmasterson92630@outlook.com \
--cc=help-gnu-emacs@gnu.org \
--cc=hongyi.zhao@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.
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 read-only IMAP folder(s) and NNTP newsgroup(s).