[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master c2ba732: * externals-list: Convert rcirc-color to :externa
From: |
Stefan Monnier |
Subject: |
[elpa] master c2ba732: * externals-list: Convert rcirc-color to :external |
Date: |
Sun, 29 Nov 2020 00:09:45 -0500 (EST) |
branch: master
commit c2ba732b6005aa472739bb716c0dbc300aa96064
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* externals-list: Convert rcirc-color to :external
---
externals-list | 3 +-
packages/rcirc-color/rcirc-color.el | 165 ------------------------------------
2 files changed, 2 insertions(+), 166 deletions(-)
diff --git a/externals-list b/externals-list
index 26f3c88..29d618f 100644
--- a/externals-list
+++ b/externals-list
@@ -93,7 +93,7 @@
("frog-menu" :external "https://github.com/clemera/frog-menu")
("gcmh" :external "https://gitlab.com/koral/gcmh")
("ggtags" :external "https://github.com/leoliu/ggtags")
- ("gited" :external nil)
+ ("gited" :external nil)
("gle-mode" :external nil)
("gnome-c-style" :external "https://github.com/ueno/gnome-c-style.git")
("gnorb" :external nil) ;; Was "https://github.com/girzel/gnorb"
@@ -154,6 +154,7 @@
("python" :core "lisp/progmodes/python.el")
;;FIXME:("org" :external ??) ;; Need to introduce snapshots!!
("rbit" :external nil)
+ ("rcirc-color" :external nil)
("realgud" :external "https://github.com/realgud/realgud")
("realgud-ipdb" :external "https://github.com/realgud/realgud-ipdb")
("realgud-jdb" :external "https://github.com/realgud/jdb")
diff --git a/packages/rcirc-color/rcirc-color.el
b/packages/rcirc-color/rcirc-color.el
deleted file mode 100644
index d00a279..0000000
--- a/packages/rcirc-color/rcirc-color.el
+++ /dev/null
@@ -1,165 +0,0 @@
-;;; rcirc-color.el --- color nicks -*- lexical-binding:t -*-
-
-;; Copyright (C) 2005-2018 Free Software Foundation, Inc.
-
-;; Author: Alex Schroeder <alex@gnu.org>
-;; Maintainer: Alex Schroeder <alex@gnu.org>
-;; Version: 0.4.1
-;; Package-Requires: ((emacs "24.4"))
-;; Keywords: comm
-
-;; This file is part of GNU Emacs.
-
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-
-;; This program is distributed in the hope that it will be
-;; useful, but WITHOUT ANY WARRANTY; without even the implied
-;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-;; PURPOSE. See the GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public
-;; License along with this program; if not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-;; MA 02111-1307 USA
-
-;;; Commentary:
-
-;; Use /COLOR to list all colored nicks with their color
-;; Use /COLOR NICK COLOR to color NICK using COLOR
-
-;;; Code:
-
-(require 'rcirc)
-
-(defun rcirc-color-distance (color1 color2)
- "Compute the difference between two colors.
-The difference between COLOR1 and COLOR2 is computed using the
-weighted Euclidean distance formula proposed on
-<http://www.compuphase.com/cmetric.htm>. Remember that every
-component for the formula is in the range of 0-xFF and
-`color-values' will return a range of 0-FFFF. Thus, divide
-everything by 256. This also helps preventing integer overflow."
- (let* ((dr (/ (- (nth 0 (color-values color1))
- (nth 0 (color-values color2)))
- 256))
- (dg (/ (- (nth 1 (color-values color1))
- (nth 1 (color-values color2)))
- 256))
- (db (/ (- (nth 2 (color-values color1))
- (nth 2 (color-values color2)))
- 256))
- (red-mean (/ (+ (nth 0 (color-values color1))
- (nth 0 (color-values color2)))
- 2 256)))
- (sqrt (+ (ash (* (+ 512 red-mean) dr dr) -8)
- (* 4 dg dg)
- (ash (* (- 767 red-mean) db db) -8)))))
-
-(defvar rcirc-colors
- (let ((min-distance 200); heuristics
- (bg (face-background 'default))
- (fg (face-foreground 'rcirc-my-nick))
- candidates)
- (dolist (item color-name-rgb-alist)
- (let ((color (car item)))
- (when (and (not (color-gray-p color))
- (> (rcirc-color-distance color bg) min-distance)
- (> (rcirc-color-distance color fg) min-distance))
- (setq candidates (cons color candidates)))))
- candidates)
- "Colors to use for nicks in rcirc.
-By default, all the non-grey colors that are very different from
-the default background are candidates. This uses `rcirc-color-distance'
-to compute distance between colors.
-
-To check out the list, evaluate (list-colors-display rcirc-colors).")
-
-(defvar rcirc-color-mapping (make-hash-table :test 'equal)
- "Hash-map mapping nicks to color names.")
-
-(defvar rcirc-color-is-deterministic nil
- "Normally rcirc just assigns random colors to nicks.
-These colors are based on the list in `rcirc-colors'.
-If you set this variable to a non-nil value, an md5 hash is
-computed based on the nickname and the first twelve bytes are
-used to determine the color: #rrrrggggbbbb.")
-
-(defvar rcirc-color-other-attributes nil
- "Other attributes to use for nicks.
-Example: (setq rcirc-color-other-attributes '(:weight bold))")
-
-(advice-add 'rcirc-facify :around #'rcirc-color--facify)
-(defun rcirc-color--facify (orig-fun string face &rest args)
- "Add colors to other nicks based on `rcirc-colors'."
- (when (and (eq face 'rcirc-other-nick)
- (> (length string) 0))
- (let ((cell (or (gethash string rcirc-color-mapping)
- (puthash (substring-no-properties string)
- `(:foreground
- ,(if rcirc-color-is-deterministic
- (concat "#" (substring (md5 string) 0 12))
- (elt rcirc-colors
- (random (length rcirc-colors))))
- ,@rcirc-color-other-attributes)
- rcirc-color-mapping))))
- (setq face (list cell))))
- (apply orig-fun string face args))
-
-(defun rcirc-markup-nick-colors (_sender _response)
- "Add a face to all known nicks in `rcirc-color-mapping'.
-This ignores SENDER and RESPONSE."
- (with-syntax-table rcirc-nick-syntax-table
- (while (re-search-forward "\\w+" nil t)
- (let ((face (gethash (match-string-no-properties 0)
rcirc-color-mapping)))
- (when face
- (rcirc-add-face (match-beginning 0) (match-end 0) face))))))
-
-(add-hook 'rcirc-markup-text-functions #'rcirc-markup-nick-colors)
-
-(defun-rcirc-command color (args)
- "Change one of the nick colors."
- (interactive)
- (setq args (split-string args))
- (rcirc-do-color (car args) (cadr args) process target))
-
-(defun rcirc-do-color (nick color process target)
- "Implement the /color command.
-NICK is the nick for which the new color ist set; if nil, all the
-nicks in `rcirc-color-mapping' are shown with their corresponding
-faces.
-
-COLOR is the color to use as the new foreground-color.
-
-PROCESS and TARGET are the standard arguments for rcirc
-commands."
- (if (not nick)
- (let (names)
- (maphash (lambda (key value)
- (add-text-properties
- 0 (length key)
- `(face (,value) help-echo ,(cdr value))
- key)
- (setq names (cons key names)))
- rcirc-color-mapping)
- (rcirc-print process (rcirc-nick process) "NOTICE" target
- (mapconcat 'identity names " ")))
- (unless color
- (error "Use what color?"))
- (puthash nick (cons 'foreground-color color) rcirc-color-mapping)))
-
-(advice-add 'rcirc-handler-NICK :before #'rcirc-color--handler-NICK)
-(defun rcirc-color--handler-NICK (_process sender args _text)
- "Update colors in `rcirc-color-mapping'."
- (let* ((old-nick (rcirc-user-nick sender))
- (cell (gethash old-nick rcirc-color-mapping))
- (new-nick (car args)))
- ;; don't delete the old mapping
- (when cell
- (puthash new-nick cell rcirc-color-mapping))))
-
-(provide 'rcirc-color)
-
-;;; rcirc-color.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] master c2ba732: * externals-list: Convert rcirc-color to :external,
Stefan Monnier <=