[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 6436d25: * package/darkroom: Change from :subtree to :exte
From: |
Stefan Monnier |
Subject: |
[elpa] master 6436d25: * package/darkroom: Change from :subtree to :external |
Date: |
Thu, 7 May 2020 14:34:32 -0400 (EDT) |
branch: master
commit 6436d255d772dafcd45a7bcb8a0e088ef7276a37
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* package/darkroom: Change from :subtree to :external
---
externals-list | 2 +-
packages/darkroom/README.md | 32 ----
packages/darkroom/darkroom.el | 379 ---------------------------------------
packages/darkroom/screenshot.png | Bin 160486 -> 0 bytes
4 files changed, 1 insertion(+), 412 deletions(-)
diff --git a/externals-list b/externals-list
index a2145fb..f2b7246 100644
--- a/externals-list
+++ b/externals-list
@@ -65,7 +65,7 @@
("company" :subtree
"https://github.com/company-mode/company-mode.git")
("company-math" :subtree "https://github.com/vspinu/company-math.git")
("context-coloring" :subtree
"https://github.com/jacksonrayhamilton/context-coloring.git")
- ("darkroom" :subtree
"https://github.com/capitaomorte/darkroom.git")
+ ("darkroom" :external
"https://github.com/capitaomorte/darkroom.git")
("dash" :external "https://github.com/magnars/dash.el.git")
("dbus-codegen" :subtree "https://github.com/ueno/dbus-codegen-el.git")
("delight" :subtree "http://git.savannah.gnu.org/r/delight.git")
diff --git a/packages/darkroom/README.md b/packages/darkroom/README.md
deleted file mode 100644
index 013709d..0000000
--- a/packages/darkroom/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-Darkroom
---------
-
-Remove visual distractions and focus on writing.
-
-![screenshot](screenshot.png)
-
-This extension is available on Emacs' own GNU ELPA. Alternatively, put
-`darkroom.el` somewhere in your load-path and `require` it.
-
-The main entrypoints are two minor modes:
-
-* `M-x darkroom-mode`
-
- `darkroom-mode` makes visual distractions disappear: the mode-line is
- temporarily elided, text is enlarged and margins are adjusted so that
- text centered on the window.
-
-* `M-x darkroom-tentative-mode`
-
- `darkroom-tentative-mode` is similar, but it only turns on these
- features if the current buffer occupies the sole window of the
- Emacs frame (i.e. all other windows are deleted). Whenever the
- frame is split to display more windows and more buffers, the buffer
- exits `darkroom-mode`. Whenever they are deleted, the buffer
- re-enters `darkroom-mode`.
-
-Personally, I always use `darkroom-tentative-mode`.
-
-See also the customization options `darkroom-margins` and
-`darkroom-fringes-outside-margins`, which affect both modes.
-
diff --git a/packages/darkroom/darkroom.el b/packages/darkroom/darkroom.el
deleted file mode 100644
index 8dcfbba..0000000
--- a/packages/darkroom/darkroom.el
+++ /dev/null
@@ -1,379 +0,0 @@
-;;; darkroom.el --- Remove visual distractions and focus on writing -*-
lexical-binding: t; -*-
-
-;; Copyright (C) 2014 Free Software Foundation, Inc.
-
-;; Author: João Távora <address@hidden>
-;; Maintainer: João Távora <address@hidden>
-;; Keywords: convenience, emulations
-;; Package-Requires: ((cl-lib "0.5"))
-;; Version: 0.2
-
-;; 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 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, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; The main entrypoints to this extension are two minor modes:
-;;
-;; M-x darkroom-mode
-;; M-x darkroom-tentative-mode
-;;
-;; `darkroom-mode' makes visual distractions disappear: the
-;; mode-line is temporarily elided, text is enlarged and margins are
-;; adjusted so that it's centered on the window.
-;;
-;; `darkroom-tentative-mode' is similar, but it doesn't immediately
-;; turn-on `darkroom-mode', unless the current buffer lives in the
-;; sole window of the Emacs frame (i.e. all other windows are
-;; deleted). Whenever the frame is split to display more windows and
-;; more buffers, the buffer exits `darkroom-mode'. Whenever they are
-;; deleted, the buffer re-enters `darkroom-mode'.
-;;
-;; Personally, I always use `darkroom-tentative-mode'.
-;;
-;; See also the customization options `darkroom-margins' and
-;; `darkroom-fringes-outside-margins', which affect both modes.
-
-;;; Code:
-
-(require 'cl-lib)
-(require 'face-remap)
-
-(defgroup darkroom nil
- "Remove visual distractions and focus on writing"
- :prefix "darkroom-"
- :group 'emulations)
-
-(defcustom darkroom-margins 'darkroom-guess-margins
- "Margins to use in `darkroom-mode'.
-
-Its value can be:
-
-- a floating point value betweeen 0 and 1, specifies percentage of
- window width in columns to use as a margin.
-
-- a cons cell (LEFT RIGHT) specifying the left and right margins
- in columns.
-
-- a function of a single argument, a window, that returns a cons
- cell interpreted like the previous option. An example is
- `darkroom-guess-margins', which see. Beware that this function
- is called very often, so if it does some non-trivial processing
- on the buffer's text, consider caching that value.
-
-Value is effective when `darkroom-mode' is toggled."
- :type '(choice float
- (cons integer integer)
- (function-item darkroom-guess-margins :doc "Guess margins")
- (function darkroom-guess-margins))
- :group 'darkroom)
-
-(defcustom darkroom-text-scale-increase 2
- "Steps to increase text size when in `darkroom-mode'.
-Value is passed to `text-scale-increase'."
- :type 'integer
- :group 'darkroom)
-
-(defcustom darkroom-fringes-outside-margins t
- "If non-nil use fringes outside margins for `darkroom-mode'"
- :type 'boolean
- :group 'darkroom)
-
-(defcustom darkroom-margin-increment 0.05
- "Increment to add used in `darkroom-increase-margins'."
- :type 'float
- :group 'darkroom)
-
-(defcustom darkroom-margins-if-failed-guess 0.15
- "Margins when `darkroom-guess-margins' fails.
-If `darkroom-guess-margins' failed to figure out margins to
-center the text, use this percentage of window width for the
-symmetical margins."
- :type 'float
- :group 'darkroom)
-
-(defcustom darkroom-verbose nil
- "If non-nil, be verbose about darkroom operations."
- :type 'boolean
- :group 'darkroom)
-
-(defvar darkroom--guess-margins-statistics-cache nil
- "Cache used by `darkroom-guess-margins'.")
-
-(defun darkroom--window-width (&optional window)
- "Calculate width of WINDOW in columns, considering text scaling.
-WINDOW defaults to the currently selected window. The function
-assumes the buffer to be filled with at least one character of an
-arbitrary, but fixed width. Narrowing is taken in consideration.
-The return value is a cons (COLS . SCALED-CHAR-WIDTH) where COLS
-is the desired width in columns and SCALED-CHAR-WIDTH is the
-width in pixels of a single character."
- (when (= (point-min) (point-max))
- (error "Cannot calculate the width of a single character"))
- (let* ((window (or window (selected-window)))
- (scaled-char-width (car (window-text-pixel-size
- window
- (point-min) (1+ (point-min)))))
- (char-width (frame-char-width))
- (margins (window-margins window)))
- (cons (truncate
- (+ (window-width window 'pixelwise)
- (* char-width (or (car margins) 0))
- (* char-width (or (cdr margins) 0)))
- scaled-char-width)
- scaled-char-width)))
-
-(defun darkroom-guess-margins (window)
- "Guess suitable margins for `darkroom-margins'.
-If in suitable conditions, collect some statistics about the
-buffer's line lengths, and apply a heuristic to figure out how
-wide to set the margins, comparing it to WINDOW's width in
-columns. If the buffer's paragraphs are mostly filled to
-`fill-column', margins should center it on the window, otherwise,
-the margins specified in `darkroom-margins-if-failed-guess'.
-
-In any of these conditions,`darkroom-margins-if-failed-guess' is
-also used:
-
-* if `visual-line-mode' is on;
-* if `variable-pitch-mode' is on;
-* if the buffer is empty.
-
-For testing purposes, WINDOW can also be an integer number which
-is a width in columns, in which case it will be used instead of a
-window's geometry."
- (if (or visual-line-mode
- (and buffer-face-mode
- (eq 'variable-pitch buffer-face-mode-face))
- (= (point-min) (point-max)))
- darkroom-margins-if-failed-guess
- (let* ((window-width-info (if (integerp window)
- window
- (darkroom--window-width window)))
- (window-width (car window-width-info))
- (scaled-char-width (cdr window-width-info))
- (top-quartile-avg
- (or darkroom--guess-margins-statistics-cache
- (set
- (make-local-variable
'darkroom--guess-margins-statistics-cache)
- (let* ((line-widths
- (save-excursion
- (goto-char (point-min))
- (cl-loop for start = (point)
- while (search-forward "\n"
- 20000
- 'no-error)
- for width = (truncate
- (car
- (window-text-pixel-size
- window
- start (1- (point))))
- scaled-char-width)
- unless (zerop width)
- collect width)))
- (n4 (max 1 (/ (length line-widths) 4))))
- (/ (apply '+ (cl-subseq (sort line-widths '>) 0 n4))
n4))))))
- (cond
- ((> top-quartile-avg
- window-width)
- (message "Long lines detected. Consider turning on `visual-line-mode'")
- darkroom-margins-if-failed-guess)
- ((> top-quartile-avg (* 0.9 fill-column))
- ;; calculate margins so that `fill-column' + 1 colums are
- ;; centered on the window.
- ;;
- (let ((margin (truncate (* (- window-width (1+ fill-column))
- (/ (float scaled-char-width)
- (frame-char-width)))
- 2)))
- (if darkroom-verbose
- (message "Choosing %s-wide margins based on fill-column %s"
- margin fill-column))
- (cons margin margin)))
- (t
- darkroom-margins-if-failed-guess)))))
-
-(defun darkroom--compute-margins (window)
- "From `darkroom-margins', computes desired margins for WINDOW."
- (let ((darkroom-margins
- (if (functionp darkroom-margins)
- (funcall darkroom-margins window)
- darkroom-margins)))
- (cond ((consp darkroom-margins)
- darkroom-margins)
- ((and (floatp darkroom-margins)
- (< darkroom-margins 1))
- (let ((delta (darkroom--float-to-columns darkroom-margins)))
- (cons delta delta)))
- (t
- (error "Illegal value in `darkroom-margins'")))))
-
-(defun darkroom--float-to-columns (f)
- (ceiling (* (let ((edges (window-edges)))
- (- (nth 2 edges) (nth 0 edges)))
- f)))
-
-(defvar darkroom--margin-factor 1
- "Buffer local factor affecting `darkroom--set-margins'")
-
-(defun darkroom--set-margins ()
- "Set darkroom margins for currently selected window"
- (let* ((window-configuration-change-hook nil)
- (window (selected-window))
- (margins (darkroom--compute-margins window)))
- ;; See description of
- ;; `fringes-outside-margins' for the reason
- ;; for this apparent noop
- (set-window-buffer window (current-buffer))
- (set-window-margins window
- (round
- (* darkroom--margin-factor
- (car margins)))
- (round
- (* darkroom--margin-factor
- (cdr margins))))))
-
-(defun darkroom--reset-margins ()
- "Reset darkroom margins for currently selected window."
- (set-window-margins (selected-window) 0 0))
-
-(defun darkroom-increase-margins (increment)
- "Increase darkroom margins by INCREMENT."
- (interactive (list darkroom-margin-increment))
- (set (make-local-variable 'darkroom--margin-factor)
- (* darkroom--margin-factor (+ 1 increment)))
- (mapc #'(lambda (w)
- (with-selected-window w
- (darkroom--set-margins)))
- (get-buffer-window-list (current-buffer))))
-
-(defun darkroom-decrease-margins (decrement)
- "Decrease darkroom margins by DECREMENT."
- (interactive (list darkroom-margin-increment))
- (darkroom-increase-margins (- decrement)))
-
-(defvar darkroom-mode-map
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd "C-M-+") 'darkroom-increase-margins)
- (define-key map (kbd "C-M--") 'darkroom-decrease-margins)
- map))
-
-(defconst darkroom--saved-variables
- '(mode-line-format
- header-line-format
- fringes-outside-margins)
- "Variables saved in `darkroom--saved-state'")
-
-(defvar darkroom--saved-state nil
- "Saved state before `darkroom-mode' is turned on.
-Alist of (VARIABLE . BEFORE-VALUE)")
-
-;; (defvar darkroom--saved-text-scale-mode-amount nil
-;; "Text scale before `darkroom-mode' is turned on.")
-
-(defun darkroom--enter (&optional just-margins)
- "Save current state and enter darkroom for the current buffer.
-With optional JUST-MARGINS, just set the margins."
- (unless just-margins
- (setq darkroom--saved-state
- (mapcar #'(lambda (sym)
- (cons sym (buffer-local-value sym (current-buffer))))
- darkroom--saved-variables))
- (setq mode-line-format nil
- header-line-format nil
- fringes-outside-margins darkroom-fringes-outside-margins)
- (text-scale-increase darkroom-text-scale-increase))
- (mapc #'(lambda (w)
- (with-selected-window w
- (darkroom--set-margins)))
- (get-buffer-window-list (current-buffer))))
-
-(defun darkroom--leave ()
- "Undo the effects of `darkroom--enter'."
- (mapc #'(lambda (pair)
- (set (make-local-variable (car pair)) (cdr pair)))
- darkroom--saved-state)
- (setq darkroom--saved-state nil)
- (text-scale-mode -1)
- (mapc #'(lambda (w)
- (with-selected-window w
- (darkroom--reset-margins)))
- (get-buffer-window-list (current-buffer))))
-
-(defun darkroom--enter-or-leave ()
- "Enter or leave darkroom according to window configuration."
- (cond ((= (count-windows) 1)
- (darkroom--enter darkroom--saved-state))
- (darkroom--saved-state
- (darkroom--leave))
- (t
- ;; for clarity, don't do anything
- )))
-
-(declare-function darkroom-tentative-mode "darkroom" t)
-
-;;;###autoload
-(define-minor-mode darkroom-mode
- "Remove visual distractions and focus on writing. When this
-mode is active, everything but the buffer's text is elided from
-view. The buffer margins are set so that text is centered on
-screen. Text size is increased (display engine allowing) by
-`darkroom-text-scale-increase'." nil nil nil
- (when darkroom-tentative-mode
- (display-warning
- 'darkroom
- (concat "Turning off `darkroom-tentative-mode' first. "
- "It doesn't go with `darkroom-mode'.")
- (let ((darkroom-mode nil))
- (darkroom-tentative-mode -1))))
- (cond (darkroom-mode
- (darkroom--enter)
- (add-hook 'window-configuration-change-hook 'darkroom--set-margins
- t t))
- (t
- (darkroom--leave)
- (remove-hook 'window-configuration-change-hook 'darkroom--set-margins
- t))))
-
-;;;###autoload
-(define-minor-mode darkroom-tentative-mode
- "Enters `darkroom-mode' when all other windows are deleted."
- nil " Room" darkroom-mode-map
- ;; always begin by removing the hook
- ;;
- (remove-hook 'window-configuration-change-hook
- 'darkroom--enter-or-leave 'local)
- (when darkroom-mode
- (display-warning
- 'darkroom
- (concat "Turning off `darkroom-mode' first. "
- "It doesn't go with `darkroom-tentative-mode'.")
- (let ((darkroom-tentative-mode nil))
- (darkroom-mode -1))))
- ;; turn darkroom on or off according to window state
- ;;
- (cond (darkroom-tentative-mode
- ;; re-add the hook when we are turning ourselves on
- ;;
- (add-hook 'window-configuration-change-hook
- 'darkroom--enter-or-leave 'append 'local)
- ;; call this right away if we're supposed to turn darkroom on
- ;; immediately.
- ;;
- (darkroom--enter-or-leave))
- (t
- (darkroom--leave))))
-
-
-(provide 'darkroom)
-;;; darkroom.el ends here
diff --git a/packages/darkroom/screenshot.png b/packages/darkroom/screenshot.png
deleted file mode 100644
index c8aacbf..0000000
Binary files a/packages/darkroom/screenshot.png and /dev/null differ
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] master 6436d25: * package/darkroom: Change from :subtree to :external,
Stefan Monnier <=