linux-man.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Arsen Arsenović" <arsen@aarsen.me>
To: Dirk Gouders <dirk@gouders.net>
Cc: Alejandro Colomar <alx.manpages@gmail.com>,
	linux-man@vger.kernel.org, help-texinfo@gnu.org
Subject: Re: Playground pager lsp(1)
Date: Wed, 05 Apr 2023 16:19:53 +0200	[thread overview]
Message-ID: <87y1n6o1b3.fsf@aarsen.me> (raw)
In-Reply-To: <ghedoy8x5y.fsf@gouders.net>

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


Dirk Gouders <dirk@gouders.net> writes:

> Hi Alex,
>
>>> first of all, chances are that you consider this post as spam, because
>>> this list is about linux manual pages and not pagers.
>>
>> No, I don't.
>
> that's fine, thank you for taking the time give me feedback.
>
>>> I will try to not waste your time and attach the manual page and a link
>>> to a short (3:50) demo video.  To me it is absolutely OK should you just
>>> ignore this spam post, but perhaps you find lsp(1) interesting enough
>>> for further discussion.
>>
>> If you had a Debian package, I might try it :)
>>
>> Or maybe a Makefile to build from source...  What is this meson.build?
>
> If you want to take a look at it: there is a branch "next" which you
> might prefer as it closer resembles my current work.  There is a new
> toggle "-V" that can be used to completely turn off validation.
>
> I tried to assemble a Makefile that might work without a configure
> script and attach it to the end.  A prefix /usr is the default value, if
> your system prefers /usr/local you can use `make prefix=/usr/local
> install`.  I hope I prepared some reasonable Makefile...
>
> Concerning meson.build: I decided to have a look at meson as the
> autobuild tool for lsp.  I am just gathering experiences with it and if
> you have meson(1) installed you could use thes steps to (un)install lsp:
>
> $ # cd to lsp directory
> $ meson setup --prefix=/usr builddir ; cd builddir
> $ ninja install # or uninstall
>
>>>        •   Manual pages usually refer to other manual pages and lsp allows to
>>>            navigate those references and to visit them as new files with the
>>>            ability to also navigate through all opened manual pages or other
>>>            files.
>>
>> Out of curiosity, is this implemented with heuristics?  Or do you rely on
>> semantic mdoc(7) macros?
>
> This is purely based on heuristics (regex) which is one reason for
> validation of the found references.
>
>> If it's the first, how do you handle exit(1)?  Is it a reference, or is it
>> just code (with the meaning exit(EXIT_FAILURE))?
>
> exit(1) gets recognized as a possible reference but validation will fail.
>
>> If it's the second, I guess it doesn't support that in man(7), right?  At
>> least until MR is released.
>
>>> 
>>>            Here, lsp tries to minimize frustration caused by unavailable
>>>            references and verifies their existance before offering them as
>>>            references that can be visited.
>>
>> Do you mark these as broken references?  It is interesting to know that
>> there's a reference which you don't have installed.  It may prompt you to
>> install it and read it.  When I see a broken reference, I usually find it
>> with `apt-file find man3/page.3`, and then install the relevant package.
>
> No, broken references aren't marked.  Usually those unavailable
> references make sense, e.g. if a manual page references some program
> that not everyone uses.
>
> One example that I couldn't resolve so far is a reference to
> getconf(1) for example in fpatchconf(3).  Up to now I was not able to
> find out which package contains getconf(1)...
>
>>> 
>>>        •   In windowing environments lsp does complete resizes when windows
>>>            get resized. This means it also reloads the manual page to fit the
>>>            new window size.
>>
>> Good.  This I miss it in less(1) often.  Not sure if they had any strong
>> reason to not support that.
>
> Unfortunately, info(1) also doesn't do full resizes (on my system).

Do you mean the info pages' column limit or that the viewer itself
doesn't resize to fit the frame?  The latter would be a bug.

>>> 
>>>        •   Search for manual pages using apropos(1); in the current most basic
>>>            form it lists all known manual pages ready for text search and
>>>            visiting referenced manual pages.
>>
>> What does it bring that `apropos * | less` can't do?  If you're going the
>> of info(1) with full-blown system, it seems reasonable, but I never really
>> liked all that if it's just a new terminal and a command away from me.
>
> You get a pseudo-file from where you can reach any manual page on the
> system.  Originally I thought this to help novice users but since lsp is
> my system's PAGER I use it more often than expected.  I'm missing the
> ability to give keywords to apropos but that's just a matter of time to
> get fixed.
>
>>> 
>>>        •   lsp has an experimental TOC mode.
>>> 
>>>            This is a three-level folding mode trying to list only section and
>>>            sub-section names for quick navigation in manual pages.
>>
>> Nice, and this an important feature missing feature in info(1), as I
>> reported recently.  :)  Maybe they are interested in something similar.
>>
>>> 
>>>            The TOC is created using naive heuristics which works well to some
>>>            extend, but it might be incomplete. Users should keep that in mind.
>>
>> I guess the heuristics are just `^[^ ]` for SH and `^   [^ ]` for SS, right?
>> I tipically use something similar for searching for command flags, and as
>> you say, these just work.
>
> Yes, that is correct.  Only level 2 (0-based) does some additional
> look-ahead.
>
> Cheers,
>
> Dirk
>
> [2. Makefile --- application/octet-stream; Makefile.new]...


