feat(tazjin/russian): Echo Russian words when Emacs is idle
This should keep up passive exposure to words, but needs a subsequent function for filtering out things that are definitely known. Since I'm keeping the frequent word list mostly intact the majority of words are very basic, but it's those last 15-20% I'm interested in (not completely imported yet). Change-Id: I7a5684b8dca1fe5301e8b394be2627550a60e3c6
This commit is contained in:
parent
48290298ad
commit
f7c87fd774
2 changed files with 30 additions and 6 deletions
|
@ -1,6 +1,7 @@
|
|||
(require 'cl-macs)
|
||||
(require 'ht)
|
||||
(require 'seq)
|
||||
(require 's)
|
||||
|
||||
;; Type definitions for Russian structures
|
||||
|
||||
|
@ -62,4 +63,28 @@
|
|||
|
||||
'(message "Defined %s unique words." (ht-size russian-words)))
|
||||
|
||||
;; Helpers to train Russian words when Emacs is idling.
|
||||
|
||||
(defun russian--format-word (word)
|
||||
"Format a Russian word suitable for echo display."
|
||||
(apply #'s-concat
|
||||
(-flatten
|
||||
(list (russian-word-word word)
|
||||
" - "
|
||||
(s-join ", " (russian-word-translations word))
|
||||
(when-let ((roots (russian-word-roots word)))
|
||||
(list " [" (s-join ", " roots) "]"))
|
||||
(when-let ((notes (russian-word-notes word)))
|
||||
(list " (" (s-join "; " notes) ")"))))))
|
||||
|
||||
(defvar russian--last-word nil
|
||||
"Last randomly displayed Russian word")
|
||||
|
||||
(defun display-random-russian-word ()
|
||||
(interactive)
|
||||
(message (russian--format-word (seq-random-elt (ht-values russian-words)))))
|
||||
|
||||
(defvar russian--display-timer
|
||||
(run-with-idle-timer 5 t #'display-random-russian-word))
|
||||
|
||||
(provide 'russian)
|
||||
|
|
|
@ -54,9 +54,9 @@
|
|||
("уже" ("already" "by now"))
|
||||
("для" ("for" "to"))
|
||||
("вот" ("here" "there" "this is" "that's")
|
||||
"calling attention to something")
|
||||
("calling attention to something"))
|
||||
("кто" ("who" "that" "some"))
|
||||
("да" ("yes" "but") "affirmation (..., right?)")
|
||||
("да" ("yes" "but") ("affirmation (..., right?)"))
|
||||
("говорить" ("to say" "to tell" "to speak") nil ("-говор-"))
|
||||
("год" ("year"))
|
||||
|
||||
|
@ -88,14 +88,14 @@
|
|||
("два" ("two"))
|
||||
("там" ("there" "then"))
|
||||
("чем" ("than" "instead of")
|
||||
"чем ..., тем ...")
|
||||
("чем ..., тем ..."))
|
||||
("глаз" ("eye" "sight"))
|
||||
("жизнь" ("life") nil ("-жи-"))
|
||||
("первый" ("first" "front" "former"))
|
||||
("день" ("day"))
|
||||
("тут" ("here" "now" "then"))
|
||||
("во" ("in" "at")
|
||||
"as particle also: wow, exactly, ...")
|
||||
("as particle also: wow, exactly, ..."))
|
||||
("ничто" ("nothing"))
|
||||
("потом" ("afterwards" "then"))
|
||||
("очень" ("very"))
|
||||
|
@ -353,7 +353,7 @@
|
|||
("появиться" ("to appear" "to show up"))
|
||||
("воздух" ("air"))
|
||||
("разный" ("different"))
|
||||
("выходить" ("to go out" "to exit") "MR says 'to nurse'??" ("-ход-"))
|
||||
("выходить" ("to go out" "to exit") ("MR says 'to nurse'??") ("-ход-"))
|
||||
("просить" ("to ask"))
|
||||
("брат" ("brat"))
|
||||
("собственный" ("one's own"))
|
||||
|
@ -416,5 +416,4 @@
|
|||
("войти" ("to enter" "to come in") nil ("-й-"))
|
||||
("длинный" ("long")))
|
||||
|
||||
|
||||
(provide 'russian-words)
|
||||
|
|
Loading…
Reference in a new issue