unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Christopher Dimech <dimech@gmx.com>
To: Juri Linkov <juri@linkov.net>
Cc: 48724@debbugs.gnu.org
Subject: bug#48724: Code collapsing and outline headings for elisp
Date: Sun, 30 May 2021 01:55:33 +0200	[thread overview]
Message-ID: <trinity-4d4ea447-e74e-4b3c-ad0d-7c371743b75f-1622332533520@3c-app-mailcom-bs16> (raw)
In-Reply-To: <877djh42jg.fsf@mail.linkov.net>

> Sent: Sunday, May 30, 2021 at 9:57 AM
> From: "Juri Linkov" <juri@linkov.net>
> To: "Christopher Dimech" <dimech@gmx.com>
> Cc: 48724@debbugs.gnu.org
> Subject: Re: bug#48724: Code collapsing and outline headings for elisp
>
> > Currently, outline-minor-mode has the capability to treat "defun" constructs
> > as heading, allowing one to choose to hide some code from view by collapsing
> > the region of code.  It would be beneficial for the actual major mode itself
> > (i.e. emacs-lisp-mode) to handle the code collapsing, leaving the code highlighting
> > intact.  Code collapsing could also be extended beyond not only collapsing
> > functions and variables ((defun, defvar), but also to additional constructs that could
> > be indented (e.g. lists '(...), let, let*, pcase) and other constructs users could
> > find useful (e.g. if, when, ).
> >
> > And for outline-minor-mode, the mode could then be used to further enhance the structuring
> > of larger chunks of code (e.g. a collection of functions) using outline headings.  Outlining
> > would then be a separate capability different from code collapsing.
> 
> Currently everything is customizable in outline-minor-mode by just
> two variables: outline-regexp and outline-level.  So when necessary,
> emacs-lisp-mode could provide an option that will set different values
> of these variables, one of which could set outline-regexp to a regexp
> that matches: lists, '(...), let, let*, pcase, if, when, etc…

The general impression is that outline-minor-mode is a general mode
for customisable headings that are then handled by the respective
major mode.

General settings could be better, because some variables are not customizable.

Serious problem is that the two important variables: `outline-regexp' and
`outline-heading-alist' are not customizable by using "M-x customize-group".

Additionally both of them should be customizable per mode.  Don't you think so?

There has been a discussion today about outline-minor-mode settings for fortran
(both fixed and free form).  Have had a go at using "!" and "!!", but "Hide Body"
did not hide the body.

There could be some default headings for fortran when outline-minor-mode is enabled.
One could follow the current setup for emacs-lisp-mode, for fortran.

!! for heading level 1
!!! for subheading level 2
!!!! for subsubheading level 3

Together with "Hide Body" for lines beginning with "subroutine" and "function".








  reply	other threads:[~2021-05-29 23:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <trinity-a2e798f1-1257-407e-8dfc-4ad92004a227-1622516668807@3c-app-mailcom-bs01>
     [not found] ` <877djegtaq.fsf@protesilaos.com>
     [not found]   ` <trinity-53de0a34-f881-4ec9-b2e8-901b97d0d76f-1622519072162@3c-app-mailcom-bs01>
     [not found]     ` <8735u2grnc.fsf@protesilaos.com>
     [not found]       ` <trinity-fd06ae24-9c88-47ec-8fd1-e93789f670bf-1622551360761@3c-app-mailcom-bs01>
     [not found]         ` <87bl8pwvdb.fsf@protesilaos.com>
2021-05-28 20:59           ` bug#48724: Code collapsing and outline headings for elisp Christopher Dimech
2021-05-29 21:57             ` Juri Linkov
2021-05-29 23:55               ` Christopher Dimech [this message]
2021-05-30  1:38                 ` Christopher Dimech
2021-05-30 22:15                 ` Juri Linkov
2021-05-30 23:58                   ` Christopher Dimech
2021-06-01 11:24                   ` Christopher Dimech
2021-06-01 20:44                     ` Juri Linkov
2021-06-02  0:07             ` Christopher Dimech
2021-06-02 20:54               ` Juri Linkov

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=trinity-4d4ea447-e74e-4b3c-ad0d-7c371743b75f-1622332533520@3c-app-mailcom-bs16 \
    --to=dimech@gmx.com \
    --cc=48724@debbugs.gnu.org \
    --cc=juri@linkov.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.
Code repositories for project(s) associated with this public inbox

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

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