[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/sketch-mode 172961f: Implement easy insert image to buf
From: |
ELPA Syncer |
Subject: |
[elpa] externals/sketch-mode 172961f: Implement easy insert image to buffer |
Date: |
Mon, 20 Sep 2021 06:57:20 -0400 (EDT) |
branch: externals/sketch-mode
commit 172961f9752a0dd570b018e745d111d3d3424af0
Author: Daniel Nicolai <dalanicolai@gmail.com>
Commit: Daniel Nicolai <dalanicolai@gmail.com>
Implement easy insert image to buffer
---
sketch-mode.el | 32 ++++++++++++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/sketch-mode.el b/sketch-mode.el
index dd31446..2c7a2eb 100644
--- a/sketch-mode.el
+++ b/sketch-mode.el
@@ -480,7 +480,9 @@ else return nil"
[("D" "Show definition" sketch-show-definition)
("K" "Copy definition" sketch-copy-definition)
("S" "Save image" sketch-save)]
- [("q" "Quit transient" transient-quit-one)]])
+ [("b" "Insert image to buffer" sketch-insert-image-to-buffer
+ :transient transient--do-exit)
+ ("q" "Quit transient" transient-quit-one)]])
(transient-define-infix sketch-object ()
:description "Option with list"
@@ -1034,7 +1036,33 @@ PROPS is passed on to `create-image' as its PROPS list."
(transient-define-suffix sketch-save ()
(interactive)
- (image-save))
+ (let ((image (get-char-property (point) 'display))
+ (file (read-file-name "Save as: ")))
+ (with-temp-file file
+ (insert (plist-get (cdr image) :data)))))
+
+(transient-define-suffix sketch-insert-image-to-buffer (&optional
insert-at-end-of-file)
+ "Insert image to buffer at point.
+When prefixed with a universal argument \\[universal-argument]
+then insert at end of file.
+
+Prompts for buffer for insert, then for the image file name for
+save. If the image is saved in a sub-directory of the buffer file
+then insert a relative link, otherwise insert an absolute link."
+ (interactive "P")
+ (let* ((buffer (get-buffer (read-buffer "Add to buffer: ")))
+ (buffer-dir (file-name-directory (buffer-file-name buffer)))
+ (image (get-char-property (point) 'display))
+ (file (read-file-name "Save as: " buffer-dir)))
+ (kill-buffer "*sketch*")
+ (with-temp-file file
+ (insert (plist-get (cdr image) :data)))
+ (switch-to-buffer buffer)
+ (when insert-at-end-of-file
+ (goto-char (point-max)))
+ (insert (format "[[%s]]" (if (string-match buffer-dir file)
+ (concat "./" (file-name-nondirectory file))
+ file)))))
;;; Modify object
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/sketch-mode 172961f: Implement easy insert image to buffer,
ELPA Syncer <=