emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master be87268: * externals-list: Convert markchars to :external


From: Stefan Monnier
Subject: [elpa] master be87268: * externals-list: Convert markchars to :external
Date: Sat, 28 Nov 2020 22:45:47 -0500 (EST)

branch: master
commit be872683238c6d0f3bbda3a0c0ea0eb3706ebde8
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * externals-list: Convert markchars to :external
---
 externals-list                  |   3 +-
 packages/markchars/markchars.el | 283 ----------------------------------------
 2 files changed, 2 insertions(+), 284 deletions(-)

diff --git a/externals-list b/externals-list
index 665eea3..6384a0a 100644
--- a/externals-list
+++ b/externals-list
@@ -110,12 +110,13 @@
  ("leaf"               :external "https://github.com/conao3/leaf.el";)
  ("let-alist"          :core "lisp/emacs-lisp/let-alist.el")
  ("map"                 :core "lisp/emacs-lisp/map.el")
+ ("markchars" :external nil)
  ("math-symbol-lists"  :external 
"https://github.com/vspinu/math-symbol-lists.git";)
  ("mmm-mode"            :external "https://github.com/purcell/mmm-mode.git";)
  ("modus-operandi-theme":external 
"https://gitlab.com/protesilaos/modus-themes";)
  ("modus-vivendi-theme"        :external 
"https://gitlab.com/protesilaos/modus-themes";)
  ("muse"               :external "https://github.com/alexott/muse";) ;FIXME: 
Not nearly in-sync
- ("myers" :external nil)
+ ("myers"              :external nil)
  ("nameless"           :external "https://github.com/Malabarba/Nameless";)
  ("names"              :external "http://github.com/Malabarba/names";)
  ("nhexl-mode"         :external nil)
