emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/webpaste afbcf6f 273/298: Merge branch 'comfort-paste'


From: ELPA Syncer
Subject: [nongnu] elpa/webpaste afbcf6f 273/298: Merge branch 'comfort-paste'
Date: Thu, 9 Dec 2021 19:00:28 -0500 (EST)

branch: elpa/webpaste
commit afbcf6fb90c6380a35d5c7898c613a593a87529f
Merge: ef33b0f 4e410b0
Author: Elis Hirwing <elis@hirwing.se>
Commit: Elis Hirwing <elis@hirwing.se>

    Merge branch 'comfort-paste'
---
 README.org                                         |  6 +++--
 .../unit/test-webpaste-paste-region-and-buffer.el  | 31 ++++++++++++++++++++++
 webpaste.el                                        | 13 +++++++++
 3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index 944092e..7623095 100644
--- a/README.org
+++ b/README.org
@@ -35,7 +35,8 @@ easiest way to install and configure packages.
   (use-package webpaste
     :ensure t
     :bind (("C-c C-p C-b" . webpaste-paste-buffer)
-           ("C-c C-p C-r" . webpaste-paste-region)))
+           ("C-c C-p C-r" . webpaste-paste-region)
+           ("C-c C-p C-p" . webpaste-paste-buffer-or-region)))
 #+END_SRC
 
 * Configuration
@@ -64,7 +65,8 @@ This can be added to the =:config= section of use-package:
   (use-package webpaste
     :ensure t
     :bind (("C-c C-p C-b" . webpaste-paste-buffer)
-           ("C-c C-p C-r" . webpaste-paste-region))
+           ("C-c C-p C-r" . webpaste-paste-region)
+           ("C-c C-p C-p" . webpaste-paste-buffer-or-region))
     :config
     (progn
       (setq webpaste-provider-priority '("ix.io" "dpaste.org"))))
diff --git a/tests/unit/test-webpaste-paste-region-and-buffer.el 
b/tests/unit/test-webpaste-paste-region-and-buffer.el
index 715dbe1..d6928cc 100644
--- a/tests/unit/test-webpaste-paste-region-and-buffer.el
+++ b/tests/unit/test-webpaste-paste-region-and-buffer.el
@@ -81,4 +81,35 @@
             (buffer-substring 10 100)))))
 
 
+(describe
+    "Paste buffer or region, but only choose one at a time depending on 
context"
+
+  (before-each
+    (spy-on 'webpaste-paste-buffer)
+    (spy-on 'webpaste-paste-region))
+
+  (after-each
+    (deactivate-mark))
+
+  (with-temp-buffer
+    (insert-file-contents "README.org")
+
+    (it "can paste entire buffers"
+      ;; Paste buffer
+      (webpaste-paste-buffer-or-region)
+      (expect 'webpaste-paste-buffer :to-have-been-called-times 1)
+      (expect 'webpaste-paste-region :to-have-been-called-times 0))
+
+    (it "can paste selected region"
+      ;; Mock selection of region
+      (set-mark 10)
+      (goto-char 100)
+      (activate-mark)
+
+      ;; Paste region
+      (webpaste-paste-buffer-or-region)
+      (expect 'webpaste-paste-buffer :to-have-been-called-times 0)
+      (expect 'webpaste-paste-region :to-have-been-called-times 1))))
+
+
 ;;; test-webpaste-paste-region-and-buffer.el ends here
diff --git a/webpaste.el b/webpaste.el
index 7895bbc..ae19831 100644
--- a/webpaste.el
+++ b/webpaste.el
@@ -548,6 +548,19 @@ Argument MARK Current mark."
     ;; Extract the buffer contents with buffer-substring and paste it
     (webpaste--paste-text (buffer-substring (point-min) (point-max)))))
 
+
+;;;###autoload
+(cl-defun webpaste-paste-buffer-or-region (&optional point mark)
+  "Paste current buffer or selected region to some paste service"
+  (interactive "r")
+
+  ;; if region is selected
+  (if (region-active-p)
+      ;; Paste selected region
+      (webpaste-paste-region point mark)
+    ;; Else, Paste buffer
+    (webpaste-paste-buffer)))
+
 
 
 (provide 'webpaste)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]