[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/greader 00f53aaeef 2/2: greader-dict.el: now changing t
From: |
ELPA Syncer |
Subject: |
[elpa] externals/greader 00f53aaeef 2/2: greader-dict.el: now changing the dictionary works as expected. |
Date: |
Thu, 25 Jul 2024 21:58:22 -0400 (EDT) |
branch: externals/greader
commit 00f53aaeeff2d2e6a994d60765d4619d8b6816f4
Author: Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com>
Commit: Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com>
greader-dict.el: now changing the dictionary works as expected.
---
greader-dict.el | 37 ++++++++++++++++++++++++++++++-------
1 file changed, 30 insertions(+), 7 deletions(-)
diff --git a/greader-dict.el b/greader-dict.el
index 063dec5b8c..ce4c035fc3 100644
--- a/greader-dict.el
+++ b/greader-dict.el
@@ -165,9 +165,14 @@
"Item types and relative prefixes.")
;; This function saves the contents of the hash table.
-(defvar greader-dict-directory (concat user-emacs-directory
- ".greader-dict/")
+(defvar-local greader-dict-directory (concat user-emacs-directory
+ ".greader-dict/"
+ (greader-get-language)
+ "/")
"The directory containing greader-dict files.")
+
+(defvar-local greader-dict-local-language (greader-get-language))
+
(defvar-local greader-dict-filename "greader-dict.global"
"File name where dictionary definitions are stored.")
(defvar greader-dict--current-reading-buffer (current-buffer))
@@ -284,6 +289,8 @@ as a word definition."
(add-hook 'greader-after-change-language-hook
(lambda ()
(when greader-dict-mode
+ (setq greader-dict-local-language
+ (greader-get-language))
(greader-dict-read-from-dict-file)))))))
;; THanks to the loved and alwais useful elisp reference.
@@ -494,6 +501,9 @@ Return nil if KEY is not present in `greader-dictionary'."
(setq greader-dict-filename (buffer-local-value
'greader-dict-filename
greader-dict--current-reading-buffer))
+ (setq greader-dict-local-language (buffer-local-value
+ 'greader-dict-local-language
+ greader-dict--current-reading-buffer))
(maphash
(lambda (k v)
(insert "\"" k "\"" "=" v "\n"))
@@ -673,9 +683,23 @@ argument, only if `greader-dict-mode' is enabled."
(declare-function greader-get-language nil)
(defun greader-dict--get-file-name ()
"Return the absolute path of current dictionary file."
- (concat greader-dict-directory (greader-get-language) "/"
- (buffer-local-value 'greader-dict-filename
- greader-dict--current-reading-buffer)))
+ (let ((language-part (car (last (split-string greader-dict-directory
+ "/" t)))))
+ (unless (equal language-part (buffer-local-value
+ 'greader-dict-local-language
+ greader-dict--current-reading-buffer))
+ (setq greader-dict-directory (string-remove-suffix (concat
+ language-part
+ "/")
+
greader-dict-directory))
+ (setq greader-dict-directory
+ (concat greader-dict-directory (buffer-local-value
+ 'greader-dict-local-language
+
greader-dict--current-reading-buffer)
+ "/"))))
+ (concat greader-dict-directory (buffer-local-value
+ 'greader-dict-filename
+ greader-dict--current-reading-buffer)))
(defun greader-dict--set-file (type)
"Set `greader-dict-filename' according to TYPE.
@@ -774,8 +798,7 @@ asked."
(greader-dict--set-file (intern new-dict))
(unless (file-exists-p (greader-dict--get-file-name))
(shell-command-to-string
- (concat "touch " greader-dict-filename)))
- (greader-dict--update)
+ (concat "touch " (greader-dict--get-file-name))))
(greader-dict--update))))
;; (remove-hook 'buffer-list-update-hook #'greader-dict--update)))))