aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon-toot.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mastodon-toot.el')
-rw-r--r--lisp/mastodon-toot.el38
1 files changed, 24 insertions, 14 deletions
diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el
index eefceda..42cce36 100644
--- a/lisp/mastodon-toot.el
+++ b/lisp/mastodon-toot.el
@@ -1,6 +1,7 @@
;;; mastodon-toot.el --- Minor mode for sending Mastodon toots -*- lexical-binding: t -*-
;; Copyright (C) 2017-2019 Johnson Denen
+;; Copyright (C) 2020-2022 Marty Hiatt
;; Author: Johnson Denen <johnson.denen@gmail.com>
;; Marty Hiatt <martianhiatus@riseup.net>
;; Maintainer: Marty Hiatt <martianhiatus@riseup.net>
@@ -793,8 +794,8 @@ instance to edit a toot."
(defun mastodon-toot--insert-toot-iter (it)
"Insert iteration IT of toot."
- (let ((content (alist-get 'content it))
- (account (alist-get 'account it)))
+ (let ((content (alist-get 'content it)))
+ ;; (account (alist-get 'account it))
;; TODO: handle polls, media
(mastodon-tl--render-text content)))
@@ -832,7 +833,7 @@ eg. \"feduser@fed.social\" -> \"feduser@fed.social\"."
"")))
(defun mastodon-toot--get-bounds (regex)
- "Get bounds of tag or handle before point."
+ "Get bounds of tag or handle before point using REGEX."
;; needed because # and @ are not part of any existing thing at point
(save-match-data
(save-excursion
@@ -858,8 +859,7 @@ eg. \"feduser@fed.social\" -> \"feduser@fed.social\"."
;; just for the annotation-function?
(setq mastodon-toot-completions
(mastodon-search--search-accounts-query
- (buffer-substring-no-properties start end)
- :capf))))
+ (buffer-substring-no-properties start end)))))
:exclusive 'no
:annotation-function
(lambda (candidate)
@@ -1121,14 +1121,11 @@ LENGTH is the maximum character length allowed for a poll option."
"Prompt for a language and set `mastodon-toot--language'.
Return its two letter ISO 639 1 code."
(interactive)
- (let* ((langs (mapcar (lambda (x)
- (cons (cadr x)
- (car x)))
- mastodon-iso-639-1))
- (choice (completing-read "Language for this toot: "
- langs)))
+ (let* ((choice (completing-read "Language for this toot: "
+ mastodon-iso-639-1)))
(setq mastodon-toot--language
- (alist-get choice langs nil nil 'equal))))
+ (alist-get choice mastodon-iso-639-1 nil nil 'equal))
+ (message "Language set to %s" choice)))
;; we'll need to revisit this if the binds get
;; more diverse than two-chord bindings
@@ -1220,6 +1217,9 @@ REPLY-TEXT is the text of the toot being replied to."
(propertize "Visibility"
'toot-post-visibility t)
" ⋅ "
+ (propertize "Language"
+ 'toot-post-language t)
+ " "
(propertize "CW"
'toot-post-cw-flag t)
" "
@@ -1273,6 +1273,8 @@ REPLY-JSON is the full JSON of the toot being replied to."
(point-min)))
(cw-region (mastodon-tl--find-property-range 'toot-post-cw-flag
(point-min)))
+ (lang-region (mastodon-tl--find-property-range 'toot-post-language
+ (point-min)))
(toot-string (buffer-substring-no-properties (cdr header-region)
(point-max))))
(add-text-properties (car count-region) (cdr count-region)
@@ -1288,10 +1290,16 @@ REPLY-JSON is the full JSON of the toot being replied to."
"private")
"followers-only"
mastodon-toot--visibility))))
+ (add-text-properties (car lang-region) (cdr lang-region)
+ (list 'display
+ (if mastodon-toot--language
+ (format "Language: %s"
+ mastodon-toot--language)
+ "")))
(add-text-properties (car nsfw-region) (cdr nsfw-region)
(list 'display (if mastodon-toot--content-nsfw
(if mastodon-toot--media-attachments
- "NSFW" "NSFW (no effect until attachments added)")
+ "NSFW" "NSFW (for attachments only)")
"")
'face 'mastodon-cw-face))
(add-text-properties (car cw-region) (cdr cw-region)
@@ -1443,7 +1451,9 @@ a draft into the buffer."
'completion-at-point-functions
#'mastodon-toot--tags-capf)
;; company
- (when mastodon-toot--use-company-for-completion
+ (when (and mastodon-toot--use-company-for-completion
+ (require 'company nil :no-error))
+ (declare-function 'company-mode-on "company")
(set (make-local-variable 'company-backends)
(add-to-list 'company-backends 'company-capf))
(company-mode-on)))