url-mode: use the first *sub* expression as URL

When auto-matching URLs (or custom regular expressions), use the
first *subexpression* as URL, rather than the while regex match.

This allows us to write custom regular expressions with prefix/suffix
strings that should not be included in the presented match.
This commit is contained in:
Daniel Eklöf 2025-02-03 13:56:57 +01:00
parent 31f536ff8c
commit a984531ce5
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 51 additions and 28 deletions

View file

@ -786,11 +786,13 @@ section.
Default: _sadfjklewcmpgh_.
*regex*
Regular expression to use when auto-detecting URLs. The format is
"POSIX-Extended Regular Expressions".
"POSIX-Extended Regular Expressions". Note that the first marked
subexpression is used a the URL. In other words, if you want the
whole regex matćh to be used as an URL, surround all of it with
parenthesis: *(regex-pattern)*.
Default: _([a-z][[:alnum:]-]+:(/{1,3}|[a-z0-9%])|www[:digit:]{0,3}[.])([^[:space:](){}<>]+|\(([^[:space:](){}<>]+|(\([^[:space:](){}<>]+\)))\*\)|\[([^]\[[:space:](){}<>]+|(\[[^]\[[:space:](){}<>]+\]))\*\])+(\(([^[:space:](){}<>]+|(\([^[:space:](){}<>]+\)))\*\)|\[([^]\[[:space:](){}<>]+|(\[[^]\[[:space:](){}<>]+\]))\*\]|[^]\[[:space:]`!(){};:'".,<>?«»“”‘’])_
Default: _(([a-z][[:alnum:]-]+:(/{1,3}|[a-z0-9%])|www[:digit:]{0,3}[.])([^[:space:](){}<>]+|\(([^[:space:](){}<>]+|(\([^[:space:](){}<>]+\)))\*\)|\[([^]\[[:space:](){}<>]+|(\[[^]\[[:space:](){}<>]+\]))\*\])+(\(([^[:space:](){}<>]+|(\([^[:space:](){}<>]+\)))\*\)|\[([^]\[[:space:](){}<>]+|(\[[^]\[[:space:](){}<>]+\]))\*\]|[^]\[[:space:]`!(){};:'".,<>?«»“”‘’]))_
# SECTION: regex
@ -817,7 +819,12 @@ regex-copy=[foo] Control+Mod1+Shift+q
*regex*
Regular expression to use when matching text. The format is
"POSIX-Extended Regular Expressions". Default: _not set_.
"POSIX-Extended Regular Expressions". Note that the first marked
subexpression is used a the URL. In other words, if you want the
whole regex matćh to be used as an URL, surround all of it with
parenthesis: *(regex-pattern)*.
Default: _not set_.
# SECTION: cursor