[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/webpaste b9b2ce0 143/298: Added support for languages for
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/webpaste b9b2ce0 143/298: Added support for languages for providers that appends language to the URL |
Date: |
Thu, 9 Dec 2021 19:00:02 -0500 (EST) |
branch: elpa/webpaste
commit b9b2ce0f72604064d68540b72279d7068a3fb121
Author: Elis Axelsson <elis.axelsson@gmail.com>
Commit: Elis Axelsson <elis.axelsson@gmail.com>
Added support for languages for providers that appends language to the URL
---
webpaste.el | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/webpaste.el b/webpaste.el
index e04eae6..9db68d7 100644
--- a/webpaste.el
+++ b/webpaste.el
@@ -81,6 +81,12 @@ if that variable is nil, it will use the list of names from
‘webpaste-provider
each run.")
+(defvar webpaste/provider-separators ()
+ "Variable for storing separators for providers that doesn't post language.
+Some providers accepts a post parameter with which language the code is. But
+some providers want to append the language to the resulting URL.")
+
+
(defvar webpaste/provider-lang-alists ()
"Variable for storing alists with languages for highlighting for providers.
This list will be populated when you add providers to have the languages
@@ -168,6 +174,7 @@ precalculated, and also available both for pre and post
request access.")
(post-lang-field-name nil)
(parser 'buffer-string)
(lang-overrides '())
+ (lang-uri-separator nil)
(error-lambda
webpaste/providers-error-lambda)
(post-field-lambda
webpaste/providers-default-post-field-lambda)
(sync nil))
@@ -200,6 +207,10 @@ Optional params:
a mode is set to nil, it will use fundamental-mode's value
as
fallback. Fundamental-mode's value can also be overridden.
+:lang-uri-separator Lang URI separator. This is used for providers that
+ appends the language to the end of the resulting URI and
+ needs a separator between language and link.
+
:parser Defines how request.el parses the result. Look up :parser
for
`request'. This defaults to 'buffer-string.
@@ -222,6 +233,11 @@ Optional params:
:sync Set to t to wait until request is done. Defaults to nil.
This should only be used for debugging purposes."
+ ;; If we get a separator sent to the function, append it to the list of
+ ;; separators for later use
+ (when lang-uri-separator
+ (cl-pushnew (cons uri lang-uri-separator) webpaste/provider-separators))
+
;; Add pre-calculated list of webpaste lang alists
(cl-pushnew (cons uri (webpaste/get-lang-alist-with-overrides
lang-overrides))
webpaste/provider-lang-alists)
@@ -253,18 +269,24 @@ Optional params:
,(webpaste-provider
:uri "https://ptpb.pw/"
:post-field "c"
+ :lang-uri-separator "/"
+ :lang-overrides '((emacs-lisp-mode . "elisp"))
:success-lambda webpaste/providers-success-location-header))
("ix.io"
,(webpaste-provider
:uri "http://ix.io/"
:post-field "f:1"
+ :lang-uri-separator "/"
+ :lang-overrides '((emacs-lisp-mode . "elisp"))
:success-lambda webpaste/providers-success-returned-string))
("sprunge.us"
,(webpaste-provider
:uri "http://sprunge.us/"
:post-field "sprunge"
+ :lang-uri-separator "?"
+ :lang-overrides '((emacs-lisp-mode . "elisp"))
:success-lambda webpaste/providers-success-returned-string))
("dpaste.com"
@@ -334,6 +356,19 @@ return it to the user."
(defun webpaste-return-url (returned-url)
"Return RETURNED-URL to user from the result of the paste service."
+ ;; Loop providers separators
+ (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)))))))
+
;; Reset tested providers after successful paste
(setq webpaste/tested-providers nil)
- [nongnu] elpa/webpaste 2bb8a4c 077/298: Set up tests directory, (continued)
- [nongnu] elpa/webpaste 2bb8a4c 077/298: Set up tests directory, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f338ca7 083/298: Added Travis-CI build status image, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f658339 096/298: Bump version number for stable release, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste e485847 107/298: Break out pasting to provider to own function, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 406d713 115/298: Shared success lambdas between different paste providers, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 7f62fed 118/298: Tidy up some lists in tests with backquotes, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 0e4ac51 132/298: Added support for buffer-language depending on mode for some providers, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 9ddc617 133/298: Simplify webpaste/get-lang-alist-with-overrides implementation, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste f08a2dc 136/298: Rename internal variable, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste af0474e 139/298: Merge branch 'naclander-master', ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste b9b2ce0 143/298: Added support for languages for providers that appends language to the URL,
ELPA Syncer <=
- [nongnu] elpa/webpaste c091dab 146/298: Change some types based on actual use, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 0144016 147/298: Remove unused variable, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste b5491ab 150/298: Bump version for stable release, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 29d10d7 151/298: Added paste.pound-python.org as provider, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 410e286 152/298: Added webpaste confirmation tests, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste db8c605 154/298: Rewrite test to cover both if link is opened in external browser or not, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 6b93c89 153/298: Merge branch 'naclander-master', ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste d2ed48a 156/298: Added unit test for appending of language to returning links, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste 899e08e 157/298: Change install method of emacs in travis for faster build times, ELPA Syncer, 2021/12/09
- [nongnu] elpa/webpaste e87a37c 158/298: Switched from ert to buttercup for testing, ELPA Syncer, 2021/12/09