Permalink
Browse files

fic-mode removed. performance issue on 5000 C++ lines

  • Loading branch information...
1 parent fdccee7 commit 001af6e41598ed024f6f7b3a45d0263289ad23ea @redguardtoo committed Jan 27, 2016
Showing with 1 addition and 134 deletions.
  1. +1 −3 lisp/init-misc.el
  2. +0 −131 site-lisp/fic-mode/fic-mode.el
View
@@ -244,11 +244,9 @@
(defun generic-prog-mode-hook-setup ()
(unless (is-buffer-file-temp)
- ;; highlight FIXME/BUG/TODO in comment
- (require 'fic-mode)
+ ;; fic-mode has performance issue on 5000 line C++, we can always use swiper instead
;; don't spell check double words
(setq flyspell-check-doublon nil)
- (fic-mode 1)
;; enable for all programming modes
;; http://emacsredux.com/blog/2013/04/21/camelcase-aware-editing/
(subword-mode)
@@ -1,131 +0,0 @@
-;;; fic-mode.el --- Show FIXME/TODO/BUG(...) in special face only in comments and strings
-;;--------------------------------------------------------------------
-;;
-;; Copyright (C) 2010, Trey Jackson <bigfaceworm(at)gmail(dot)com>
-;; Copyright (C) 2010, Ivan Korotkov <twee(at)tweedle-dee(dot)org>
-;; Copyright (C) 2012, Le Wang
-;;
-;; Homepage: https://github.com/lewang/fic-mode
-;;
-;; This file is NOT part of 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
-;;
-;; To use, save fic-mode.el to a directory in your load-path.
-;;
-;; (require 'fic-mode)
-;;
-;; ;;; emacs 24
-;; (add-hook 'prog-mode-hook 'fic-mode)
-;;
-;; ;;; emacs 23 needs to add this to all programming modes you want this to be
-;; ;;; enabled for.
-;; ;;;
-;; ;;; e.g.
-;; (add-hook 'c++-mode-hook 'fic-mode)
-;; (add-hook 'emacs-lisp-mode-hook 'fic-mode)
-;;
-;; or
-;;
-;; M-x fic-mode
-
-(defgroup fic-mode nil
- "Highlight FIXME/TODO(...) in comments"
- :tag "FIC"
- :group 'tools
- :group 'font-lock
- :group 'faces)
-
-(defcustom fic-highlighted-words '("FIXME" "TODO" "BUG")
- "Words to highlight."
- :group 'fic-mode)
-
-(defcustom fic-author-name-regexp "[-a-zA-Z0-9_.]+"
- "Regexp describing FIXME/TODO author name"
- :group 'fic-mode)
-
-(defcustom fic-activated-faces
- '(font-lock-doc-face font-lock-string-face font-lock-comment-face)
- "Faces to look for to highlight words."
- :group 'fic-mode)
-
-(defface fic-face
- '((((class color))
- (:background "white" :foreground "red" :weight bold))
- (t (:weight bold)))
- "Face to fontify FIXME/TODO words"
- :group 'fic-mode)
-
-(defface fic-author-face
- '((((class color))
- (:background "white" :foreground "orangered" :underline t))
- (t (:underline t)))
- "Face to fontify author/assignee of FIXME/TODO"
- :group 'fic-mode)
-
-(defvar fic-mode-font-lock-keywords '((fic-search-for-keyword
- (1 'fic-face t)
- (2 'fic-author-face t t)))
- "Font Lock keywords for fic-mode")
-
-(defvar fic-saved-hash nil
- "(`fic-highlighted-words' . `fic-author-name-regexp')")
-(defvar fic-saved-regexp nil
- "Regexp cache for `fic-saved-hash'")
-
-(defun fic-search-re ()
- "Regexp to search for."
- (let ((hash (cons fic-highlighted-words fic-author-name-regexp)))
- (if (and fic-saved-hash
- (equal fic-saved-hash hash))
- fic-saved-regexp
- (let ((fic-words-re (concat "\\<"
- (regexp-opt fic-highlighted-words t)
- "\\>")))
- (setq fic-saved-hash hash
- fic-saved-regexp (concat fic-words-re "\\(?:(\\(" fic-author-name-regexp "\\))\\)?"))
- fic-saved-regexp))))
-
-(defun fic-in-doc/comment-region (pos)
- (memq (get-char-property pos 'face)
- fic-activated-faces))
-
-(defun fic-search-for-keyword (limit)
- (let ((match-data-to-set nil)
- found)
- (save-match-data
- (while (and (null match-data-to-set)
- (re-search-forward (fic-search-re) limit t))
- (if (and (fic-in-doc/comment-region (match-beginning 0))
- (fic-in-doc/comment-region (match-end 0)))
- (setq match-data-to-set (match-data)))))
- (when match-data-to-set
- (set-match-data match-data-to-set)
- (goto-char (match-end 0))
- t)))
-
-;;;###autoload
-(define-minor-mode fic-mode
- "Fic mode -- minor mode for highlighting FIXME/TODO in comments"
- :lighter ""
- :group 'fic-mode
- (let ((kwlist fic-mode-font-lock-keywords))
- (if fic-mode
- (font-lock-add-keywords nil kwlist 'append)
- (font-lock-remove-keywords nil kwlist))
- (font-lock-fontify-buffer)))
-
-(provide 'fic-mode)

0 comments on commit 001af6e

Please sign in to comment.