[elpa] externals/exwm 5c5729c 2/2: Fix various issues with multi-monitor support

2018-02-19 Thread Chris Feng
branch: externals/exwm
commit 5c5729c0d4832a870a928d6d7cc2f990a7e8f649
Author: Chris Feng 
Commit: Chris Feng 

Fix various issues with multi-monitor support

* exwm-workspace.el (exwm-workspace-switch): Do not hide X windows
when switching to a workspace on another output; update the
timestamp (last switched to) of a workspace frame.
(exwm-workspace-move-window): Do not hide an X window when moving it
to an active workspace on another output.

* exwm-floating.el (exwm-floating--set-floating):
* exwm-layout.el (exwm-layout-set-fullscreen):
* exwm-manage.el (exwm-manage--manage-window)
(exwm-manage--on-ConfigureRequest):
* exwm-systemtray.el (exwm-systemtray--refresh)
(exwm-systemtray--init):
Correct coordinate calculations.

* exwm-workspace.el (exwm-workspace--current-width): Removed since no
longer used.
---
 exwm-floating.el   |  74 -
 exwm-layout.el |   9 +
 exwm-manage.el |  26 -
 exwm-systemtray.el |  26 +++--
 exwm-workspace.el  | 105 ++---
 5 files changed, 131 insertions(+), 109 deletions(-)