-- 
Arsen Arsenović

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 251 bytes --]

  reply	other threads:[~2023-04-05 14:24 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-25 20:37 Playground pager lsp(1) Dirk Gouders
2023-03-25 20:47 ` Dirk Gouders
2023-04-04 23:45   ` Alejandro Colomar
2023-04-05  5:35     ` Eli Zaretskii
2023-04-06  1:10       ` Alejandro Colomar
2023-04-06  8:11         ` Eli Zaretskii
2023-04-06  8:48           ` Gavin Smith
2023-04-07 22:01           ` Alejandro Colomar
2023-04-08  7:05             ` Eli Zaretskii
2023-04-08 13:02               ` Accessibility of man pages (was: Playground pager lsp(1)) Alejandro Colomar
2023-04-08 13:42                 ` Eli Zaretskii
2023-04-08 16:06                   ` Alejandro Colomar
2023-04-08 13:47                 ` Colin Watson
2023-04-08 15:42                   ` Alejandro Colomar
2023-04-08 19:48                   ` Accessibility of man pages Dirk Gouders
2023-04-08 20:02                     ` Eli Zaretskii
2023-04-08 20:46                       ` Dirk Gouders
2023-04-08 21:53                         ` Alejandro Colomar
2023-04-08 22:33                           ` Alejandro Colomar
2023-04-09 10:28                       ` Ralph Corderoy
2023-04-08 20:31                     ` Ingo Schwarze
2023-04-08 20:59                       ` Dirk Gouders
2023-04-08 22:39                         ` Ingo Schwarze
2023-04-09  9:50                           ` Dirk Gouders
2023-04-09 10:35                             ` Dirk Gouders
     [not found]                 ` <87a5zhwntt.fsf@ada>
2023-04-09 12:05                   ` Compressed man pages (was: Accessibility of man pages (was: Playground pager lsp(1))) Alejandro Colomar
2023-04-09 12:17                     ` Alejandro Colomar
2023-04-09 18:55                       ` G. Branden Robinson
2023-04-09 12:29                     ` Colin Watson
2023-04-09 13:36                       ` Alejandro Colomar
2023-04-09 13:47                         ` Compressed man pages Ralph Corderoy
2023-04-12  8:13                     ` Compressed man pages (was: Accessibility of man pages (was: Playground pager lsp(1))) Sam James
2023-04-12  8:32                       ` Compressed man pages Ralph Corderoy
2023-04-12 10:35                         ` Mingye Wang
2023-04-12 10:55                           ` Ralph Corderoy
2023-04-12 13:04                       ` Compressed man pages (was: Accessibility of man pages (was: Playground pager lsp(1))) Kerin Millar
2023-04-12 14:24                         ` Alejandro Colomar
2023-04-12 18:52                           ` Mingye Wang
2023-04-12 20:23                             ` Compressed man pages Alejandro Colomar
2023-04-13 10:09                             ` Ralph Corderoy
2023-04-07  2:18         ` Playground pager lsp(1) G. Branden Robinson
2023-04-07  6:36           ` Eli Zaretskii
2023-04-07 11:03             ` Gavin Smith
2023-04-07 14:43             ` man page rendering speed (was: Playground pager lsp(1)) G. Branden Robinson
2023-04-07 15:06               ` Eli Zaretskii
2023-04-07 15:08                 ` Larry McVoy
2023-04-07 17:07                 ` man page rendering speed Ingo Schwarze
2023-04-07 19:04                 ` man page rendering speed (was: Playground pager lsp(1)) Alejandro Colomar
2023-04-07 19:28                   ` Gavin Smith
2023-04-07 20:43                     ` Alejandro Colomar
2023-04-07 16:08               ` Colin Watson
2023-04-08 11:24               ` Ralph Corderoy
2023-04-07 21:26           ` reformatting man pages at SIGWINCH " Alejandro Colomar
2023-04-07 22:09             ` reformatting man pages at SIGWINCH Dirk Gouders
2023-04-07 22:16               ` Alejandro Colomar
2023-04-10 19:05                 ` Dirk Gouders
2023-04-10 19:57                   ` Alejandro Colomar
2023-04-10 20:24                   ` G. Branden Robinson
2023-04-11  9:20                     ` Ralph Corderoy
2023-04-11  9:39                     ` Dirk Gouders
2023-04-17  6:23                       ` G. Branden Robinson
2023-04-08 11:40               ` Ralph Corderoy
2023-04-05 10:02     ` Playground pager lsp(1) Dirk Gouders
2023-04-05 14:19       ` Arsen Arsenović [this message]
2023-04-05 18:01         ` Dirk Gouders
2023-04-05 19:07           ` Eli Zaretskii
2023-04-05 19:56             ` Dirk Gouders
2023-04-05 20:38             ` A less presumptive .info? (was: Re: Playground pager lsp(1)) Arsen Arsenović
2023-04-06  8:14               ` Eli Zaretskii
2023-04-06  8:56                 ` Gavin Smith
2023-04-07 13:14                 ` Arsen Arsenović
2023-04-06  1:31       ` Playground pager lsp(1) Alejandro Colomar
2023-04-06  6:01         ` Dirk Gouders

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=87y1n6o1b3.fsf@aarsen.me \
    --to=arsen@aarsen.me \
    --cc=alx.manpages@gmail.com \
    --cc=dirk@gouders.net \
    --cc=help-texinfo@gnu.org \
    --cc=linux-man@vger.kernel.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 NNTP newsgroup(s).