[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [FEATURE] On line-numbers inside Org Babel Source Blocks.
From: |
Ihor Radchenko |
Subject: |
Re: [FEATURE] On line-numbers inside Org Babel Source Blocks. |
Date: |
Sat, 10 Aug 2024 15:15:23 +0000 |
divya@subvertising.org writes:
> I've been using Org Mode for literate programming purposes, and would
> like to have line-numbers within `src` blocks. I am able to export the
> Org buffer and get the line-numbers, but I am unable to do the same
> with regards to just in Org buffers. I am aware of `org-edit-special`,
> but I would rather appreciate if I can just look at a piece of code
> and know how long it is. I believe a header argument can be useful in
> toggling this.
I agree that it would be nice to have line numbering in code blocks.
> Since the source blocks can already implement syntax highlighting,
> font and other means of interacting with displaying Babel source
> blocks, theoretically this shouldn't be that difficult to implement?
> I'd be glad to help implementing this feature, if I can be slightly
> guided on where to refer to look for in the codebase.
AFAIK, it is not very easy. Syntax highlighting is just a matter of
applying the right text properties, but not line numbers.
Native line numbering in Emacs is implemented on low level, and is not
very exposed to Elisp. There is a limited set of options available for
customization - all in `display-line-numbers' variable. See "16.24
Customization of Display" section in Emacs manual.
I do not know anything built-in that can help in our situation, with
line numbers to be applied selectively.
We may try the approach taken by the old linum-mode, except that linum
is infamous for its poor performance. So, it might be better to hack on
https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/nlinum.el?h=externals/nlinum
as suggested in lisp/obsolete/linum.el commentary.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>