stardiviner
2/28/2017 - 1:57 PM

helm-org-rifle general macro for searching org reference files

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)