diff --git a/exwm-floating.el b/exwm-floating.el
index 8cd0491..5a2c61e 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -129,52 +129,22 @@ This is also used by X window containers.")
  (y (slot-value exwm--geometry 'y))
  (width (slot-value exwm--geometry 'width))
  (height (slot-value exwm--geometry 'height)))
-(exwm--log "Floating geometry (original, absolute): %dx%d%+d%+d"
-   width height x y)
-(when (and (/= x 0)
-   (/= y 0))
-  (let ((workarea (elt exwm-workspace--workareas
-   (exwm-workspace--position original-frame
-(setq x (- x (aref workarea 0))
-  y (- y (aref workarea 1)
-(exwm--log "Floating geometry (original, relative): %dx%d%+d%+d"
-   width height x y)
+(exwm--log "Floating geometry (original): %dx%d%+d%+d" width height x y)
 ;; Save frame parameters.
 (set-frame-parameter frame 'exwm-outer-id outer-id)
 (set-frame-parameter frame 'exwm-id window-id)
 (set-frame-parameter frame 'exwm-container frame-container)
 ;; Fix illegal parameters
 ;; FIXME: check normal hints restrictions
-(let* ((display-width (frame-pixel-width original-frame))
-   (display-height (- (frame-pixel-height original-frame)
-  (if (exwm-workspace--minibuffer-own-frame-p)
-  0
-(window-pixel-height (minibuffer-window
-  original-frame)))
-  (* 2 (window-mode-line-height))
-  (window-header-line-height window)))
-   (display-height (* 2 (/ display-height 2 ;round to even
-  (if (> width display-width)
-  ;; Too wide
-  (progn (setq x 0
-   width display-width))
-;; Invalid width
-(when (= 0 width) (setq width (/ display-width 2)))
-;; Make sure at least half of the window is visible
-(when (or (> (+ x (/ width 2)) display-width) (> 0 (+ x (/ width 2
-  (setq x (/ (- display-width width) 2
-  (if (> height display-height)
-  ;; Too tall
-  (setq y 0
-height display-height)
-;; Invalid height
-(when (= 0 height) (setq height (/ display-height 2)))
-;; Make sure at least half of the window is visible
-(when (or (> (+ y (/ height 2)) display-height)
-  (> 0 (+ y (/ height 2
-  (setq y (/ (- display-height height) 2
+(let* ((workarea (elt exwm-workspace--workareas
+  (exwm-workspace--position original-frame)))
+   (x* (aref workarea 0))
+   (y* (aref workarea 1))
+   (width* (aref workarea 2))
+   (height* (aref workarea 3)))
   ;; Center floating windows
-  (when (and (= x 0) (= y 0))
+  (when (and (or (= x 0) (= x x*))
+ (or (= y 0) (= y y*)))
 (let ((buffer (exwm--id->buffer exwm-transient-for))
   window edges)
   (when (and buffer (setq window (get-buffer-window buffer)))
@@ -184,11 +154,29 @@ This is also used by X window containers.")
   (setq edges nil)))
   (if edges
   ;; Put at the center of leading window
-  (setq x (/ (- (elt edges 2) (elt edges 0) width) 2)
-y (/ (- (elt edges 3) (elt edges 1) height) 2))
+  (setq x (+ x* (/ (- (elt edges 2) (elt edges 0) width) 2))
+y (+ y* (/ (- (elt edges 3) (elt edges 1) height) 2)))
 ;; Put at the center of screen
-(setq x (/ (- display-width width) 2)
-  y (/ (- display-height 

[elpa] externals/exwm b8ce20b 1/2: Support displaying floating X windows on all workspaces

2018-02-19 Thread Chris Feng
branch: externals/exwm
commit b8ce20b4f3eac1228aef58b83a72a87ccdb819d0
Author: Chris Feng 
Commit: Chris Feng 

Support displaying floating X windows on all workspaces

; Setting _NET_WM_DESKTOP to 0x makes an X windows appearing
; on all desktops (EWMH).  It's tricky to do it for tiling X windows
; so it's not implemented.

* exwm-core.el (exwm--desktop): New buffer-local variable recording
the value of _NET_WM_DESKTOP.
* exwm-layout.el (exwm-layout--hide): Do not hide X windows with this
property set to 0x.

* exwm.el (exwm--update-desktop): New function for fetching the value
of _NET_WM_DESKTOP and setting `exwm--desktop'.
* exwm-manage.el (exwm-manage--manage-window): Use it.

* exwm-workspace.el (exwm-workspace--set-desktop): Also update
`exwm--desktop'.
---
 exwm-core.el  |  1 +
 exwm-layout.el|  4 +++-
 exwm-manage.el| 15 ++-
 exwm-workspace.el | 10 ++
 exwm.el   | 26 ++
 5 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/exwm-core.el b/exwm-core.el
index 68ec53b..71498c9 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -139,6 +139,7 @@ least SECS seconds later."
 (defvar-local exwm--on-KeyPress ;KeyPress event handler
   #'exwm-input--on-KeyPress-line-mode)
 ;; Properties
+(defvar-local exwm--desktop nil "_NET_WM_DESKTOP.")
 (defvar-local exwm-window-type nil "_NET_WM_WINDOW_TYPE.")
 (defvar-local exwm--geometry nil)
 (defvar-local exwm-class-name nil "Class name in WM_CLASS.")
diff --git a/exwm-layout.el b/exwm-layout.el
index a98e261..3f624ad 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -102,7 +102,9 @@
 (defun exwm-layout--hide (id)
   "Hide window ID."
   (with-current-buffer (exwm--id->buffer id)
-(unless (exwm-layout--iconic-state-p) ;already hidden
+(unless (or (exwm-layout--iconic-state-p)
+(and exwm--floating-frame
+ (eq #x exwm--desktop)))
   (exwm--log "Hide #x%x" id)
   (when exwm--floating-frame
 (let* ((container (frame-parameter exwm--floating-frame
diff --git a/exwm-manage.el b/exwm-manage.el
index b983ebf..790b6f1 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -73,6 +73,7 @@ You can still make the X windows floating afterwards."
 (declare-function exwm--update-struts "exwm.el" (id))
 (declare-function exwm--update-title "exwm.el" (id))
 (declare-function exwm--update-transient-for "exwm.el" (id &optional force))
+(declare-function exwm--update-desktop "exwm.el" (id &optional force))
 (declare-function exwm--update-window-type "exwm.el" (id &optional force))
 (declare-function exwm-floating--set-floating "exwm-floating.el" (id))
 (declare-function exwm-floating--unset-floating "exwm-floating.el" (id))
@@ -252,19 +253,7 @@ You can still make the X windows floating afterwards."
 (exwm-floating--unset-floating id))
   (exwm-input-grab-keyboard id)
   (setq exwm-workspace--switch-history-outdated t)
-  ;; Set _NET_WM_DESKTOP or move window.
-  (let ((reply (xcb:+request-unchecked+reply exwm--connection
-   (make-instance 'xcb:ewmh:get-_NET_WM_DESKTOP
-  :window id)))
-desktop)
-(when reply
-  (setq desktop (slot-value reply 'value)))
-(if (and desktop
- (/= desktop exwm-workspace-current-index)
- ;; Check the range.
- (< desktop (exwm-workspace--count)))
-(exwm-workspace-move-window desktop id)
-  (exwm-workspace--set-desktop id)))
+  (exwm--update-desktop id)
   (exwm-manage--update-ewmh-state id)
   (with-current-buffer (exwm--id->buffer id)
 (when (memq xcb:Atom:_NET_WM_STATE_FULLSCREEN exwm--ewmh-state)
diff --git a/exwm-workspace.el b/exwm-workspace.el
index b9cda25..e2dfa23 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -685,10 +685,12 @@ INDEX must not exceed the current number of workspaces."
 (defun exwm-workspace--set-desktop (id)
   "Set _NET_WM_DESKTOP for X window ID."
   (with-current-buffer (exwm--id->buffer id)
-(xcb:+request exwm--connection
-(make-instance 'xcb:ewmh:set-_NET_WM_DESKTOP
-   :window id
-   :data (exwm-workspace--position exwm--frame)
+(let ((desktop (exwm-workspace--position exwm--frame)))
+  (setq exwm--desktop desktop)
+  (xcb:+request exwm--connection
+  (make-instance 'xcb:ewmh:set-_NET_WM_DESKTOP
+ :window id
+ :data desktop)
 
 ;;;###autoload
 (defun exwm-workspace-move-window (frame-or-index &optional id)
diff --git a/exwm.el b/exwm.el
index 3e445b2..5cba378 100644
--- a/exwm.el
+++ b/exwm.el
@@ -145,6 +145,32 @@
   (while (= ?R (shell-command-on-region (point) (point) args
 (kill-emacs))
 
+(defun exwm--update-desktop (xwin)
+  "Update _NET_W

[elpa] externals/exwm updated (d22e674 -> 5c5729c)

2018-02-19 Thread Chris Feng
ch11ng pushed a change to branch externals/exwm.

  from  d22e674   Add customization settings
   new  b8ce20b   Support displaying floating X windows on all workspaces
   new  5c5729c   Fix various issues with multi-monitor support


Summary of changes:
 exwm-core.el   |   1 +
 exwm-floating.el   |  74 +++---
 exwm-layout.el |  13 +++---
 exwm-manage.el |  41 +--
 exwm-systemtray.el |  26 ++--
 exwm-workspace.el  | 115 ++---
 exwm.el|  26 
 7 files changed, 169 insertions(+), 127 deletions(-)



[elpa] master updated (e65aa3f -> 1143b69)

2018-02-19 Thread Ian Dunn
skolar42 pushed a change to branch master.

  from  e65aa3f   Merge commit '7cc0901489dff3d73ddc845ae060f938ecb85615' 
from company
   new  c41f462   Added check for empty dictionary during printing
   new  a17be3a   Documented new change to dictionary printing
   new  a500899   Added additional excludes to the Org example setup
   new  e301a4f   Regenerated info documentation
   new  c3683a0   Fixed bug with non-existent thing at point
   new  1143b69   Merge commit 'c3683a0a8a611fbd15bb3ec78ccac121843711c9'


Summary of changes:
 packages/paced/paced-tests.el|  11 
 packages/paced/paced.el  |  24 ++--
 packages/paced/paced.info| 105 +++
 packages/paced/paced.org |  24 
 packages/paced/test-files/fourth.org |   2 +
 5 files changed, 124 insertions(+), 42 deletions(-)
 create mode 100644 packages/paced/test-files/fourth.org



[elpa] master c41f462 1/6: Added check for empty dictionary during printing

2018-02-19 Thread Ian Dunn
branch: master
commit c41f46288b0afcdd362defd7d9b1a21cd73e42f7
Author: Ian Dunn 
Commit: Ian Dunn 

Added check for empty dictionary during printing

* paced.el (paced-dictionary-empty-p): New defmethod.
  (paced-dictionary-length-of-longest-word): Use it.
---
 paced.el | 18 +-
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/paced.el b/paced.el
index 73d9488..984c9be 100644
--- a/paced.el
+++ b/paced.el
@@ -331,6 +331,10 @@ customization interface."
   "Return the name of dictionary OBJ."
   (oref obj object-name))
 
+(cl-defmethod paced-dictionary-empty-p ((dict paced-dictionary))
+  "Return non-nil if DICT is empty."
+  (map-empty-p (oref dict usage-hash)))
+
 ;;; Current Dictionary
 
 (defcustom paced-global-dictionary-enable-alist nil
@@ -1271,11 +1275,15 @@ For how the current dictionary is determined, see
 
 (cl-defmethod paced-dictionary-length-of-longest-word ((dict paced-dictionary))
   "Return the length of the longest word in DICT."
-  (seq-max
-   (map-apply
-(lambda (key _value)
-  (length key))
-(oref dict usage-hash
+  (cond
+   ;; If DICT is empty, seq-max throws an error.
+   ((paced-dictionary-empty-p dict) 0)
+   (t
+(seq-max
+ (map-apply
+  (lambda (key _value)
+(length key))
+  (oref dict usage-hash))
 
 (cl-defmethod paced-dictionary-tabulated-list-entries ((dict paced-dictionary))
   "Create a value for `tabulated-list-entries' from DICT."



[elpa] master 1143b69 6/6: Merge commit 'c3683a0a8a611fbd15bb3ec78ccac121843711c9'

2018-02-19 Thread Ian Dunn
branch: master
commit 1143b69b08f2939e695db3423c06fd70f13f304f
Merge: e65aa3f c3683a0
Author: Ian Dunn 
Commit: Ian Dunn 

Merge commit 'c3683a0a8a611fbd15bb3ec78ccac121843711c9'
---
 packages/paced/paced-tests.el|  11 
 packages/paced/paced.el  |  24 ++--
 packages/paced/paced.info| 105 +++
 packages/paced/paced.org |  24 
 packages/paced/test-files/fourth.org |   2 +
 5 files changed, 124 insertions(+), 42 deletions(-)

diff --git a/packages/paced/paced-tests.el b/packages/paced/paced-tests.el
index c7dc3bb..3f8d0ea 100644
--- a/packages/paced/paced-tests.el
+++ b/packages/paced/paced-tests.el
@@ -41,6 +41,7 @@
 (defconst paced-first-test-file  (paced-test-file "first.txt"))
 (defconst paced-second-test-file (paced-test-file "second.cpp"))
 (defconst paced-third-test-file  (paced-test-file "third.org"))
+(defconst paced-fourth-test-file  (paced-test-file "fourth.org"))
 
 (defconst paced-test-dict-save-file (paced-test-file 
"paced-dictionary-case-sensitive"))
 (defconst paced-test-default-registered-map (make-hash-table :test 'equal))
@@ -491,6 +492,16 @@
   (let* ((paced-character-limit 3))
 (should-not (paced-excluded-p))
 
+(ert-deftest paced-no-thing-at-point ()
+  "Test for non-existent thing at point."
+  (let* ((org-element-use-cache nil) ;; Causes crashes, so disable it
+ (paced-exclude-function (lambda () nil))
+ (buffer-four (find-file-noselect paced-fourth-test-file)))
+(with-current-buffer buffer-four
+  (goto-char (point-min))
+  (should-not (paced-thing-at-point))
+  (should (paced-excluded-p)
+
 (provide 'paced-tests)
 
 ;;; paced-tests.el ends here
diff --git a/packages/paced/paced.el b/packages/paced/paced.el
index 73d9488..6b8f2aa 100644
--- a/packages/paced/paced.el
+++ b/packages/paced/paced.el
@@ -7,7 +7,7 @@
 ;; Keywords: convenience, completion
 ;; Package-Requires: ((emacs "25.1") (async "1.9.1"))
 ;; URL: https://savannah.nongnu.org/projects/paced-el/
-;; Version: 1.1.2
+;; Version: 1.1.3
 ;; Created: 22 Jan 2017
 ;; Modified: 05 Feb 2018
 
@@ -331,6 +331,10 @@ customization interface."
   "Return the name of dictionary OBJ."
   (oref obj object-name))
 
+(cl-defmethod paced-dictionary-empty-p ((dict paced-dictionary))
+  "Return non-nil if DICT is empty."
+  (map-empty-p (oref dict usage-hash)))
+
 ;;; Current Dictionary
 
 (defcustom paced-global-dictionary-enable-alist nil
@@ -601,9 +605,13 @@ the thing at point.  See
 `paced-point-in-thing-at-point-for-exclusion' for how to set
 this.
 
+If there is no current \"thing\" at point, the text under point
+will be excluded, and paced will move on.
+
 This also handles character limits set by
 `paced-character-limit'."
   (or (not (paced-thing-meets-limit-p))
+  (not (paced-bounds-of-thing-at-point)) ;; There's no thing at point
   (save-excursion
 (pcase paced-point-in-thing-at-point-for-exclusion
   (`beginning
@@ -1271,11 +1279,15 @@ For how the current dictionary is determined, see
 
 (cl-defmethod paced-dictionary-length-of-longest-word ((dict paced-dictionary))
   "Return the length of the longest word in DICT."
-  (seq-max
-   (map-apply
-(lambda (key _value)
-  (length key))
-(oref dict usage-hash
+  (cond
+   ;; If DICT is empty, seq-max throws an error.
+   ((paced-dictionary-empty-p dict) 0)
+   (t
+(seq-max
+ (map-apply
+  (lambda (key _value)
+(length key))
+  (oref dict usage-hash))
 
 (cl-defmethod paced-dictionary-tabulated-list-entries ((dict paced-dictionary))
   "Create a value for `tabulated-list-entries' from DICT."
diff --git a/packages/paced/paced.info b/packages/paced/paced.info
index c06565a..a39ac19 100644
--- a/packages/paced/paced.info
+++ b/packages/paced/paced.info
@@ -67,6 +67,7 @@ Contributing
 
 Changelog
 
+* 1.1.3: 113.
 * 1.1.2: 112.
 * 1.1.1: 111.
 * 1.1: 11.
@@ -617,6 +618,21 @@ This can be added to ‘paced-async.el’:
(when (match-string 1)
  (<= (match-beginning 1) p (match-end 1))
 
+ (defun org-at-keyword-p ()
+   "Return non-nil if point is at a keyword such as #+TITLE."
+   (save-excursion
+ (beginning-of-line)
+ (looking-at-p "^#\\+")))
+
+ (defun org-at-heading-prefix-p ()
+   "Return non-nil if looking at the leading stars of a heading."
+   (looking-at outline-regexp))
+
+ (defun org-at-hline-p ()
+   (save-excursion
+ (beginning-of-line)
+ (looking-at-p "^-")))
+
  (defun org-paced-exclude ()
(or
 ;; Drawers
@@ -624,6 +640,12 @@ This can be added to ‘paced-async.el’:
 (org-in-regexp ":END:") ;; but this does
 
 (org-at-tag-p) ;; tags
+(org-at-keyword-p) ;; Keywords, such as #+TITLE
+(org-at-heading-prefix-p) ;; Leading stars of a heading
+(org-at-item-bullet-p) ;; Item Bullets
+(org-at-timestamp-p) ;; Timestamps

[elpa] master a17be3a 2/6: Documented new change to dictionary printing

2018-02-19 Thread Ian Dunn
branch: master
commit a17be3a3da21a91dbdbf9f84b7fb42edbd92f08b
Author: Ian Dunn 
Commit: Ian Dunn 

Documented new change to dictionary printing
---
 paced.org | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/paced.org b/paced.org
index fae0379..04624dd 100644
--- a/paced.org
+++ b/paced.org
@@ -734,6 +734,8 @@ and letting one of us handle it is a good way to go.
 :PROPERTIES:
 :DESCRIPTION: List of changes by version
 :END:
+** 1.1.3
+- Fixed bug with printing an empty dictionary
 ** 1.1.2
 - Fixed bug with printing dictionaries
 ** 1.1.1



[elpa] master e301a4f 4/6: Regenerated info documentation

2018-02-19 Thread Ian Dunn
branch: master
commit e301a4f74ca6c5c21057f0045aad456b8e5eafbd
Author: Ian Dunn 
Commit: Ian Dunn 

Regenerated info documentation
---
 paced.info | 104 -
 1 file changed, 68 insertions(+), 36 deletions(-)

diff --git a/paced.info b/paced.info
index c06565a..8095407 100644
--- a/paced.info
+++ b/paced.info
@@ -67,6 +67,7 @@ Contributing
 
 Changelog
 
+* 1.1.3: 113.
 * 1.1.2: 112.
 * 1.1.1: 111.
 * 1.1: 11.
@@ -617,6 +618,21 @@ This can be added to ‘paced-async.el’:
(when (match-string 1)
  (<= (match-beginning 1) p (match-end 1))
 
+ (defun org-at-keyword-p ()
+   "Return non-nil if point is at a keyword such as #+TITLE."
+   (save-excursion
+ (beginning-of-line)
+ (looking-at-p "^#\\+")))
+
+ (defun org-at-heading-prefix-p ()
+   "Return non-nil if looking at the leading stars of a heading."
+   (looking-at outline-regexp))
+
+ (defun org-at-hline-p ()
+   (save-excursion
+ (beginning-of-line)
+ (looking-at-p "^-")))
+
  (defun org-paced-exclude ()
(or
 ;; Drawers
@@ -624,6 +640,12 @@ This can be added to ‘paced-async.el’:
 (org-in-regexp ":END:") ;; but this does
 
 (org-at-tag-p) ;; tags
+(org-at-keyword-p) ;; Keywords, such as #+TITLE
+(org-at-heading-prefix-p) ;; Leading stars of a heading
+(org-at-item-bullet-p) ;; Item Bullets
+(org-at-timestamp-p) ;; Timestamps
+(looking-at-p org-todo-regexp) ;; TODO keywords
+(org-at-hline-p) ;; H-lines
 
 (org-at-comment-p) ;; comments
 (org-in-regexp org-any-link-re) ;; links
@@ -885,6 +907,7 @@ Changelog
 
 * Menu:
 
+* 1.1.3: 113.
 * 1.1.2: 112.
 * 1.1.1: 111.
 * 1.1: 11.
@@ -892,7 +915,15 @@ Changelog
 * 1.0: 10.
 
 
-File: paced.info,  Node: 112,  Next: 111,  Up: Changelog
+File: paced.info,  Node: 113,  Next: 112,  Up: Changelog
+
+1.1.3
+=
+
+   • Fixed bug with printing an empty dictionary
+
+
+File: paced.info,  Node: 112,  Next: 111,  Prev: 113,  Up: Changelog
 
 1.1.2
 =
@@ -952,41 +983,42 @@ Initial release.
 
 Tag Table:
 Node: Top228
-Node: Copying1999
-Node: Introduction2818
-Node: Similar Packages3938
-Node: pabbrev4224
-Node: predictive5367
-Node: Installation6415
-Node: Basic Setup7077
-Node: Dictionaries7692
-Node: Creating a Dictionary8165
-Node: Editing a Dictionary9205
-Node: Selective Dictionaries9681
-Node: Dictionary Files11419
-Node: Printing a Dictionary12540
-Node: Population Commands13062
-Node: Built-in Commands13998
-Node: Properties14795
-Node: Custom Commands15793
-Node: Asynchronous Population18520
-Node: Example Setups19969
-Node: Org Agenda Files20270
-Node: Project Files22030
-Node: Markdown Files23166
-Node: Repopulating Dictionary After Saving24791
-Node: Repopulating Dictionary After Spellchecking the Buffer25719
-Node: Contributing26464
-Node: Bugs27238
-Node: Development27627
-Node: Documentation29388
-Node: Working with EDE29855
-Node: Changelog30898
-Node: 11231062
-Node: 11131180
-Node: 1131419
-Node: 10132026
-Node: 1032234
+Node: Copying2013
+Node: Introduction2832
+Node: Similar Packages3952
+Node: pabbrev4238
+Node: predictive5381
+Node: Installation6429
+Node: Basic Setup7091
+Node: Dictionaries7706
+Node: Creating a Dictionary8179
+Node: Editing a Dictionary9219
+Node: Selective Dictionaries9695
+Node: Dictionary Files11433
+Node: Printing a Dictionary12554
+Node: Population Commands13076
+Node: Built-in Commands14012
+Node: Properties14809
+Node: Custom Commands15807
+Node: Asynchronous Population18534
+Node: Example Setups19983
+Node: Org Agenda Files20284
+Node: Project Files22795
+Node: Markdown Files23931
+Node: Repopulating Dictionary After Saving25556
+Node: Repopulating Dictionary After Spellchecking the Buffer26484
+Node: Contributing27229
+Node: Bugs28003
+Node: Development28392
+Node: Documentation30153
+Node: Working with EDE30620
+Node: Changelog31663
+Node: 11331841
+Node: 11231966
+Node: 11132096
+Node: 1132335
+Node: 10132942
+Node: 1033150
 
 End Tag Table
 



[elpa] master a500899 3/6: Added additional excludes to the Org example setup

2018-02-19 Thread Ian Dunn
branch: master
commit a500899b9415ae82166bfb1bda9de14fc11154d3
Author: Ian Dunn 
Commit: Ian Dunn 

Added additional excludes to the Org example setup

* paced.org (Org Agenda Files): Added keywords, heading prefixes, item 
bullets,
  timestamps, horizontal lines, and todo keywords to excluded items.
---
 paced.org | 21 +
 1 file changed, 21 insertions(+)

diff --git a/paced.org b/paced.org
index 04624dd..6ce0ed0 100644
--- a/paced.org
+++ b/paced.org
@@ -477,6 +477,21 @@ added to ~paced-async.el~:
   (when (match-string 1)
 (<= (match-beginning 1) p (match-end 1))
 
+(defun org-at-keyword-p ()
+  "Return non-nil if point is at a keyword such as #+TITLE."
+  (save-excursion
+(beginning-of-line)
+(looking-at-p "^#\\+")))
+
+(defun org-at-heading-prefix-p ()
+  "Return non-nil if looking at the leading stars of a heading."
+  (looking-at outline-regexp))
+
+(defun org-at-hline-p ()
+  (save-excursion
+(beginning-of-line)
+(looking-at-p "^-")))
+
 (defun org-paced-exclude ()
   (or
;; Drawers
@@ -484,6 +499,12 @@ added to ~paced-async.el~:
(org-in-regexp ":END:") ;; but this does
 
(org-at-tag-p) ;; tags
+   (org-at-keyword-p) ;; Keywords, such as #+TITLE
+   (org-at-heading-prefix-p) ;; Leading stars of a heading
+   (org-at-item-bullet-p) ;; Item Bullets
+   (org-at-timestamp-p) ;; Timestamps
+   (looking-at-p org-todo-regexp) ;; TODO keywords
+   (org-at-hline-p) ;; H-lines
 
(org-at-comment-p) ;; comments
(org-in-regexp org-any-link-re) ;; links



[elpa] master c3683a0 5/6: Fixed bug with non-existent thing at point

2018-02-19 Thread Ian Dunn
branch: master
commit c3683a0a8a611fbd15bb3ec78ccac121843711c9
Author: Ian Dunn 
Commit: Ian Dunn 

Fixed bug with non-existent thing at point

* paced.el (paced-excluded-p): Check for non-existent thing at point.

* paced-tests.el: Add test.

* paced.org: Document change in Changelog.
---
 paced-tests.el| 11 +++
 paced.el  |  6 +-
 paced.info| 11 ++-
 paced.org |  1 +
 test-files/fourth.org |  2 ++
 5 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/paced-tests.el b/paced-tests.el
index c7dc3bb..3f8d0ea 100644
--- a/paced-tests.el
+++ b/paced-tests.el
@@ -41,6 +41,7 @@
 (defconst paced-first-test-file  (paced-test-file "first.txt"))
 (defconst paced-second-test-file (paced-test-file "second.cpp"))
 (defconst paced-third-test-file  (paced-test-file "third.org"))
+(defconst paced-fourth-test-file  (paced-test-file "fourth.org"))
 
 (defconst paced-test-dict-save-file (paced-test-file 
"paced-dictionary-case-sensitive"))
 (defconst paced-test-default-registered-map (make-hash-table :test 'equal))
@@ -491,6 +492,16 @@
   (let* ((paced-character-limit 3))
 (should-not (paced-excluded-p))
 
+(ert-deftest paced-no-thing-at-point ()
+  "Test for non-existent thing at point."
+  (let* ((org-element-use-cache nil) ;; Causes crashes, so disable it
+ (paced-exclude-function (lambda () nil))
+ (buffer-four (find-file-noselect paced-fourth-test-file)))
+(with-current-buffer buffer-four
+  (goto-char (point-min))
+  (should-not (paced-thing-at-point))
+  (should (paced-excluded-p)
+
 (provide 'paced-tests)
 
 ;;; paced-tests.el ends here
diff --git a/paced.el b/paced.el
index 984c9be..6b8f2aa 100644
--- a/paced.el
+++ b/paced.el
@@ -7,7 +7,7 @@
 ;; Keywords: convenience, completion
 ;; Package-Requires: ((emacs "25.1") (async "1.9.1"))
 ;; URL: https://savannah.nongnu.org/projects/paced-el/
-;; Version: 1.1.2
+;; Version: 1.1.3
 ;; Created: 22 Jan 2017
 ;; Modified: 05 Feb 2018
 
@@ -605,9 +605,13 @@ the thing at point.  See
 `paced-point-in-thing-at-point-for-exclusion' for how to set
 this.
 
+If there is no current \"thing\" at point, the text under point
+will be excluded, and paced will move on.
+
 This also handles character limits set by
 `paced-character-limit'."
   (or (not (paced-thing-meets-limit-p))
+  (not (paced-bounds-of-thing-at-point)) ;; There's no thing at point
   (save-excursion
 (pcase paced-point-in-thing-at-point-for-exclusion
   (`beginning
diff --git a/paced.info b/paced.info
index 8095407..a39ac19 100644
--- a/paced.info
+++ b/paced.info
@@ -921,6 +921,7 @@ File: paced.info,  Node: 113,  Next: 112,  Up: Changelog
 =
 
• Fixed bug with printing an empty dictionary
+   • Fixed bug with paced crashing on non-existent thing at point
 
 
 File: paced.info,  Node: 112,  Next: 111,  Prev: 113,  Up: Changelog
@@ -1014,11 +1015,11 @@ Node: Documentation30153
 Node: Working with EDE30620
 Node: Changelog31663
 Node: 11331841
-Node: 11231966
-Node: 11132096
-Node: 1132335
-Node: 10132942
-Node: 1033150
+Node: 11232034
+Node: 11132164
+Node: 1132403
+Node: 10133010
+Node: 1033218
 
 End Tag Table
 
diff --git a/paced.org b/paced.org
index 6ce0ed0..495f3cb 100644
--- a/paced.org
+++ b/paced.org
@@ -757,6 +757,7 @@ and letting one of us handle it is a good way to go.
 :END:
 ** 1.1.3
 - Fixed bug with printing an empty dictionary
+- Fixed bug with paced crashing on non-existent thing at point
 ** 1.1.2
 - Fixed bug with printing dictionaries
 ** 1.1.1
diff --git a/test-files/fourth.org b/test-files/fourth.org
new file mode 100644
index 000..2d7b9ad
--- /dev/null
+++ b/test-files/fourth.org
@@ -0,0 +1,2 @@
+#+CATEGORY: Testing
+Test1 Test2