about summary refs log tree commit diff
path: root/users/tazjin/russian
diff options
context:
space:
mode:
Diffstat (limited to 'users/tazjin/russian')
-rw-r--r--users/tazjin/russian/russian.el25
-rw-r--r--users/tazjin/russian/words.el11
2 files changed, 30 insertions, 6 deletions
diff --git a/users/tazjin/russian/russian.el b/users/tazjin/russian/russian.el
index 1ef911199f..448b240a70 100644
--- a/users/tazjin/russian/russian.el
+++ b/users/tazjin/russian/russian.el
@@ -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)
diff --git a/users/tazjin/russian/words.el b/users/tazjin/russian/words.el
index f2b51ba712..9e7fc15da0 100644
--- a/users/tazjin/russian/words.el
+++ b/users/tazjin/russian/words.el
@@ -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)