]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/adaptive-wrap/adaptive-wrap.el
Mark merge point of ggtags.
[gnu-emacs-elpa] / packages / adaptive-wrap / adaptive-wrap.el
index 28db6792e46293faa491ddc1947a74b54998126a..3787a992dedccabda449eb13767b68c36ab1e834 100644 (file)
@@ -1,10 +1,10 @@
 ;;; adaptive-wrap.el --- Smart line-wrapping with wrap-prefix
 
-;; Copyright (C) 2011  Stefan Monnier
+;; Copyright (C) 2011-2013  Free Software Foundation, Inc.
 
 ;; Author: Stephen Berman <stephen.berman@gmx.net>
 ;;         Stefan Monnier <monnier@iro.umontreal.ca>
-;; Version: 0.1
+;; Version: 0.5
 
 ;; 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
@@ -28,6 +28,8 @@
 
 ;;; Code:
 
+(require 'easymenu)
+
 (defcustom adaptive-wrap-extra-indent 0
   "Number of extra spaces to indent in `adaptive-wrap-prefix-mode'.
 
@@ -54,11 +56,13 @@ extra indent = 2
     nisi ut aliquip ex ea commodo consequat."
   :type 'integer
   :group 'visual-line)
-(make-local-variable 'adaptive-wrap-extra-indent)
+(make-variable-buffer-local 'adaptive-wrap-extra-indent)
 
 (defun adaptive-wrap-fill-context-prefix (beg en)
   "Like `fill-context-prefix', but with length adjusted by `adaptive-wrap-extra-indent'."
-  (let* ((fcp (fill-context-prefix beg en))
+  ;; Note: fill-context-prefix may return nil; See:
+  ;; http://article.gmane.org/gmane.emacs.devel/156285
+  (let* ((fcp (or (fill-context-prefix beg en) ""))
          (fcp-len (string-width fcp))
          (fill-char (if (< 0 fcp-len)
                         (string-to-char (substring fcp -1))
@@ -99,5 +103,13 @@ extra indent = 2
         (widen)
         (remove-text-properties (point-min) (point-max) '(wrap-prefix nil))))))
 
+(define-key-after (lookup-key menu-bar-options-menu [line-wrapping])
+  [adaptive-wrap]
+  '(menu-item "Adaptive Wrap" adaptive-wrap-prefix-mode
+             :visible (menu-bar-menu-frame-live-and-visible-p)
+             :help "Show wrapped long lines with an adjustable prefix"
+             :button (:toggle . (bound-and-true-p adaptive-wrap-prefix-mode)))
+  word-wrap)
+
 (provide 'adaptive-wrap)
 ;;; adaptive-wrap.el ends here