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

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

[nongnu] elpa/webpaste b8e9245 230/298: Add helper function to find buff


From: ELPA Syncer
Subject: [nongnu] elpa/webpaste b8e9245 230/298: Add helper function to find buffers language for provider
Date: Thu, 9 Dec 2021 19:00:20 -0500 (EST)

branch: elpa/webpaste
commit b8e92457863130be757f2a2cdadedf44be8f370d
Author: Elis Hirwing <elis@hirwing.se>
Commit: Elis Hirwing <elis@hirwing.se>

    Add helper function to find buffers language for provider
---
 webpaste.el | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/webpaste.el b/webpaste.el
index b87405b..344c933 100644
--- a/webpaste.el
+++ b/webpaste.el
@@ -252,13 +252,12 @@ precalculated, and also available both for pre and post 
request access.")
                         (post-data '()))
                  (cl-pushnew (cons post-field text) post-data)
 
-                 ;; Fetch alist of languages for this provider
-                 (let ((provider-lang-alist (cdr (assoc provider-uri 
webpaste--provider-lang-alists))))
-                   ;; Fetch language name for this major mode for this provider
-                   (let ((language-name (cdr (assoc major-mode 
provider-lang-alist))))
-                     (if (and post-lang-field-name language-name)
+                 ;; Fetch language name for this provider
+                 (let ((language-name (webpaste--get-buffer-language 
provider-uri)))
+                   (if (and post-lang-field-name language-name)
                        ;; Append language to the post-data
-                       (cl-pushnew (cons post-lang-field-name language-name) 
post-data))))
+                       (cl-pushnew (cons post-lang-field-name language-name) 
post-data)))
+
                  post-data)))
 
 
@@ -398,6 +397,17 @@ Optional params:
   webpaste-provider-priority)
 
 
+(cl-defun webpaste--get-buffer-language (provider)
+  "Return language of the buffer that should be sent to the PROVIDER.
+
+This also depends on which provider it is since different providers might have
+different opinions of how the input for their fields should look like."
+
+  (let ((provider-lang-alist (cdr (assoc provider 
webpaste--provider-lang-alists))))
+    (let ((language-name (cdr (assoc major-mode provider-lang-alist))))
+      language-name)))
+
+
 (cl-defun webpaste--return-url (returned-url)
   "Return RETURNED-URL to user from the result of the paste service."
 
@@ -405,14 +415,11 @@ Optional params:
   (dolist (provider-separator webpaste--provider-separators)
     ;; Match if the separator is for this URI
     (when (string-match-p (regexp-quote (car provider-separator)) returned-url)
-      ;; Get alist of languages for this provider
-      (let ((provider-lang-alist (cdr (assoc (car provider-separator) 
webpaste--provider-lang-alists))))
-        ;; Get language name from list of languages
-        (let ((language-name (cdr (assoc major-mode provider-lang-alist))))
-          ;; If we get a language name
-          (when language-name
-            ;; Override link with link where we appended the language
-            (setq returned-url (concat returned-url (cdr provider-separator) 
language-name)))))))
+      ;; Look up the language of the buffer for this provider
+      (let ((language-name (webpaste--get-buffer-language (car 
provider-separator))))
+        ;; Append the language to the link if it existed
+        (when language-name
+          (setq returned-url (concat returned-url (cdr provider-separator) 
language-name))))))
 
   ;; Reset tested providers after successful paste
   (setq webpaste--tested-providers nil)



reply via email to

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