1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-05 11:45:45 +00:00

Improve ERC's matching of nicks and URLs (bug#38257)

* lisp/erc/erc-{button,match}.el (erc-{button,match}-syntax-table):
Omit (, ), and '; as they're not valid nick characters, per RFC 2812
section 2.3.1.  This enables correct matching/highlighting of nicks
when they're surrounded by parens, like (nick), and when adjacent to
an apostrophe, like nick's.
* lisp/erc/erc-button.el (erc-button-url-regexp): Use the regexp from
browse-url-button-regexp, which among other things, seems to handle
surrounding pair of parens better.
This commit is contained in:
Amin Bandali 2019-11-18 10:24:48 -05:00
parent d47b157969
commit 37e0d00c14
No known key found for this signature in database
GPG Key ID: 8B44A0CDC7B956F2
3 changed files with 15 additions and 11 deletions

View File

@ -1569,6 +1569,18 @@ and its value has been changed to Duck Duck Go.
The user option to use instead to alter text to be sent is now
'erc-pre-send-functions'.
---
*** Improve matching/highlighting of nicknames.
Open and close parenthesis and apostrophe are not considered valid
nick characters anymore, matching the given grammar in RFC 2812
section 2.3.1. This enables correct matching and highlighting of
nicks when they are surrounded by parentheses, like (nick), and when
adjacent to an apostrophe, like nick's.
---
*** Set 'erc-button-url-regexp' to 'browse-url-button-regexp'
which better handles surrounding pair of parentheses.
** EUDC
---

View File

@ -41,6 +41,7 @@
(require 'erc)
(require 'wid-edit)
(require 'erc-fill)
(require 'browse-url)
;;; Minor Mode
@ -87,12 +88,9 @@ above them."
:type 'face
:group 'erc-faces)
(defcustom erc-button-url-regexp
(concat "\\(www\\.\\|\\(s?https?\\|"
"ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\)"
"\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?"
"[-a-zA-Z0-9_=!?#$@~`%&*+\\/:;.,()]+[-a-zA-Z0-9_=#$@~`%&*+\\/()]")
(defcustom erc-button-url-regexp browse-url-button-regexp
"Regular expression that matches URLs."
:version "27.1"
:group 'erc-button
:type 'regexp)
@ -223,14 +221,11 @@ PAR is a number of a regexp grouping whose text will be passed to
(defvar erc-button-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?\( "w" table)
(modify-syntax-entry ?\) "w" table)
(modify-syntax-entry ?\[ "w" table)
(modify-syntax-entry ?\] "w" table)
(modify-syntax-entry ?\{ "w" table)
(modify-syntax-entry ?\} "w" table)
(modify-syntax-entry ?` "w" table)
(modify-syntax-entry ?' "w" table)
(modify-syntax-entry ?^ "w" table)
(modify-syntax-entry ?- "w" table)
(modify-syntax-entry ?_ "w" table)

View File

@ -246,14 +246,11 @@ and other miscellaneous functions."
;; just put it in erc.el
(defvar erc-match-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?\( "w" table)
(modify-syntax-entry ?\) "w" table)
(modify-syntax-entry ?\[ "w" table)
(modify-syntax-entry ?\] "w" table)
(modify-syntax-entry ?\{ "w" table)
(modify-syntax-entry ?\} "w" table)
(modify-syntax-entry ?` "w" table)
(modify-syntax-entry ?' "w" table)
(modify-syntax-entry ?^ "w" table)
(modify-syntax-entry ?- "w" table)
(modify-syntax-entry ?_ "w" table)