Coverage report: /home/ellis/comp/core/lib/organ/pkg.lisp

KindCoveredAll%
expression03 0.0
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; lib/organ/pkg.lisp --- Organ.
2
 
3
 ;; This package contains a parsing framework for Org Syntax. It
4
 ;; loosely follows the org-element.el conventions.
5
 
6
 ;;; Commentary:
7
 
8
 ;; Similar to the OG, we divide Org Syntax into two classes: 'objects'
9
 ;; and 'elements'. The paragraph is a useful unit of measurement.
10
 
11
 ;; Elements are syntactic components that exist at the same or greater
12
 ;; scope than a paragraph.
13
 
14
 ;; Objects are syntactic components that exist with a smaller scope
15
 ;; than a paragraph. All objects can be contained within a paragraph.
16
 
17
 ;; Expanding further, 'Lesser' elements are those which cannot contain
18
 ;; any other elements. Paragraphs are a lesser element -- they can
19
 ;; contain any number of objects, but cannot contain other elements
20
 ;; themselves. 'Greater' elements can contain other elements - lesser
21
 ;; or greater.
22
 
23
 ;; We have two high-level classes -- Headings and Sections. Sections contain
24
 ;; both lesser and greater elements, and headings contain an optional section
25
 ;; and any number of child headings.
26
 
27
 ;; Finally we have the Document class which contains a special 'zeroth'
28
 ;; section in the META slot and the full tree of headings in the TREE slot.
29
 
30
 ;;; Code:
31
 (defpackage :organ
32
   (:use :cl :cl-ppcre :std :parse/lex :sb-gray)
33
   (:import-from :uiop :read-file-string)
34
   (:export
35
    ;; vars
36
    :*org-todo-keyword-types*
37
    :*org-todo-keywords*
38
    :org-emphasis-alist
39
    :org-todo-keyword-map
40
    :org-headline-rx
41
    :org-file-property-rx
42
    :org-todo-keyword-rx
43
    :org-property-rx
44
    :org-priority-rx
45
    :org-property-start-rx
46
    :org-logbook-start-rx
47
    :org-end-rx
48
    :org-scheduled-rx
49
    :org-deadline-rx
50
    :org-src-block-rx
51
    :org-tag-rx
52
    :org-object-rx
53
    :org-timestamp-rx
54
    :org-ts-rx
55
    :org-table-any-line-rx
56
    :org-table-any-border-rx
57
    :org-tblfm-rx
58
    :org-footnote-definition-rx
59
    :*org-duration-hmm-rx*
60
    :*org-duration-hmmss-rx*
61
    :*org-duration-full-rx*
62
    :*org-duration-mixed-rx*
63
    :org-duration-units
64
    :org-list-full-item-rx
65
    :org-item-rx
66
    :org-element-types
67
    :org-element-objects
68
    ;; proto
69
    :org-parse
70
    :org-parse-lines
71
    :org-create
72
    :org-push
73
    :org-write
74
    :org-contents
75
    :org-property
76
    :org-get-element
77
    :org-insert-before
78
    ;; classes
79
    :org-element
80
    :text
81
    :org-document
82
    :doc-meta
83
    :doc-tree
84
    :org-zeroth-section
85
    :org-lines
86
    :o-lines
87
    :org-stream
88
    :org-headline
89
    :org-priority-level
90
    :props
91
    :tags
92
    :title
93
    :state
94
    :org-todo-keyword
95
    :todo-type
96
    :org-list
97
    :org-tag
98
    :org-paragraph
99
    :org-block
100
    :org-dynamic-block
101
    :org-node-property
102
    :org-file-property
103
    :org-todo-keyword-p
104
    :org-tag-split
105
    ;; obj
106
    :org-heading
107
    :org-file-properties
108
    :org-node-properties
109
    :org-block
110
    :org-collection
111
    ;; util
112
    :read-org-string
113
    :read-org-file
114
    :read-org-lines
115
    :read-org-lines-from-string
116
    ;; TODO 2024-06-05: 
117
    :org-diary-sexp :org-footnote-reference :org-clock
118
    :org-bold :org-drawer :org-table-cell :org-citation
119
    :org-active-timestamp :org-descriptive-list
120
    :org-export-snippet :org-citation-reference :org-target
121
    :org-standard-table-row :org-lesser-block :org-strike-through
122
    :org-affiliated-keyword :org-planning-line
123
    :org-inline-source-block :org-footnote-definition
124
    :org-unordered-list :org-ordered-list :org-code
125
    :org-inactive-timestamp :org-keyword
126
    :org-inactive-timestamp-range :org-stat-cookie :org-macro
127
    :org-radio-target :org-table :org-table-el :org-italic
128
    :org-link :org-underline :org-entity :org-rule-table-row
129
    :org-verbatim :org-inline-babel-call :org-latex-environment
130
    :org-priority :org-property-drawer :org-plain-text
131
    :org-line-break :org-comment :org-greater-block
132
    :org-horizontal-rule :org-planning
133
    :org-active-timestamp-range))
134
 
135
 (defpackage :organ/graph
136
   (:use :cl :std :organ :graph :db :rdb :id :uuid :q :schema :graph :ast :time :b3)
137
   (:export :init-org-graph :org-graph :org-id 
138
    :org-graph-schema :*org-graph-schema* :*org-graph-db-directory* :init-org-graph-db 
139
    :org-graph-db :*org-graph-file* :*org-id-locations-file* :*org-graph*
140
    :org-graph-node :org-graph-edge :org-graph-extract-files :close-org-graph-db
141
    :open-org-graph-db :og-get :org-graph-values :org-graph-files-scrape))
142
 
143
 (defpackage :organ/cli
144
   (:use :cl :std :organ :cli :clap)
145
   (:export :*organ-cli*))