From: Jean Louis <bugs@gnu.support>
To: Christopher Dimech <dimech@gmx.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: outline-minor-mode and org-mode capabilities for programming languages
Date: Mon, 10 May 2021 10:32:10 +0300 [thread overview]
Message-ID: <YJjheh+FKdEeZZkx@protected.localdomain> (raw)
In-Reply-To: <trinity-ad9d42fe-0a19-4fe2-99f8-d2e0558d71b4-1620629602960@3c-app-mailcom-bs04>
* Christopher Dimech <dimech@gmx.com> [2021-05-10 09:53]:
> Mainly catering for highligting, headlines and folding to start
> with.
Isn't that what outline-minor-mode is for?
There are already other packages, I have been testing it, and they
worked similar to outline-minor-mode and could fold things.
How you want to designate headlines? It has to have some key
string. Maybe with 5 ;;;;; on beginning?
;;;;; Headline
Evaluate this, and you get highlighting of headlines:
(highlight-regexp "^;;;;;.*$" 'hi-yellow)
But I think you have to first play with:
{M-x customize-group RET outline RET}
as there is highlighting already included.
For headings, I think each mode need different definition on what is
heading.
So you can define heading with `outline-heading-alist'
outline-heading-alist is a variable defined in ‘outline.el’.
Its value is nil
Automatically becomes buffer-local when set.
Alist associating a heading for every possible level.
Each entry is of the form (HEADING . LEVEL).
This alist is used two ways: to find the heading corresponding to
a given level and to find the level of a given heading.
If a mode or document needs several sets of outline headings (for example
numbered and unnumbered sections), list them set by set and sorted by level
within each set. For example in texinfo mode:
(setq outline-heading-alist
'(("@chapter" . 2) ("@section" . 3) ("@subsection" . 4)
("@subsubsection" . 5)
("@unnumbered" . 2) ("@unnumberedsec" . 3)
("@unnumberedsubsec" . 4) ("@unnumberedsubsubsec" . 5)
("@appendix" . 2) ("@appendixsec" . 3)...
("@appendixsubsec" . 4) ("@appendixsubsubsec" . 5) ..))
Instead of sorting the entries in each set, you can also separate the
sets with nil.
You asked for:
- highligting,
- headlines; and
- folding
And I have demonstrated that more or less, that already exists in
outline-minor-mode, play with highlighting options, folding already
exists, and headings you may define yourself.
Let us say I have this comment and I keep just one space after ;;;;
;;;; ⟦⟦ LIST FUNCTIONS ⟧⟧
Folded text
;;;; ⟦⟦⟦ MORE LIST FUNCTIONS ⟧⟧⟧
(setq outline-heading-alist
'((";;;; ⟦" . 1) (";;;; ⟦⟦" . 2) (";;;; ⟦⟦⟦" . 3)))
this appears to work on my side in Emacs Lisp mode, but not in
fundamental. I can fold those headings and they remain visible.
> > Like should I mark functions with TODO/DONE?
>
> No
Those mentioned meta level features can look abstract to you, but they
are very real to me so far. It leans to subject of literate
programming, similar to programming by using Org Babel and embedded
functions that are described and later interpolated into the
script. Just that I can do that on the higher level rich attributes
and references and relations to other functions. As humans we are so
late with literate programming. That would help so many other people.
> I suggest that outline-minor-mode be also refactored and revamped, as I have
> seen much additional code on top of it (outline-magic, orgstruct,
> outshine).
For now, those features which you asked for, already exist, you may
try customizations, you are just few minutes away from having
highlighting, folding is already there, and defining headlines.
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
https://rms-support-letter.github.io/
next prev parent reply other threads:[~2021-05-10 7:32 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-09 8:53 outline-minor-mode and org-mode capabilities for programming languages Christopher Dimech
2021-05-09 9:11 ` Jean Louis
2021-05-09 12:35 ` Christopher Dimech
2021-05-09 12:45 ` Jean Louis
2021-05-09 13:00 ` Christopher Dimech
2021-05-09 16:27 ` Jean Louis
2021-05-09 17:35 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-09 17:50 ` Jean Louis
2021-05-09 18:02 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-09 19:09 ` Jean Louis
2021-05-10 1:49 ` Christopher Dimech
2021-05-10 6:22 ` Jean Louis
2021-05-10 6:53 ` Christopher Dimech
2021-05-10 7:32 ` Jean Louis [this message]
2021-05-10 8:32 ` Christopher Dimech
2021-05-10 9:29 ` Christopher Dimech
2021-05-10 9:31 ` Jean Louis
2021-05-10 10:01 ` Christopher Dimech
2021-05-10 11:43 ` Jean Louis
2021-05-10 12:52 ` Christopher Dimech
2021-05-10 17:05 ` Jean Louis
2021-05-11 2:00 ` Christopher Dimech
2021-05-10 10:27 ` Christopher Dimech
2021-05-10 11:53 ` Jean Louis
2021-05-10 12:32 ` Christopher Dimech
2021-05-10 16:07 ` Jean Louis
2021-05-11 2:26 ` Christopher Dimech
2021-05-10 8:46 ` Christopher Dimech
2021-05-10 9:15 ` Christopher Dimech
2021-05-10 9:33 ` Jean Louis
2021-05-10 6:08 ` Christopher Dimech
2021-05-10 1:25 ` Christopher Dimech
2021-05-09 13:02 ` Christopher Dimech
2021-05-09 16:34 ` Jean Louis
2021-05-09 14:02 ` Stefan Monnier via Users list for the GNU Emacs text editor
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=YJjheh+FKdEeZZkx@protected.localdomain \
--to=bugs@gnu.support \
--cc=dimech@gmx.com \
--cc=help-gnu-emacs@gnu.org \
/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).