diff options
| author | Yuchen Pei <hi@ypei.me> | 2022-09-15 12:02:09 +1000 | 
|---|---|---|
| committer | Yuchen Pei <hi@ypei.me> | 2022-09-15 12:02:09 +1000 | 
| commit | 551d006f34192f0606fe27446711821f210c451d (patch) | |
| tree | 883fca1dc0c6ad5ffcebe3e84f5f54f31f2609d9 /lisp | |
| parent | 2fbb6bac9f0b0daed1c8d8d3e49cf65396b6600e (diff) | |
[emacs client] Adding initial integration with haddorg
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/hcel-haddorg.el | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/lisp/hcel-haddorg.el b/lisp/hcel-haddorg.el new file mode 100644 index 0000000..ad797e0 --- /dev/null +++ b/lisp/hcel-haddorg.el @@ -0,0 +1,46 @@ +;; -*- lexical-binding: t; -*- +;; Copyright (C) 2022 Yuchen Pei. +;;  +;; This file is part of hcel. +;;  +;; hcel is free software: you can redistribute it and/or modify it under +;; the terms of the GNU Affero General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;;  +;; hcel is distributed in the hope that it will be useful, but WITHOUT +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General +;; Public License for more details. +;;  +;; You should have received a copy of the GNU Affero General Public +;; License along with hcel.  If not, see <https://www.gnu.org/licenses/>. + +(require 'hcel-source) +(require 'hcel-client) +(require 'hcel-utils) + +(defun hcel-haddorg-to-hcel-definition () +  (interactive) +  (save-excursion +    (org-back-to-heading t) +    (let* ((id (org-entry-get (point) "CUSTOM_ID")) +           (splitted (split-string id "/")) +           (module-name (car splitted)) +           (entity (if (equal "v" (cadr splitted)) "Val" "Typ")) +           (name (caddr splitted)) +           (package) (unparsed) (package-id)) +      (goto-char (point-min)) +      (setq package (org-entry-get (point) "ITEM")) +      (setq package-id +            (hcel-parse-package-id +             (progn +               (string-match "^\\(.*?\\)\\(:.*\\)?$" package) +               (match-string 1 package)) +             "-")) +      (hcel-load-module-location-info +       (alist-get 'location +                  (hcel-api-definition-site +                   package-id "lib" module-name entity name)))))) + +(provide 'hcel-haddorg) | 
