helm-org-rifle general macro for searching org reference files
;; quick references searching.
(unless (boundp 'references-rifle-prefix)
(define-prefix-command 'references-rifle-prefix))
(define-key my-org-prefix (kbd "r") 'references-rifle-prefix)
;; TODO: write a macro for the following functions
(defmacro my-helm-org-rifle-reference-search (dirs-or-files)
"A macro to quick recursive search through directory or files for Org-mode references."
(interactive)
(let* ((directories (or dirs-or-files
(-select 'f-dir?
(helm-read-file-name "Directories: "
:marked-candidates t))))
(files (-flatten
(--map ; FIXME
(f-files it
(lambda (file)
(s-matches?
helm-org-rifle-directories-filename-regexp
(f-filename file))))
recursive))))
(if files
(helm-org-rifle-files files)
(error "No org files found in directories: %s" (s-join " " directories))))
;; TODO select target file/dir to search with helm-org-rifle.
)
;; (my-helm-org-rifle-reference-search
;; (concat my-org-rifle-references-common-path-languages
;; "TeX/Data/Manuals/My TeX Symbols Reference/"))
(defvar my-org-rifle-references-common-path-languages
(concat org-directory
"/Wiki/Computer Technology/Programming/Programming Languages/"))
;; TeX/LaTeX
(defun my-org-rifle-TeX-reference ()
(interactive)
(let ((my-tex-symbols-reference-dir
(concat my-org-rifle-references-common-path-languages
"TeX/Data/Manuals/My TeX Symbols Reference/")))
(helm-org-rifle-directories
(list my-tex-symbols-reference-dir))))
(define-key references-rifle-prefix (kbd "t") 'my-org-rifle-TeX-reference)
;; TEST:
;; (helm-org-rifle-directories
;; (list (concat my-org-rifle-references-common-path-languages
;; "Clojure/Data/Manuals/My Clojure Language Syntax Reference/")))
;; Clojure
(defun my-org-rifle-Clojure-reference ()
(interactive)
(let ((my-clojure-syntax-reference-dir
(concat my-org-rifle-references-common-path-languages
"Clojure/Data/Manuals/My Clojure Language Syntax Reference/")))
(helm-org-rifle-directories
(list my-clojure-syntax-reference-dir))))
(define-key references-rifle-prefix (kbd "c") 'my-org-rifle-Clojure-reference)