[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 37e0d00: Improve ERC's matching of nicks and URLs (bug#38257)
From: |
Amin Bandali |
Subject: |
emacs-27 37e0d00: Improve ERC's matching of nicks and URLs (bug#38257) |
Date: |
Mon, 13 Jan 2020 02:17:21 -0500 (EST) |
branch: emacs-27
commit 37e0d00c143ddb6d5e978eb1d3ac9c1d1aba3860
Author: Amin Bandali <address@hidden>
Commit: Amin Bandali <address@hidden>
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.
---
etc/NEWS | 12 ++++++++++++
lisp/erc/erc-button.el | 11 +++--------
lisp/erc/erc-match.el | 3 ---
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 43805bb..ac818a2 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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
---
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
index 6e30b3a..e4f5a19 100644
--- a/lisp/erc/erc-button.el
+++ b/lisp/erc/erc-button.el
@@ -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)
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el
index 7a824cc..8b9ab33 100644
--- a/lisp/erc/erc-match.el
+++ b/lisp/erc/erc-match.el
@@ -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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-27 37e0d00: Improve ERC's matching of nicks and URLs (bug#38257),
Amin Bandali <=