X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=spray.el;h=8f25a9328fdd9209f1b3c5360181022987afc123;hb=85cc75a5f67c77acdea38c0d23ddf1cf4d83f19b;hp=76e4e36159ea55a6aa8538455adb8a16136f87ed;hpb=75f317ce2611178f4532e535638294c3f48cc552;p=spray diff --git a/spray.el b/spray.el index 76e4e36..8f25a93 100644 --- a/spray.el +++ b/spray.el @@ -1,4 +1,4 @@ -;;; cedit.el --- a speed reading mode +;;; spray.el --- a speed reading mode ;; Copyright (C) 2014 zk_phi @@ -19,7 +19,7 @@ ;; Author: zk_phi ;; URL: http://hins11.yu-yake.com/ ;; Author: Ian Kelling -;; Version: 0.0.1 +;; Version: 0.0.2 ;;; Commentary: @@ -38,6 +38,7 @@ ;;; Change Log: ;; 0.0.0 test release ;; 0.0.1 add spray-set-margins +;; 0.0.2 margin options, speed control, better quit ;;; Code: @@ -58,6 +59,7 @@ (define-key km (kbd "") 'spray-backward-word) (define-key km (kbd "") 'spray-forward-word) (define-key km (kbd "f") 'spray-faster) + (define-key km (kbd "s") 'spray-slower) (define-key km (kbd "q") 'spray-quit) (define-key km (kbd "") 'spray-quit) km) @@ -71,8 +73,8 @@ :foreground (face-foreground 'default) :slant 'normal) -(make-face 'spray-orp-face) -(set-face-attribute 'spray-orp-face nil +(make-face 'spray-accent-face) +(set-face-attribute 'spray-accent-face nil :foreground "red" :overline (face-foreground 'default) :underline (face-foreground 'default) @@ -83,12 +85,13 @@ (defvar spray--margin-string "" "Currently not used.") (defvar spray--base-overlay nil) -(defvar spray--orp-overlay nil) +(defvar spray--accent-overlay nil) (defvar spray--running nil) (defvar spray--delay 0) (defvar spray--saved-cursor-type nil) (defvar spray--saved-buffer-face nil) (defvar spray--saved-restriction nil) +(defvar spray--saved-smartparens-enabled nil) ;; * utility functions @@ -107,22 +110,32 @@ :keymap spray-mode-map (cond (spray-mode (setq spray--base-overlay (make-overlay (point-min) (point-max)) - spray--orp-overlay (make-overlay 0 0) + spray--accent-overlay (make-overlay 0 0) spray--saved-cursor-type cursor-type spray--saved-restriction (and (buffer-narrowed-p) (cons (point-min) (point-max))) spray--saved-buffer-face (and (boundp 'buffer-face-mode) buffer-face-mode - buffer-face-mode-face)) + buffer-face-mode-face) + spray--saved-smartparens-enabled (and (boundp 'smartparens-mode) + smartparens-mode) + spray--saved-highlight-symbol-enabled (and (boundp 'highlight-symbol-mode) + highlight-symbol-mode)) + ;; smartparens wrapping of all letter binds can cause problems. + ;; for example, it can cause auto-complete to activate + (and spray--saved-smartparens-enabled (smartparens-mode -1)) + (and spray--saved-highlight-symbol-enabled (highlight-symbol-mode -1)) (setq cursor-type nil) (let ((buffer-face-mode-face `(:height ,spray-height))) (buffer-face-mode 1)) (overlay-put spray--base-overlay 'priority 100) (overlay-put spray--base-overlay 'face 'spray-base-face) - (overlay-put spray--orp-overlay 'priority 101) - (overlay-put spray--orp-overlay 'face 'spray-orp-face) + (overlay-put spray--accent-overlay 'priority 101) + (overlay-put spray--accent-overlay 'face 'spray-accent-face) (spray-start)) (t + (and spray--saved-smartparens-enabled (smartparens-mode 1)) + (and spray--saved-highlight-symbol-enabled (highlight-symbol-mode 1)) (setq cursor-type spray--saved-cursor-type) (if spray--saved-restriction (narrow-to-region (car spray--saved-restriction) @@ -133,7 +146,7 @@ (let ((buffer-face-mode-face spray--saved-buffer-face)) (buffer-face-mode 1))) (delete-overlay spray--base-overlay) - (delete-overlay spray--orp-overlay) + (delete-overlay spray--accent-overlay) (spray-stop)))) (defun spray-quit () @@ -146,7 +159,7 @@ (let* ((beg (point)) (len (skip-chars-forward "^\s\t\n")) (end (point)) - (orp (+ beg (cl-case len + (accent (+ beg (cl-case len ((1) 1) ((2 3 4 5) 2) ((6 7 8 9) 3) @@ -158,12 +171,12 @@ ((?. ?! ?\? ?\;) 3) ((?, ?:) 1) (t 0)))) - (move-overlay spray--orp-overlay (1- orp) orp) + (move-overlay spray--accent-overlay (1- accent) accent) (move-overlay spray--base-overlay beg end) (spray-set-margins) (overlay-put spray--base-overlay 'before-string (concat spray--margin-string - (make-string (- 5 (- orp beg)) ?\s))) + (make-string (- 5 (- accent beg)) ?\s))) (narrow-to-region beg end))) (defun spray--update ()