Skip to content

Commit b6f8a31

Browse files
committed
Fix: (org-ql-view--format-element) Font-lock Org syntax
Not sure why I overlooked this for so long (links already worked, which is probably why).
1 parent fff110a commit b6f8a31

File tree

3 files changed

+70
-47
lines changed

3 files changed

+70
-47
lines changed

README.org

+1
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,7 @@ Simple links may also be written manually in either sexp or non-sexp form, like:
568568
*Fixes*
569569
+ Customization group for face ~org-ql-view-due-date~.
570570
+ Command ~org-ql-refile~ uses the base buffer when refiling to an indirect buffer.
571+
+ Apply Org syntax font-locking to items in ~org-ql-view~ buffers.
571572

572573
*** helm-org-ql
573574

org-ql-view.el

+21
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,22 @@ with human-readable strings."
528528
(font-lock-ensure)
529529
(buffer-string))))
530530

531+
(defun org-ql-view--font-lock-as-org (s)
532+
"Return string S font-locked as in `org-mode'."
533+
;; This works like `org-fontify-like-in-org-mode', but uses a single
534+
;; buffer instead of a new one every time.
535+
;; TODO(C): Submit these improvements upstream.
536+
(let ((buffer (or (get-buffer " *org-ql-view--font-lock-as-org*")
537+
(with-current-buffer (get-buffer-create " *org-ql-view--font-lock-as-org*")
538+
(buffer-disable-undo)
539+
(org-mode)
540+
(current-buffer)))))
541+
(with-current-buffer buffer
542+
(insert s)
543+
(font-lock-ensure)
544+
(prog1 (buffer-string)
545+
(erase-buffer)))))
546+
531547
(defun org-ql-view--buffer (&optional name)
532548
"Return `org-ql-view' buffer, creating it if necessary.
533549
If NAME is non-nil, return buffer by that name instead of using
@@ -898,6 +914,11 @@ return an empty string."
898914
;; (which would also make it easier to do it independently of faces, etc).
899915
(title (--> (org-ql-view--add-faces element)
900916
(org-element-property :raw-value it)))
917+
;; TODO(B): Needs refactoring. A function like `org-ql-view--add-faces'
918+
;; should return a list of faces to be added.
919+
(title-faces (get-text-property 0 'face title))
920+
(title (org-ql-view--font-lock-as-org title))
921+
(_ (add-face-text-property 0 (length title) title-faces t title))
901922
(todo-keyword (-some--> (org-element-property :todo-keyword element)
902923
(org-ql-view--add-todo-face
903924
(substring-no-properties it))))

org-ql.info

+48-47
Original file line numberDiff line numberDiff line change
@@ -1112,6 +1112,7 @@ File: README.info, Node: 09-pre, Next: 089, Up: Changelog
11121112
• Customization group for face ‘org-ql-view-due-date’.
11131113
• Command ‘org-ql-refile’ uses the base buffer when refiling to an
11141114
indirect buffer.
1115+
• Apply Org syntax font-locking to items in ‘org-ql-view’ buffers.
11151116

11161117
* Menu:
11171118

@@ -2157,53 +2158,53 @@ Node: Links39051
21572158
Node: Tips39738
21582159
Node: Changelog40062
21592160
Node: 09-pre41029
2160-
Node: helm-org-ql (1)41976
2161-
Node: 08942117
2162-
Node: 08843259
2163-
Node: 08744335
2164-
Node: 08645563
2165-
Node: 08545797
2166-
Node: 08446453
2167-
Node: 08346905
2168-
Node: 08247246
2169-
Node: 08147639
2170-
Node: 0848062
2171-
Node: 07450788
2172-
Node: 07351013
2173-
Node: 07251747
2174-
Node: 07152668
2175-
Node: 0753479
2176-
Node: 06356345
2177-
Node: 06256878
2178-
Node: 06157185
2179-
Node: 0657755
2180-
Node: 05260811
2181-
Node: 05161113
2182-
Node: 0561538
2183-
Node: 04963069
2184-
Node: 04863351
2185-
Node: 04763700
2186-
Node: 04664109
2187-
Node: 04564517
2188-
Node: 04464878
2189-
Node: 04365237
2190-
Node: 04265440
2191-
Node: 04165601
2192-
Node: 0465848
2193-
Node: 03269949
2194-
Node: 03170352
2195-
Node: 0370549
2196-
Node: 02373849
2197-
Node: 02274083
2198-
Node: 02174363
2199-
Node: 0274568
2200-
Node: 0178646
2201-
Node: Development78747
2202-
Node: Copyright assignment78980
2203-
Node: Notes79570
2204-
Node: Comparison with Org Agenda searches79734
2205-
Node: org-sidebar80623
2206-
Node: License80902
2161+
Node: helm-org-ql (1)42052
2162+
Node: 08942193
2163+
Node: 08843335
2164+
Node: 08744411
2165+
Node: 08645639
2166+
Node: 08545873
2167+
Node: 08446529
2168+
Node: 08346981
2169+
Node: 08247322
2170+
Node: 08147715
2171+
Node: 0848138
2172+
Node: 07450864
2173+
Node: 07351089
2174+
Node: 07251823
2175+
Node: 07152744
2176+
Node: 0753555
2177+
Node: 06356421
2178+
Node: 06256954
2179+
Node: 06157261
2180+
Node: 0657831
2181+
Node: 05260887
2182+
Node: 05161189
2183+
Node: 0561614
2184+
Node: 04963145
2185+
Node: 04863427
2186+
Node: 04763776
2187+
Node: 04664185
2188+
Node: 04564593
2189+
Node: 04464954
2190+
Node: 04365313
2191+
Node: 04265516
2192+
Node: 04165677
2193+
Node: 0465924
2194+
Node: 03270025
2195+
Node: 03170428
2196+
Node: 0370625
2197+
Node: 02373925
2198+
Node: 02274159
2199+
Node: 02174439
2200+
Node: 0274644
2201+
Node: 0178722
2202+
Node: Development78823
2203+
Node: Copyright assignment79056
2204+
Node: Notes79646
2205+
Node: Comparison with Org Agenda searches79810
2206+
Node: org-sidebar80699
2207+
Node: License80978
22072208

22082209
End Tag Table
22092210

0 commit comments

Comments
 (0)