diff --git a/packages/markchars/markchars.el b/packages/markchars/markchars.el
deleted file mode 100644
index 0c6d2ac..0000000
--- a/packages/markchars/markchars.el
+++ /dev/null
@@ -1,283 +0,0 @@
-;;; markchars.el --- Mark chars fitting certain characteristics
-
-;; Copyright (C) 2011-2020  Free Software Foundation, Inc.
-
-;; Author: Lennart Borgman <lennart.borgman@gmail.com>
-;; Contributhor: Ted Zlatanov <tzz@lifelogs.com>
-;; Created: 2010-03-22 Mon
-;; Version: 0.2.2
-;; Last-Updated: 2011-04-15
-;; URL:
-;; Keywords:
-;; Compatibility:
-;;
-;; Features that can be used by this library:
-;;
-;;   `idn'.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Commentary:
-;;
-;; Mark special chars, by default nonascii, non-IDN chars, in modes
-;; where they may be confused with regular chars. See `markchars-mode'
-;; and `markchars-what'.  There are two modes: confusable detection
-;; (where we look for mixed scripts within a word, without using the
-;; http://www.unicode.org/reports/tr39/ confusable tables) and pattern
-;; detection (where any regular expressions can be matched).
-;;
-;; The marked text will have the 'markchars property set to either
-;; 'confusable or 'pattern and the face set to either
-;; `markchars-face-confusable' or `markchars-face-pattern'
-;; respectively.
-;;
-;; You can set `nobreak-char-display' to nil, and use
-;; `markchars-nobreak-space' and `markchars-nobreak-hyphen'
-;; in Dired buffers to highlight `nobreak-space' and `nobreak-hyphen'
-;; only in file names, not `nobreak-space' used by thousands separators
-;; in file sizes (bug#44236).
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Change log:
-;;
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; 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 3, 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; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
-;; Floor, Boston, MA 02110-1301, USA.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;;; Code:
-
-(require 'idn nil t)
-
-;;;###autoload
-(defgroup markchars nil
-  "Customization group for `markchars-mode'."
-  :group 'convenience)
-
-(defface markchars-light
-  '((t :underline "light blue"))
-  "Light face for `markchars-mode' char marking."
-  :group 'markchars)
-
-(defface markchars-heavy
-  '((t :underline "magenta"))
-  "Heavy face for `markchars-mode' char marking."
-  :group 'markchars)
-
-(defface markchars-white
-  '((t :underline "white"))
-  "White face for `markchars-mode' char marking."
-  :group 'markchars)
-
-(defface markchars-nobreak-space
-  '((t :inherit nobreak-space))
-  "Face for displaying nobreak space."
-  :group 'markchars)
-
-(defface markchars-nobreak-hyphen
-  '((t :inherit nobreak-hyphen))
-  "Face for displaying nobreak hyphens."
-  :group 'markchars)
-
-(defcustom markchars-face-pattern 'markchars-heavy
-  "Pointer to face used for marking matched patterns."
-  :type 'face
-  :group 'markchars)
-
-(defcustom markchars-face-confusable 'markchars-light
-  "Pointer to face used for marking confusables."
-  :type 'face
-  :group 'markchars)
-
-(defcustom markchars-face-nonidn 'markchars-white
-  "Pointer to face used for marking non-IDN characters."
-  :type 'face
-  :group 'markchars)
-
-(defcustom markchars-simple-pattern "[[:nonascii:]]+"
-  "Regexp for characters to mark, a simple pattern.
-
-By default it matches nonascii-chars."
-  :type 'regexp
-  :group 'markchars)
-
-(defvar markchars-nobreak-space-pattern
-  (rx (any ;; ?\N{SPACE}
-           ?\N{NO-BREAK SPACE}
-           ?\N{OGHAM SPACE MARK}
-           ?\N{EN QUAD}
-           ?\N{EM QUAD}
-           ?\N{EN SPACE}
-           ?\N{EM SPACE}
-           ?\N{THREE-PER-EM SPACE}
-           ?\N{FOUR-PER-EM SPACE}
-           ?\N{SIX-PER-EM SPACE}
-           ?\N{FIGURE SPACE}
-           ?\N{PUNCTUATION SPACE}
-           ?\N{THIN SPACE}
-           ?\N{HAIR SPACE}
-           ?\N{NARROW NO-BREAK SPACE}
-           ?\N{MEDIUM MATHEMATICAL SPACE}
-           ?\N{IDEOGRAPHIC SPACE}))
-  "A list of characters with general-category `Zs' (Separator, Space).")
-
-(defvar markchars-nobreak-hyphen-pattern
-  (rx (any ?\N{SOFT HYPHEN} ?\N{HYPHEN} ?\N{NON-BREAKING HYPHEN}))
-  "A list of hyphen characters.")
-
-(defcustom markchars-what
-  `(markchars-simple-pattern
-    markchars-confusables
-    ,@(when (fboundp 'idn-is-recommended) '(markchars-nonidn-fun)))
-  "Things to mark, a list of regular expressions or symbols."
-  :type `(repeat (choice :tag "Marking choices"
-                         (const :tag "Non-ASCII space chars"
-                                markchars-nobreak-space)
-                         (const :tag "Non-ASCII hyphen chars"
-                                markchars-nobreak-hyphen)
-                         (const
-                          :tag "Non IDN chars (Unicode.org tr39 suggestions)"
-                          markchars-nonidn-fun)
-                         (const :tag "Confusables" markchars-confusables)
-                         (const :tag "`markchars-simple-pattern'"
-                                markchars-simple-pattern)
-                         (regexp :tag "Arbitrary pattern")))
-  :group 'markchars)
-
-(make-obsolete-variable 'markchars-keywords 'markchars-what "markchars.el 0.2")
-
-(defvar markchars-used-keywords nil
-  "Keywords for font lock.")
-(put 'markchars-used-keywords 'permanent-local t)
-
-(defun markchars-set-keywords ()
-  "Set `markchars-used-keywords' from options."
-  (set (make-local-variable 'markchars-used-keywords)
-       (delq nil (mapcar (lambda (what)
-                           (when (eq what 'markchars-simple-pattern)
-                             (setq what markchars-simple-pattern))
-                           (cond
-                            ((eq what 'markchars-nobreak-space)
-                             (list
-                              markchars-nobreak-space-pattern
-                              (list 0 '(markchars--render-nobreak-space
-                                        (match-beginning 0)
-                                        (match-end 0)))))
-                            ((eq what 'markchars-nobreak-hyphen)
-                             (list
-                              markchars-nobreak-hyphen-pattern
-                              (list 0 '(markchars--render-nobreak-hyphen
-                                        (match-beginning 0)
-                                        (match-end 0)))))
-                            ((eq what 'markchars-nonidn-fun)
-                             (list
-                              "\\<\\w+\\>"
-                              (list 0 '(markchars--render-nonidn
-                                        (match-beginning 0)
-                                        (match-end 0)))))
-                            ((eq what 'markchars-confusables)
-                             (list
-                              "\\<\\w+\\>"
-                              (list 0 '(markchars--render-confusables
-                                        (match-beginning 0)
-                                        (match-end 0)))))
-                            ((stringp what)
-                             (list
-                              what
-                              (list 0 '(markchars--render-pattern
-                                        (match-beginning 0)
-                                        (match-end 0)))))))
-                         markchars-what))))
-
-(defun markchars--render-pattern (beg end)
-  "Assign markchars pattern properties between BEG and END."
-  (put-text-property beg end 'face markchars-face-pattern)
-  (put-text-property beg end 'markchars 'pattern))
-
-(defun markchars--render-confusables (beg end)
-  "Assign markchars confusable properties between BEG and END."
-  (let* ((text (buffer-substring-no-properties beg end))
-         ;; Strip combining characters (bug#36923)
-         (text (mapconcat (lambda (c)
-                            (when (zerop (get-char-code-property
-                                          c 'canonical-combining-class))
-                              (string c)))
-                          (string-to-list text) ""))
-         (scripts (mapcar
-                   (lambda (c) (aref char-script-table c))
-                   (string-to-list text)))
-         ;; `scripts-extra' is not nil is there was more than one script
-         (scripts-extra (delq (car scripts) scripts)))
-    (when scripts-extra
-      (put-text-property beg end 'markchars 'confusable)
-      (put-text-property beg end 'face markchars-face-confusable))))
-
-(defun markchars--render-nonidn (beg end)
-  "Assign markchars confusable properties between BEG and END."
-  (save-excursion
-    (goto-char beg)
-    (while (<= (point) end)
-      (let ((c (char-after)))
-        (when (and (> c 256)
-                   (not (idn-is-recommended c)))
-          (put-text-property (point) (1+ (point)) 'markchars 'nonidn)
-          (put-text-property (point) (1+ (point)) 'face 
markchars-face-nonidn)))
-      (forward-char))))
-
-(defun markchars--render-nobreak-space (beg end)
-  "Assign markchars pattern properties between BEG and END.
-In Dired/WDired buffers, highlight nobreak-space characters
-only in file names, not anywhere else, so it doesn't highlight
-nobreak-space characters used by thousands separators in file sizes."
-  (when (or (not (derived-mode-p 'dired-mode 'wdired-mode))
-            (or (get-text-property beg 'dired-filename)
-                (get-text-property end 'dired-filename)))
-    (put-text-property beg end 'face 'markchars-nobreak-space)
-    (put-text-property beg end 'markchars 'nobreak-space)))
-
-(defun markchars--render-nobreak-hyphen (beg end)
-  "Assign markchars pattern properties between BEG and END."
-  (put-text-property beg end 'face 'markchars-nobreak-hyphen)
-  (put-text-property beg end 'markchars 'nobreak-hyphen))
-
-;;;###autoload
-(define-minor-mode markchars-mode
-  "Mark special characters.
-Which characters to mark are defined by `markchars-pattern'.
-
-The default is to mark nonascii chars with a magenta underline."
-  :group 'markchars
-  :lighter " Mchar"
-  (if markchars-mode
-      (progn
-        (markchars-set-keywords)
-        (let ((props (make-local-variable 'font-lock-extra-managed-props)))
-          (add-to-list props 'markchars))
-        (font-lock-add-keywords nil markchars-used-keywords))
-    (font-lock-remove-keywords nil markchars-used-keywords))
-  (if (fboundp 'font-lock-flush)
-      (font-lock-flush) (font-lock-fontify-buffer)))
-
-;;;###autoload
-(define-globalized-minor-mode markchars-global-mode markchars-mode
-  (lambda () (markchars-mode 1))
-  :group 'markchars)
-
-(provide 'markchars)
-;;; markchars.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]