refactor space-doc, add to the FAQ.
This commit is contained in:
parent
3aaa39f155
commit
e3c86859b3
20
doc/FAQ.org
20
doc/FAQ.org
|
@ -40,6 +40,7 @@
|
||||||
- [[#try-spacemacs-without-modifying-my-existing-emacs-configuration][Try Spacemacs without modifying my existing Emacs configuration?]]
|
- [[#try-spacemacs-without-modifying-my-existing-emacs-configuration][Try Spacemacs without modifying my existing Emacs configuration?]]
|
||||||
- [[#make-copypaste-working-with-the-mouse-in-x11-terminals][Make copy/paste working with the mouse in X11 terminals?]]
|
- [[#make-copypaste-working-with-the-mouse-in-x11-terminals][Make copy/paste working with the mouse in X11 terminals?]]
|
||||||
- [[#use-helm-ag-to-search-only-in-files-of-a-certain-type][Use =helm-ag= to search only in files of a certain type?]]
|
- [[#use-helm-ag-to-search-only-in-files-of-a-certain-type][Use =helm-ag= to search only in files of a certain type?]]
|
||||||
|
- [[#modify-spacemacs-documentation-look-space-doc-mode][Modify spacemacs documentation look (space-doc-mode)]]
|
||||||
- [[#remap-paste-key-to-be-able-to-paste-copied-text-multiple-times][Remap paste key to be able to paste copied text multiple times]]
|
- [[#remap-paste-key-to-be-able-to-paste-copied-text-multiple-times][Remap paste key to be able to paste copied text multiple times]]
|
||||||
- [[#windows][Windows]]
|
- [[#windows][Windows]]
|
||||||
- [[#why-do-the-fonts-look-crappy-on-windows][Why do the fonts look crappy on Windows?]]
|
- [[#why-do-the-fonts-look-crappy-on-windows][Why do the fonts look crappy on Windows?]]
|
||||||
|
@ -494,6 +495,25 @@ some expressions to the search input:
|
||||||
This is possible because =helm-ag= is treating the search input as command-line
|
This is possible because =helm-ag= is treating the search input as command-line
|
||||||
arguments of the =ag= program.
|
arguments of the =ag= program.
|
||||||
|
|
||||||
|
** Modify spacemacs documentation look (space-doc-mode)
|
||||||
|
You can modify the list of visual enhancements applied by the =space-doc-mode=:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq spacemacs-space-doc-modificators
|
||||||
|
'(spacemacs//space-doc-org-indent-mode
|
||||||
|
spacemacs//space-doc-view-mode
|
||||||
|
spacemacs//space-doc-hide-line-numbers
|
||||||
|
spacemacs//space-doc-emphasis-overlays
|
||||||
|
spacemacs//space-doc-meta-tags-overlays
|
||||||
|
spacemacs//space-doc-link-protocol
|
||||||
|
spacemacs//space-doc-org-block-line-face-remap
|
||||||
|
spacemacs//space-doc-org-kbd-face-remap
|
||||||
|
spacemacs//space-doc-resize-inline-images
|
||||||
|
spacemacs//space-doc-advice-org-do-emphasis-faces)
|
||||||
|
#+END_SRC
|
||||||
|
It's the default value of the variable with all enhancements.
|
||||||
|
Each function in the list represents some modification.
|
||||||
|
You can make a modification deferred by moving it to =spacemacs-space-doc-modificators-deferred= list.
|
||||||
|
|
||||||
** Remap paste key to be able to paste copied text multiple times
|
** Remap paste key to be able to paste copied text multiple times
|
||||||
In vim and evil, pasting over a text would cause it to be copied, hence making it impossible to paste
|
In vim and evil, pasting over a text would cause it to be copied, hence making it impossible to paste
|
||||||
the same text multiple times.
|
the same text multiple times.
|
||||||
|
|
|
@ -38,40 +38,45 @@ keeping their content visible.
|
||||||
:init-value nil
|
:init-value nil
|
||||||
:lighter " SD"
|
:lighter " SD"
|
||||||
(if (derived-mode-p 'org-mode)
|
(if (derived-mode-p 'org-mode)
|
||||||
(dolist (modificator spacemacs--space-doc-modificators)
|
(dolist (modificator (append '(spacemacs//space-doc-set-cache
|
||||||
|
spacemacs//space-doc-runs-deferred)
|
||||||
|
spacemacs-space-doc-modificators))
|
||||||
(funcall modificator space-doc-mode))
|
(funcall modificator space-doc-mode))
|
||||||
(message (format "space-doc-mode error:%s isn't an org-mode buffer"
|
(message (format "space-doc-mode error:%s isn't an org-mode buffer"
|
||||||
(buffer-name)))
|
(buffer-name)))
|
||||||
(setq space-doc-mode nil)))
|
(setq space-doc-mode nil)))
|
||||||
|
|
||||||
(defvar spacemacs--space-doc-modificators
|
;; NOTE: Dont forget to update Spacemacs FAQ if you modify this list!
|
||||||
|
(defvar spacemacs-space-doc-modificators
|
||||||
'(spacemacs//space-doc-org-indent-mode
|
'(spacemacs//space-doc-org-indent-mode
|
||||||
spacemacs//space-doc-view-mode
|
spacemacs//space-doc-view-mode
|
||||||
spacemacs//space-doc-set-cache
|
|
||||||
spacemacs//space-doc-hide-line-numbers
|
spacemacs//space-doc-hide-line-numbers
|
||||||
spacemacs//space-doc-modf-emphasis-overlays
|
spacemacs//space-doc-emphasis-overlays
|
||||||
spacemacs//space-doc-modf-meta-tags-overlays
|
spacemacs//space-doc-meta-tags-overlays
|
||||||
spacemacs//space-doc-modf-link-protocol
|
spacemacs//space-doc-link-protocol
|
||||||
spacemacs//space-doc-modf-org-block-line-face-remap
|
spacemacs//space-doc-org-block-line-face-remap
|
||||||
spacemacs//space-doc-modf-org-kbd-face-remap
|
spacemacs//space-doc-org-kbd-face-remap
|
||||||
spacemacs//space-doc-modf-resize-inline-images
|
spacemacs//space-doc-resize-inline-images
|
||||||
spacemacs//space-doc-modf-advice-org-do-emphasis-faces
|
spacemacs//space-doc-advice-org-do-emphasis-faces)
|
||||||
(lambda (flag) (spacemacs//space-doc-run-modfs-deferred
|
"List of `space-doc' modificator functions for `org-mode' buffers.
|
||||||
'()
|
|
||||||
flag )))
|
|
||||||
"List of `space-doc' modificators for `org-mode' buffers.
|
|
||||||
The functions work with a current buffer and accept ENABLE(flag) argument.
|
The functions work with a current buffer and accept ENABLE(flag) argument.
|
||||||
If the argument has non-nil value - enable the modifications introduced
|
If the argument has non-nil value - enable the modifications introduced
|
||||||
by the function. Otherwise - disable.")
|
by the function. Otherwise - disable.")
|
||||||
|
|
||||||
|
;; NOTE: Dont forget to update Spacemacs FAQ if you modify this list!
|
||||||
|
(defvar spacemacs-space-doc-modificators-deferred
|
||||||
|
'()
|
||||||
|
"Same as `spacemacs-space-doc-modificators' but the modificators will
|
||||||
|
be run deferred.")
|
||||||
|
|
||||||
(defun spacemacs//space-doc-org-indent-mode (&optional flag)
|
(defun spacemacs//space-doc-org-indent-mode (&optional flag)
|
||||||
"Enable `org-indent-mode' if flag is non nil, disable it otherwise.
|
"Enable `org-indent-mode' if flag is non nil, disable it otherwise.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(org-indent-mode (if flag 1 -1)))
|
(org-indent-mode (if flag 1 -1)))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-view-mode (&optional flag)
|
(defun spacemacs//space-doc-view-mode (&optional flag)
|
||||||
"Enable `view-mode' if flag is non nil, disable it otherwise.
|
"Enable `view-mode' if flag is non nil, disable it otherwise.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(view-mode (if flag 1 -1)))
|
(view-mode (if flag 1 -1)))
|
||||||
|
|
||||||
(cl-defstruct spacemacs--space-doc-cache-struct
|
(cl-defstruct spacemacs--space-doc-cache-struct
|
||||||
|
@ -85,7 +90,7 @@ It is set by `spacemacs//space-doc-set-cache'.")
|
||||||
|
|
||||||
(defun spacemacs//space-doc-set-cache (&optional flag)
|
(defun spacemacs//space-doc-set-cache (&optional flag)
|
||||||
"Set `spacemacs--space-doc-cache'.
|
"Set `spacemacs--space-doc-cache'.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(setq spacemacs--space-doc-cache
|
(setq spacemacs--space-doc-cache
|
||||||
(if flag
|
(if flag
|
||||||
(let* ((kbd-bg (or (face-background 'org-kbd)
|
(let* ((kbd-bg (or (face-background 'org-kbd)
|
||||||
|
@ -105,7 +110,6 @@ This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
||||||
(dolist (el org-emphasis-alist)
|
(dolist (el org-emphasis-alist)
|
||||||
(when (member 'org-kbd el)
|
(when (member 'org-kbd el)
|
||||||
(return (car el))))))
|
(return (car el))))))
|
||||||
|
|
||||||
(make-spacemacs--space-doc-cache-struct
|
(make-spacemacs--space-doc-cache-struct
|
||||||
:marker-face marker-face
|
:marker-face marker-face
|
||||||
:btn-marker-face btn-marker-face
|
:btn-marker-face btn-marker-face
|
||||||
|
@ -113,14 +117,14 @@ This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
||||||
|
|
||||||
(defun spacemacs//space-doc-hide-line-numbers (&optional enable)
|
(defun spacemacs//space-doc-hide-line-numbers (&optional enable)
|
||||||
"If ENABLE is non-nil then toggle off the line numbers.
|
"If ENABLE is non-nil then toggle off the line numbers.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(if enable
|
(if enable
|
||||||
(spacemacs/toggle-line-numbers-off)
|
(spacemacs/toggle-line-numbers-off)
|
||||||
(when dotspacemacs-line-numbers
|
(when dotspacemacs-line-numbers
|
||||||
(spacemacs/toggle-line-numbers-on))))
|
(spacemacs/toggle-line-numbers-on))))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-org-do-emphasis-faces-advice (found)
|
(defun spacemacs//space-doc-org-do-emphasis-faces-advice (found)
|
||||||
"If FOUND has non-nil value - modify emphasized regions
|
"If FOUND has non-nil value then modify emphasized regions
|
||||||
appearances in the current buffer. The function uses
|
appearances in the current buffer. The function uses
|
||||||
`match-data' set by `org-do-emphasis-faces' function."
|
`match-data' set by `org-do-emphasis-faces' function."
|
||||||
;; `org-do-emphasis-faces' returns non-nil value when it
|
;; `org-do-emphasis-faces' returns non-nil value when it
|
||||||
|
@ -138,13 +142,13 @@ appearances in the current buffer. The function uses
|
||||||
(match-end 2)))
|
(match-end 2)))
|
||||||
found)
|
found)
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-advice-org-do-emphasis-faces (&optional enable)
|
(defun spacemacs//space-doc-advice-org-do-emphasis-faces (&optional enable)
|
||||||
"Advise org-do-emphasis-faces.
|
"Advise org-do-emphasis-faces.
|
||||||
If ENABLE is non-nil, add advice `org-do-emphasis-faces' function with
|
If ENABLE is non-nil, add advice `org-do-emphasis-faces' function with
|
||||||
`spacemacs//space-doc-org-do-emphasis-faces-advice'.
|
`spacemacs//space-doc-org-do-emphasis-faces-advice'.
|
||||||
NOTE: `org-do-emphasis-faces' is lazy and will emphasize only part of the
|
NOTE: `org-do-emphasis-faces' is lazy and will emphasize only part of the
|
||||||
current buffer so piggybacking it should be pretty performant solution.
|
current buffer so piggybacking it should be pretty performant solution.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(when enable
|
(when enable
|
||||||
(advice-add 'org-do-emphasis-faces
|
(advice-add 'org-do-emphasis-faces
|
||||||
:after
|
:after
|
||||||
|
@ -195,30 +199,30 @@ The character should be one of the markers from `org-emphasis-alist'."
|
||||||
(overlay-put ending-marker-overlay
|
(overlay-put ending-marker-overlay
|
||||||
'space-doc-emphasis-overlay t)))
|
'space-doc-emphasis-overlay t)))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-emphasis-overlays (&optional enable)
|
(defun spacemacs//space-doc-emphasis-overlays (&optional enable)
|
||||||
"Emphasis overlays.
|
"Emphasis overlays.
|
||||||
If ENABLE is non-nil, overlay regions which have already been emphasized by
|
If ENABLE is non-nil, overlay regions which have already been emphasized by
|
||||||
`org-do-emphasis-faces'in the current buffer.
|
`org-do-emphasis-faces'in the current buffer.
|
||||||
Otherwise remove all overlays with property `space-doc-emphasis-overlay'.
|
Otherwise remove all overlays with property `space-doc-emphasis-overlay'.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
;; Remove overlays.
|
;; Remove overlays.
|
||||||
(dolist (overlay (overlays-in (point-min) (point-max)))
|
(dolist (overlay (overlays-in (point-min) (point-max)))
|
||||||
(when (overlay-get overlay 'space-doc-emphasis-overlay)
|
(when (overlay-get overlay 'space-doc-emphasis-overlay)
|
||||||
(delete-overlay overlay)))
|
(delete-overlay overlay)))
|
||||||
(when enable
|
(when enable
|
||||||
(dolist (emphasized-region
|
(dolist (emphasized-region
|
||||||
(spacemacs//space-doc-find-regions-by-text-property
|
(spacemacs//space-doc-find-regions-by-text-property
|
||||||
'org-emphasis t))
|
'org-emphasis t))
|
||||||
(spacemacs//space-doc-emphasis-region
|
(spacemacs//space-doc-emphasis-region
|
||||||
(car emphasized-region)
|
(car emphasized-region)
|
||||||
(cadr emphasized-region)))))
|
(cadr emphasized-region)))))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-org-kbd-face-remap (&optional enable)
|
(defun spacemacs//space-doc-org-kbd-face-remap (&optional enable)
|
||||||
"Remove boxes for key bindings.
|
"Remove boxes from key bindings.
|
||||||
If ENABLE is non-nil, removes boxes from the `org-kbd'face in the current
|
If ENABLE is non-nil, removes boxes from the `org-kbd'face in the current
|
||||||
`org-mode' buffer.
|
`org-mode' buffer.
|
||||||
Otherwise, reverts them to default.
|
Otherwise, reverts them to default.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(if enable
|
(if enable
|
||||||
(set (make-local-variable
|
(set (make-local-variable
|
||||||
'spacemacs--space-doc-org-kbd-face-remap-cookie)
|
'spacemacs--space-doc-org-kbd-face-remap-cookie)
|
||||||
|
@ -227,10 +231,10 @@ This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
||||||
(face-remap-remove-relative
|
(face-remap-remove-relative
|
||||||
spacemacs--space-doc-org-kbd-face-remap-cookie)))
|
spacemacs--space-doc-org-kbd-face-remap-cookie)))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-resize-inline-images (&optional enable)
|
(defun spacemacs//space-doc-resize-inline-images (&optional enable)
|
||||||
"Resize inline images.
|
"Resize inline images.
|
||||||
If ENABLE is non nil then resize inline images.
|
If ENABLE is non nil then resize inline images.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
;; resizing is always performed even when the image is smaller
|
;; resizing is always performed even when the image is smaller
|
||||||
;; so we don't resize in README.org buffers for now
|
;; so we don't resize in README.org buffers for now
|
||||||
(let ((org-image-actual-width
|
(let ((org-image-actual-width
|
||||||
|
@ -239,12 +243,12 @@ This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
||||||
600)))
|
600)))
|
||||||
(org-display-inline-images)))
|
(org-display-inline-images)))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-meta-tags-overlays (&optional enable)
|
(defun spacemacs//space-doc-meta-tags-overlays (&optional enable)
|
||||||
"Modify meta tag appearance.
|
"Modify meta tag appearance.
|
||||||
If ENABLE is non-nil, modify `org-mode' meta tags appearance in the current
|
If ENABLE is non-nil, modify `org-mode' meta tags appearance in the current
|
||||||
buffer.
|
buffer.
|
||||||
Otherwise, disable modifcations.
|
Otherwise, disable modifcations.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(if enable
|
(if enable
|
||||||
;; TODO add more types of tags or meta-line if needed.
|
;; TODO add more types of tags or meta-line if needed.
|
||||||
(let* ((invisible-org-meta-tags-list
|
(let* ((invisible-org-meta-tags-list
|
||||||
|
@ -291,13 +295,13 @@ This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
||||||
(when (overlay-get overlay 'space-doc-tag-overlay)
|
(when (overlay-get overlay 'space-doc-tag-overlay)
|
||||||
(delete-overlay overlay)))))
|
(delete-overlay overlay)))))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-org-block-line-face-remap (&optional enable)
|
(defun spacemacs//space-doc-org-block-line-face-remap (&optional enable)
|
||||||
"Hide drawers.
|
"Hide drawers.
|
||||||
If ENABLE is non-nil, hide text of the code block meta lines in the current
|
If ENABLE is non-nil, hide text of the code block meta lines in the current
|
||||||
buffer. If the blocks have background color text won't be masked because it
|
buffer. If the blocks have background color text won't be masked because it
|
||||||
makes them look ugly with some themes.
|
makes them look ugly with some themes.
|
||||||
If ENABLE has nil, revert to the default.
|
If ENABLE has nil, revert to the default.
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(if enable
|
(if enable
|
||||||
(let* ((default-bg (or (face-background 'default)
|
(let* ((default-bg (or (face-background 'default)
|
||||||
'unspecified))
|
'unspecified))
|
||||||
|
@ -330,12 +334,12 @@ This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
||||||
(face-remap-remove-relative
|
(face-remap-remove-relative
|
||||||
spacemacs--space-doc-org-block-end-line-face-remap-cookie))))
|
spacemacs--space-doc-org-block-end-line-face-remap-cookie))))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-modf-link-protocol (&optional enable)
|
(defun spacemacs//space-doc-link-protocol (&optional enable)
|
||||||
"Open HTTPS links in the curren buffer.
|
"Open HTTPS links in the curren buffer.
|
||||||
If ENABLE is non-nil, use `spacemacs//space-doc-open' to open HTTPS links
|
If ENABLE is non-nil, use `spacemacs//space-doc-open' to open HTTPS links
|
||||||
in the current `org-mode' buffer.
|
in the current `org-mode' buffer.
|
||||||
Otherwise open them in the browser(default behavior).
|
Otherwise open them in the browser(default behavior).
|
||||||
This functions is aimed to be used with `spacemacs--space-doc-modificators'."
|
This functions is aimed to be used with `spacemacs-space-doc-modificators'."
|
||||||
(if enable
|
(if enable
|
||||||
(progn
|
(progn
|
||||||
;; Make `space-doc' https link opener buffer local
|
;; Make `space-doc' https link opener buffer local
|
||||||
|
@ -366,14 +370,15 @@ Open all other links with `browse-url'."
|
||||||
'subtree)
|
'subtree)
|
||||||
(browse-url (concat "https://" path)))))
|
(browse-url (concat "https://" path)))))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-run-modfs-deferred (modfs &optional flag)
|
(defun spacemacs//space-doc-runs-deferred (&optional flag)
|
||||||
"Run each modf function from the MODFS list in the `run-with-idle-timer'
|
"Run each modificator function from the
|
||||||
callback. This way heavy modfs won't affect document opening time.
|
`spacemacs-space-doc-modificators-deferred' list
|
||||||
FLAG is passed through."
|
in the next command loop. This way heavy modificator functions
|
||||||
(run-with-idle-timer 0 nil (lambda (modfs flag)
|
won't affect document opening time. FLAG is passed through."
|
||||||
(dolist (modf modfs)
|
(run-with-idle-timer 0 nil (lambda (flag)
|
||||||
|
(dolist (modf spacemacs-space-doc-modificators-deferred)
|
||||||
(funcall modf flag)))
|
(funcall modf flag)))
|
||||||
modfs flag))
|
flag))
|
||||||
|
|
||||||
(defun spacemacs//space-doc-find-regions-by-text-property
|
(defun spacemacs//space-doc-find-regions-by-text-property
|
||||||
(property value &optional start end)
|
(property value &optional start end)
|
||||||
|
@ -381,7 +386,6 @@ FLAG is passed through."
|
||||||
the current buffer. If START or END has non-nil value - use them as
|
the current buffer. If START or END has non-nil value - use them as
|
||||||
boundaries.
|
boundaries.
|
||||||
NOTE: It can find only fontified regions."
|
NOTE: It can find only fontified regions."
|
||||||
|
|
||||||
(let ((p-min (or start (point-min)))
|
(let ((p-min (or start (point-min)))
|
||||||
(p-max (or end (point-max)))
|
(p-max (or end (point-max)))
|
||||||
(r-end nil)
|
(r-end nil)
|
||||||
|
|
Loading…
Reference in New Issue