-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathChangeLog
16670 lines (12206 loc) · 724 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2025-02-08 Mats Lidell <matsl@gnu.org>
* hywiki.el (hywiki--sitemap-file): Helper function for getting the sitemap
file-name.
(hywiki-org-export-function): Only use org publishing for the sitemap file.
(hywiki-convert-words-to-org-links): Highlight wiki page names so overlays
are defined before looking for them.
2025-02-07 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el (hywiki-tests--save-referent)
(hywiki-tests--save-referent-use-hyperbole-menu): Tests for using the
cached page and referent data.
* hywiki.el (hywiki-make-referent-hasht): Return hasht when rebuilding from
load data.
2025-02-07 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki--extend-yanked-region): Add and call in 'hywiki-highlight-on-yank'
to extend a yanked region to include the rest of a delimited pair or string.
* hui-select.el (hui-select-string-p): Fix to make multi-line string selection
work properly whether on the opening or closing double quote mark, using
'scan-sexps'. Update doc string.
2025-02-06 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-debuttonize-non-character-commands,
hywiki-buttonize-non-character-commands): Add support for 'kill'
commands and fix that removing a trailing delimiter did not rehighlight
HyWikiWords properly.
2025-02-05 Mats Lidell <matsl@gnu.org>
* hywiki.el (hywiki-add-org-id): Suppress byte compile warnings for calling org-id-get with
different number of args. Later versions have a fourth optional arg that we use.
2025-02-02 Mats Lidell <matsl@gnu.org>
* test/hui-tests.el (hui--kill-highlighted-region-default-settings): Add test for hui-kill-region
with the default settings for transient-mark-mode and mark-even-if-inactive.
2025-02-02 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-buttonize-non-character-commands): Simplify to improve
HyWikiWord reference highlighting when remove a balanced delimiter.
This requires that if a closing delimiter is removed that the opening
delimiter is temporarily removed so highlighting can proceed properly.
Then the opening delimiter is reinserted, invisibly to the user.
(hywiki-buttonize-non-character-commands): One more fix to
highlight with point at the beginning of the previously delimited region.
* hui.el (hui-kill-region): Fix to default 'beg' arg to (mark) only when
'interactive-flag' is non-nil.
(hui-kill-ring-save): Fix to set 'beg' and 'end' to (mark) and
(point) when needed and called interactively. Also, set 'this-command'
to 'kill-ring-save'.
* test/hui-tests.el (hui--kill-empty-region-twice): Remove assume failure.
* hui.el (hui-kill-region): Remove use of (not mark-even-if-inactive) in 2nd
cond clause since we want to be able to select a delimited region regardless
of any mark setting when Hyperbole is active.
Fix error when mark is set and mark-even-if-inactive is t and hyperbole-mode
is t, but no highlighted region, then two C-w calls in a row used to trigger
an error but should just do nothing silently if not on a delimiter.
* hywiki.el (hywiki-buttonize-character-commands,
hywiki-buttonize-non-character-commands): Don't run these hook
functions if in the active minibuffer or if edebugging and a minibuffer
is active.
(hywiki-maybe-highlight-balanced-pairs): Fix to return t unless
no opening or closing pair syntax is found.
(hywiki-maybe-highlight-page-name): Use return value of
'hywiki-maybe-highlight-balanced-pairs'; this fixes improper highlighting
of #section with spaces within a delimited pair after such a HyWikiWord
link is activated.
(hywiki-buttonize-non-character-commands
hywiki-debuttonize-non-character-commands): Fix to catch cmds that
have '-delete-' in their names but don't start with 'delete'.
(hywiki-buttonize-non-character-commands): Fix to re-highlight
any HyWikiWords within a delimited region whose delimiter is removed by
calling 'hywiki-maybe-highlight-page-names' with the previously delimited
region.
* hpath.el (hpath:normalize-markup-anchor): Add to separate out normalization
of markup anchors to match the display form of the anchor's referent
based on the enabled modes in the current buffer.
* hyperbole.el (hyperbole--mark-even-if-inactive): Remove, not used.
* hywiki.el (hywiki-get-file): Rename to 'hywiki-get-page-file'.
2025-02-01 Mats Lidell <matsl@gnu.org>
* test/hui-tests.el (hui--kill-empty-region-twice): Unit test.
2025-01-30 Mats Lidell <matsl@gnu.org>
* test/hui-mini-tests.el (hui--menu-read-from-minibuffer): Unit test.
* test/MANIFEST: Added hui-mini-tests.el.
* test/hui-mini-tests.el: New file. Test for hui-mini.
* hui-mini.el (hui:menu-read-from-minibuffer): Use
replace-regexp-in-string for compatibility with Emacs 27.2.
2025-01-29 Mats Lidell <matsl@gnu.org>
* Makefile (HYPB_GEN, HYPB_ELC, HYPB_ELC_ELN, HYPB_at): Verbosity macros.
(VERSIONFLAGS, emacs-environment): Extract to own target to reduce
noise in regular builds.
(HYPB_BIN_WARN): Set default to 'all.
2025-01-27 Mats Lidell <matsl@gnu.org>
* hywiki.el (hywiki-cache-save): Shorten docstring.
2025-01-26 Mats Lidell <matsl@gnu.org>
* .github/workflows/static.yaml: Remove deploy static content to pages
action. Default deploy is all we need.
2025-01-26 Bob Weiner <rsw@gnu.org>
* test/hywiki-tests.el (hywiki-tests--action-key-on-wikiword-and-section-displays-page,
hywiki-tests--action-key-on-wikiword-and-line-column-displays-page):
Fix both of these so they no longer fail.
* test/hy-test-helpers.el (hy-delete-dir-and-buffer): Add support for
deleting automatically created HyWiki cache .hywiki.eld file
before trying to delete directory.
* hui-select.el (hui-select-at-delimited-sexp-p): Correct doc.
* hywiki.el (hywiki-get-referent-hasht): Load/build referent hash table
t if invalid or empty.
* hasht.el (hash-prin1): Add 'reverse' arg and use in 'hywiki-cache-save'.
* hywiki.el (hywiki-maybe-highlight-page-names,
hywiki-maybe-highlight-wikiwords-in-frame, hywiki-add-page):
Replace calls to 'hywiki-directory-set-mod-time' and
'hywiki-directory-set-checksum' with 'hywiki-env-save'.
(hywiki--referent-alist): Add.
(hywiki-cache-default-file, hywiki-cache-file, hywiki-cache-default-file,
hywiki-cache-edit, hywiki-cache-save): Add to save HyWikiWord referent
relations in a persistent cache. This makes HyWikis with multiple referent
types work across Emacs sessions.
(hywiki-make-referent-hasht): Add load from persistent cache.
* README.md: Update to show HTML, Info and PDF links to the Hyperbole Manual
as the first section in this file for easy reference.
* hmouse-tag.el (smart-emacs-lisp-mode-p): Add 'lisp-data-mode' support for
.eld files.
* hywiki.el (hywiki-set-directory): Ensure hash table has been created if
skip call 'hywiki-make-referent-hasht'.
* hasht.el: Change to use lexical scope.
(hash-make): Speed up by referencing 'reverse' value only once.
(hashp): Remove, use builtin 'hash-table-p' instead.
2025-01-20 Mats Lidell <matsl@gnu.org>
* test/test-helpers-tests.el (test-helpers-test--make-random-wikiword):
Add test.
* test/MANIFEST: Test file for the test helpers.
* test/hy-test-helpers.el (hy-make-random-wikiword): Helper for making
random WikiWords.
2025-01-20 Bob Weiner <rsw@gnu.org>
* hsys-ert.el (require 'hbut): For 'defib'.
* test/hui-tests.el (hui--kill-highlighted-region,
hui--kill-non-highlighted-region): Separate and rename
these tests. Rearrange letters in each subtest so can find which should
is being called.
* hui.el (hui:validate-region): Add to check for valid region args.
(hui-kill-ring-save): Call above function.
* test/hui-tests.el (hui--kill-region,
hui--kill-region-multiple-kill): Add let of
'mark-even-if-inactive'. Also, interactively, set beg and end only
if 'mark-active' is non-nil.
2025-01-19 Bob Weiner <rsw@gnu.org>
* hui.el (hui:kill-region): Complete doc string. Set 'region' arg to nil when
killing a delimited region at point. Also use 'hui-select-at-delimited-thing-p'
instead of 'hui-select-delimited-thing'.
(hui:delimited-selectable-thing)
hui:delimited-selectable-thing-and-bounds): Fix so doesn't create an
in-memory Hyperbole button at point if already doing so in a prior stack frame.
The latter is used in 'hui-kill-ring-save' bound to {M-w} in 'hyperbole-mode'.
(require 'hversion): Since 'hyperb:stack-frame' is defined there and
used herein.
* hsys-ert.el (ert-should): Add this new file and implicit button type.
See the Commentary therein for details.
hibtypes.el (load "hsys-ert"): Load above ibtype at near lowest priority.
hui-mouse.el (hkey-alist): Move priority of ert-results-mode to after
(hbut:at-p) so can define implicit buttons in this mode that override
the standard behavior.
man/hyperbole.texi (Smart Key - ERT Results Mode): Update order in the
Hyperbole manual. Also add `ert-should' ibtype.
MANIFEST, Makefile (EL_COMPILE): Add "hsys-ert.el".
* hypb.el (hypb:with-marker): Add context macro for setting a buffer marker
and automatically setting it to nil at the end of the context.
* hui.el (hui:kill-region): Update to only apply completion behavior when
'dynamic-completion-mode' is enabled and call subfunctions interactively
in interactive flag is set.
(hui-kill-region): Simplify 'hui-select-delimited-thing'.
2025-01-19 Mats Lidell <matsl@gnu.org>
* test/hui-tests.el (hui--kill-region-multiple-kill, hui--kill-region):
Test hui-kill-region.
2025-01-18 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-get-referent-hasht): Fix when building
'hywiki--any-wikiword-regexp-list', allow for either or both #section
and :Lnum:Cnum. This fixes not highlighting "WikiWord:L2".
* hyrolo.el (hyrolo-refresh-file-list): Add to refresh internal expanded list
of HyRolo search files.
test/hyrolo-tests.el (hyrolo-tests--get-file-list): Fix this test by using
the above function.
* hproperty.el (hproperty:but-get-first-in-region): Add so is clear when
want only the first button matching 'property' and 'value'. Call
in 'hproperty:but-get'.
(hproperty:but-get-all-in-region): Change to return all
matches for 'property' and 'value' to fix major HyWiki problem with
not dehighlighting WikiWords when a page is deleted.
* test/hywiki-tests.el (hywiki-tests--add-org-roam-node): Fix mocks.
* hui-mini.el (hui:menu-hywiki): Change HyWiki/Create to call
'hywiki-word-create-and-display'.
* hywiki.el (hywiki-display-referent-type): Help user with an error if
'referent-type' is invalid.
(hywiki-allow-suffix-referent-types): Add to specify referent
types that support suffixes.
(hywiki--add-suffix-to-referent): Uncomment and use in
'hywiki-display-referent'.
(hywiki-add-prompted-referent): Rename to 'hywiki-create-referent'.
(hywiki-create-referent-and-display): Add.
(hywiki-word-create-and-display): Add and use for HyWiki/Create.
(hywiki-add-page): Display message about HyWikiWord page being
added or existing when called interactively.
(hywiki-create-referent): Display message showing referent when
called interactively or with new optional prefix arg 'message-flag'.
(hywiki-create-page): Alias to 'hywiki-add-page' for consistency
with 'hywiki-create-referent'.
(hywiki-word-at): Fix to utilize 'range-flag' when
on a highlighted wikiword.
(hywiki-display-referent-type): If point is on a HyWikiWord that
matches the one given as an argument, then set the current implicit button
attributes of referent-type and referent-value. Specific types of referent
display functions can override the value setting if need be.
(hywiki-page-strip-section): Rename to 'hywiki-word-strip-suffix'.
(hywiki-word-at-point): Add to return wikiword stripped of any suffix.
(hywiki-get-singular-wikiword): Strip any suffix from wikiword.
(hywiki-referent-exists-p): Let 'hywiki-get-referent' make word singular
and remove suffix.
(hywiki-word-read, hywiki-word-read-new): Update doc to use referent
instead of page and call 'hywiki-word-at-point' instead of 'hywiki-word-at'.
(hywiki-word-create): Add and autoload to create but not display
a referent for a HyWikiWord. Useful as a key binding.
(hywiki-add-org-roam-node): Fix to set referent-value to node title
rather than the node itself.
(hywiki-add-org-roam-node, hywiki-display-org-roam-node): Fix to use
Org Roam node title/headline rather than the node itself.
(hywiki-mode): Improve doc.
(hywiki-display-info-node): Use 'link-to-Info-node' action type.
2025-01-12 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el
(hywiki-tests--action-key-on-hywikiword-displays-page): Rename so
hy:WikiWord is mentioned. Fix removal of temp files.
(hywiki-tests--assist-key-on-hywikiword-displays-help): Rename so
hy:WikiWord is mentioned and refactor to verify help buffer is shown.
(hywiki-tests--action-key-on-wikiword-displays-page)
(hywiki-tests--action-key-on-wikiword-and-section-displays-page): New
tests for verifying display of pages with and without sections.
(hywiki-tests--wikiword-identified-with-delimiters): Add test for
WikiWord with a single hash mark.
(hywiki-tests--action-key-on-wikiword-and-line-column-displays-page):
Test line and column specifiers with WikiWords.
2025-01-09 Mats Lidell <matsl@gnu.org>
* test/MANIFEST: Add hycontrol-tests.el
* hycontrol.el (hycontrol-framemove-direction): Quit hycontrol before
displaying error message.
* test/hycontrol-tests.el
(hycontrol-tests--framemove-direction-error-message): Test.
2025-01-05 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-org-link-resolve, hywiki-org-link-export): Handle
:Lnum:Cnum at the end of a link.
(hywiki--add-section-to-referent): Rename to 'hywiki--add-suffix-to-referent'.
(hywiki-get-referent, hywiki-display-referent): Handle :Lnum:Cnum at the end
of a HyWikiWord reference.
(hywiki-word-suffix-regexp): Add.
(hywiki-word-with-optional-spaces-section-exact-regexp): Add.
(hywiki-word-*-section-*-regexp): Rename to 'hywiki-word-*-suffix-*-regexp'.
* hui-mini.el (hui:menu-hyperbole-prefix): Remove outer 'kbd' call so returned
value stays as a string.
(hui:menu-this-command-keys): Add to produce a string sequence
of keys that invoke a Hyperbole menu command.
(hui:menu-act, hui:menu-choose, hui:menu-item): Fix bug#75380
by handling when 'hyperbole' command is bound to a non-string key. Allow
'hui:menu-items' to be a vector rather than only a string.
* hypb.el: Add 'hypb:buffer-file-name' to handle indirect buffers whose
file name is only in its base buffer and replace all uses of the
variable 'buffer-file-name' with this call. This allows creation
of explicit buttons in indirect buffers.
hbmap.el, hmail.el, hmoccur.el, hmouse-info.el, hsys-org.el, hsys-org-roam.el:
Add (require 'hypb) for 'hypb:buffer-file-name’ definition.
* hyperbole.el (hkey-initialize): Override {C-w} in 'hyperbole-mode-map'
as has long been done with {M-w}.
hui.el (hui:kill-region, hui-kill-region): Add to kill delimited things
at point without the need to visually select them.
2025-01-04 Bob Weiner <rsw@gnu.org>
* hbut.el (ibut:create):
hywiki.el (hywiki-display-page):
hbdata.el (hbdata:ebut-build): Change referent to referent-type and
referent-value.
* hbut.el (ibut:label-set): Set 'loc attribute and 'save-match-data'.
* hib-debbugs.el (debbugs-query:at-p): Simplify to use word separators
and thus support double quoted "bug#123".
* hycontrol.el (hycontrol-framemove-direction): If "framemove.el" is not
manually installed (no package available), trigger an error that shows
where to get it from.
* hbut.el (ibut:set-name-and-label-key-p): Revert some changes to avoid
failures in recognition of ibuttons.
* hywiki.el (hywiki-word-line-and-column-numbers-regexp): Add and use
in 'hywiki-word-with-optional-section-regexp' and
'hywiki-word-with-optional-section-exact-regexp'.
(hywiki-get-referent, hywiki-page-strip-section): Update to
handle optional line and col numbers.
(hywiki--word-and-buttonize-character-regexp): Update to make
Group 1 be all but any last delimiter character.
(hywiki-get-buttonize-characters, hywiki-maybe-dehighlight-page-name,
hywiki-maybe-highlight-page-name, hywiki-word-at)): Add : to list
of excluded chars that do not end a HyWikiWord reference.
hpath.el (hpath:line-and-column-numbers): Add to match line and column numbers
without including any anchoring to the end of a larger regexp. Use in
'hpath:line-and-column-regexp' and "hywiki.el".
* hbut.el (ibut:set-name-and-label-key-p): Rewrite to not set any hbut:current
attributes unless find a valid 'lbl-start', so do not end up with a partial
set of insufficient attributes.
2025-01-02 Mats Lidell <matsl@gnu.org>
* test/hactypes-tests.el (hactypes-tests--link-to-Info-index-item): Verify
actypes::link-to-Info-index-item.
* test/hywiki-tests.el (hywiki-tests--add-info-index): Update test to
verify Info index display.
* hywiki.el (hywiki-display-info-index): Use link-to-Info-index-item.
2024-12-30 Mats Lidell <matsl@gnu.org>
* test/hypb-tests.el (hypb--verify-info-index-is-correct): Ensure info
index is correct.
2024-12-28 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-convert-words-to-org-links): Error if called within a
read-only buffer.
(hywiki-map-words): Widen buffer before gathering all wikiwords.
(hywiki-org-make-publish-project-alist): Add :html-link-home,
:html-preamble, :sitemap-filename, and :with-date properties.
(hywiki-get-file): Fix to handle #section suffix which fixes
navigating to sections from HyWikiWord#section links.
2024-12-27 Mats Lidell <matsl@gnu.org>
* hywiki.el (hywiki-add-to-referent): Use when-let*.
* hproperty.el (hproperty:char-property-start)
(hproperty:char-property-end): Use when-let*.
2024-12-27 Bob Weiner <rsw@gnu.org>
* test/hywiki-tests.el (hywiki-tests--add-activity,
hywiki-tests--add-org-roam-node): Change 'require'
to 'hypb:require-package' so prompt user to install package when needed.
* hywiki.el (hywiki-word-read, hywiki-word-read-new): Fix by replacing call
to 'hywiki-get-wikiwords-obarray' with 'hywiki-get-referent-hasht'.
(hywiki-get-wikiwords-obarray): Remove, no longer used.
(hywiki-display-*): Fix to take referent-value rather than referent
since already know the type when such functions are called.
* hywiki.el (hywiki-display-referent): Stop removing any #section from
wikiword sent to referent functions.
(hywiki-add-prompted-referent): Remove #section from wikiword
before creating hywiki-referent-menu prefix string.
(hywiki--add-section-to-referent): Add to insert #section into
referent value. Use in 'hywiki-get-referent'.
(hywiki-display-page , hywiki-display-referent, hywiki-get-referent):
Exclude # from 'section' for consistency.
(hywiki-add-activity, hywiki-add-org-roam-node): Use
'hypb:require-package' to install activity or org-roam package as required
when invoking these functions.
2024-12-26 Bob Weiner <rsw@gnu.org>
* test/hywiki-tests.el (hywiki-tests--add-activity,
hywiki-tests--add-org-id): Fix Mats prior updates
to work with new typed referents.
* hywiki.el (hywiki-add-path-link): Add optional FILE and POS arguments
to better evaluate intermittent test bug in 'hywiki-tests--add-path-link'.
It fails on a call to this function only when all tests are run; never
fails interactively.
* test/hy-test-dependencies.el (load "pcomplete"): Only on rsw's linux
system, load this library to eliminate cyclic dependency errors in
11 tests.
* hasht.el: Rewrite to use Emacs built-in hash tables while keeping the
same calling interace as before.
(hash-map): Fix bug where 'func' was not quoted when embedded
within lambda function.
(hash-resize, hash-resize-p, hash-next-prime, hash-obarray,
hash-prime-p): Remove, no longer needed nor used
in Hyperbole.
(hash-deep-copy): Add deep copy of cons cells.
* hbut.el (ibut:create): When debug on error, display *Messages* buffer
with error message.
* hywiki.el (hywiki-make-referent-hasht): Optimize when no non-page
entries.
* hywiki.el (hywiki-add-page): Return '(page . "<page-file-path>")
rather than just "<page-file-path>". Update doc string.
(hywiki-add-to-referent): Update doc string.
(hywiki-display-referent): Remove unneeded clauses
due to new typed referents. Update doc string.
(hywiki-find-referent): Update doc string.
(hywiki-display-referent-type): Update doc string with
computed display function name.
(hywiki-get-referent): Rewrite to handled typed referents.
(hywiki-display-page): Fix to allow both typed referents
and file-name alone as referent input.
(hywiki-add-referent): Trigger error if 'hash-add' call fails
and fix doc string to cover all return values.
(hywiki-validate-referent): Add to validate referents before
adding to the HyWiki hash table. Use in 'hywiki-add-referent'.
2024-12-25 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-org-link-resolve): Fix doc to include all possible
return value types and rewrite to new typed referents.
2024-12-24 Bob Weiner <rsw@gnu.org>
* hywiki.el: Rename all 'page(s)-hasht' to 'referent-hasht'.
(hywiki-non-page-elts): Rewrite to new typed
referents and inline the function.
Rename 'hywiki--any-page-regexp-list' to
'hywiki--any-wikiword-regexp-list'.
Rename 'hywiki-maybe-highlight-page-names-in-frame'
to 'hywiki-maybe-highlight-wikiwords-in-frame'.
Rename 'hywiki-get-page-list' to 'hywiki-get-wikiword-list'.
2024-12-24 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el (hywiki-tests--a-wikiword-in-hywiki-directory)
(hywiki-tests--wikiword-identified-with-delimiters): Add tests for
hywiki words with delimiters.
2024-12-23 Bob Weiner <rsw@gnu.org>
* test/hywiki-tests.el (hywiki-tests--add-*): Rewrite to handle typed
referents.
* hywiki.el (hywiki-add-link): Rename to 'hywiki-add-path-link'.
(hywiki-add-page): Document optional 'force-flag' arg.
(hywiki-add-page-and-display): Improve doc on prompting
for a referent type.
(hywiki-add-page-and-display): Rename to
'hywiki-create-page-and-display'.
(hywiki-referent-prompt-flag): Add this new customization.
(hywiki-create-page-and-display): Set prompt-flag t if
call-interactively and 'hywiki-referent-prompt-flag' is non-nil.
(hywiki-display-referent-type): Add to display referents
other than pages.
(hywiki-display-referent): Call above function.
(hywiki-add-*): Rewrite all referent add functions to just
store the referent value and add hywiki-display-* functions to perform
the referent display instead. This allows for easy addition of new
referent types.
(hywiki-display-page-function): Fix doc to say function takes
a pathname, not a HyWiki page name.
(hywiki-create-page): Add type to hash value so is a cons of
(page . <page-file-path>).
2024-12-23 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el (hywiki-tests--add-activity)
(hywiki-tests--add-org-roam-node): Add tests.
2024-12-22 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-find-referent): Fix doc string to describe how
a prefix arg prompts for the type of referent to link to.
(hywiki-add-prompted-referent, hywiki-referent-menu):
Set 'hkey-value' to wikiword to pass to expressions in this menu,
invoked via the Smart Keys.
* test/hywiki-tests.el (hywiki-tests--add-org-id): Fix so :type
argument is a list as required, not a symbol.
* hact.el (action:param-count): Add and use in 'hywiki-add-org-id'.
hywiki.el (hywiki-add-org-id): Pre-9.7 versions of org-id-get
did not accept the 4th optional INHERIT arg, so fix by
conditionally sending this argument.
* hui-mouse.el (smart-magit-tab): Change 'if-let' (now obsolete)
to 'if-let*'.
* test/hywiki-tests.el (hywiki-tests--add-org-id): Fix final test
to just look for prefix of "ID: ".
* hywiki.el (hywiki-clear-pages-hasht): Also clear
'hywiki--any-page-regexp-list'.
(hywiki-add-org-id): Fix first two lines of doc string.
* test/hywiki-tests.el (hywiki-tests--add-org-id): Fix to not compare
error string values since when compiled may not be a string but
just a pair of indexes into one.
* hywiki.el (hywiki-let-directory, hywiki-set-directory,
hywiki-directory-changed): Add to support 'let' changes of
'hywiki-directory'.
(hywiki-clear-pages-hasht): Simplify to nullify hywiki
hash table and not try to reuse a previously build table.
2024-12-16 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el (hywiki-tests--sections-with-dash-space)
(hywiki-tests--get-singular-wikiword)
(hywiki-tests--get-plural-wikiword, hywiki-tests--add-referent)
(hywiki-tests--add-bookmark, hywiki-tests--add-command)
(hywiki-tests--add-find, hywiki-tests--add-global-button)
(hywiki-tests--add-hyrolo, hywiki-tests--add-info-index)
(hywiki-tests--add-info-node, hywiki-tests--add-key-series)
(hywiki-tests--add-link, hywiki-tests--add-org-id)
(hywiki-tests--get-page-list-for-new-wiki-directory-after-added-referent):
Tests.
2024-12-16 Mats Lidell <matsl@gnu.org>
* Makefile (docker-all-tests, docker-batch-tests): No byte compiling to
speed up running tests.
2024-12-16 Bob Weiner <rsw@gnu.org>
* test/hbut-tests.el: Change most "/tmp" to "/tmp/" for ease of comparison
with 'default-directory'.
2024-12-15 Bob Weiner <rsw@gnu.org>
* test/hywiki-tests.el (hywiki-tests--action-key-on-wikiword-displays-page):
Change mocklet call from 'hywiki-add-page' to newer
'hywiki-display-referent' to fix the test.
* test/hywiki-tests.el (hywiki-tests--active-in-current-buffer-p): Force
'hywiki-mode' nil when testing that hywiki is not active.
* hpath.el (hpath:shorten): Fix to normalize directory paths to end with
a dir separator char so compare properly to `default-directory'.
* hbut.el (ebut:get): Remove unneeded local 'actype'.
* test/hywiki-tests.el (hywiki-tests--assist-key-on-wikiword-displays-help):
Update to not use mocklet and to check WikiWord returned.
* hywiki.el (hywiki-word, hywiki-word-at): Rewrite to get the proper
start and end buffer positions of any wikiword string, accounting for
Org link complexities much better than before.
* hbut.el (hbut:source): Update doc to reflect that the caller must have
successfully searched for 'hbut:source-prefix' prior to calling this.
(ibut:set-name-and-label-key-p): Add set of ibut 'loc attribute
needed by a number of tests.
* hmouse-tag.el (smart-tags-file-list, smart-ancestor-tag-files): Fix to
handle a list of directories as the first argument in which to look
for TAGS files, as used by 'smart-man-c-routine-ref' in "hui-mouse.el".
hui-mouse.el (smart-man-c-routine-ref): Update to support use of newer
'Man-header-file-path' variable.
2024-12-02 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-clear-pages-hasht): Add and use in defcustom :set
method of `hywiki-directory' to ensure hash table is emptied including
all non-page referents when 'hywiki-directory' is changed.
2024-12-01 Bob Weiner <rsw@gnu.org>
* hmouse-drv.el (action-key-depress, assist-key-depress, hkey-help): Add
calls to (hattr:clear 'hbut:current) to clear 'hbut:current' button
attributes before depress,
* hbut.el (ibut:create): Move setting of 'hbut:current HyWiki 'referent
attribute from 'hkey-help' to this function, so works with all
ibutton reports. Also, remove 'name-and-lbl-key-flag' from check
of whether to set attributes to the current button values. Also,
move call of 'hbut:report' when called interactively to here from
'ibut:set-name-and-label-key-p' so works with all ibutton reports.
(ibut:set-name-and-label-key-p): Fix to return non-nil only when
'lbl-key' or 'name' are set.
(ebut:get): Remove Hyperbole V1 setting of 'referent' attribute
from (hbdata:referent) so as not to confuse new use of same attribute
for HyWiki referents.
hibtypes.el (action): Add :name arg to 'ibut:create' call.
* hywiki.el (hywiki-display-page): Set 'referent' attribute for
current button.
* hsys-org.el (hsys-org-link-at-p): Change to ignore [[hy:MyWikiWord]]
links.
hywiki.el (hywiki-word-at): Change to handle [[hy:MyWikiWord]] links.
(hywiki-strip-org-link): Also strip hy: prefix from a link.
* hywiki.el (hywiki-get-plural-wikiword): Return non-nil iff
'hywiki-allow-plurals-flag' is set.
(hywiki-get-page-hasht): Remove any nil return values from
calling 'hywiki-allow-plurals-flag'.
(hywiki-allow-plurals-flag): Reset 'hywiki--any-page-regexp-list'
whenever this variable is set.
* test/hywiki-tests.el (hywiki-tests--action-key-on-wikiword-displays-page,
hywiki-tests--assist-key-on-wikiword-displays-help):
Update to test Action and Assist Key behavior.
* hywiki.el: Add additional require, defvar and declare-function to
remove byte-compiler warnings.
2024-11-25 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-referent-menu): Make all menu calls interactive
and update all hywiki-add-* interactive specs to take any wikiword
at point and if not, then prompt with completion for one.
* hui-mini.el (hui:menu-hywiki): HyWiki menu replace FindPage with
FindReferent.
(hui:menu-act): Fix improper closing parens before end
of setq causing a bug where always returned nil.
2024-11-25 Mats Lidell <matsl@gnu.org>
* kotl/kmenu.el (kotl-menu-common-body): Use kotl-kview.
* .github/workflows/static.yaml: Static workflow for publishing the manual
to a static site using GitHub Pages.
2024-11-24 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-add-page-and-display): Add optional prefix arg
PROMPT-FLAG for use in 'hywiki-find-referent' call. Rewrite.
Update doc. This allows setting custom referent types when passing
a prefix arg to the the HyWiki/Create menu item.
(hywiki-display-page, hywiki-get-referent): Call 'hywiki-get-file'
to expand page file path, rather than doing it manually. Return referent.
* hmouse-drv.el (hkey-help): If a HyWikiWord ibut, save its referent as an
attribute.
* hui-menu.el (hui-menu-hywiki): Rename 'Add-HyWiki-Link' to 'Insert-HyWiki-Link'.
hywiki.el (hywiki-add-link): Rename to 'hywiki-insert-link'.
* hywiki.el (hywiki-read-new-page-name, hywiki-read-page-name):
Rename to 'hywiki-word-read-new' and 'hywiki-word-read'.
Change prompt from "HyWiki Page Name" to "HyWikiWord" since
not all referents are pages any more.
(hywiki-word-grep): Add to compute and perform HyWikiWord grep.
(hywiki-get-page): Rename to 'hywiki-get-referent'.
(hywiki-get-singular-page-name): Rename to
'hywiki-get-singular-wikiword'.
(hywiki-get-plural-page-name): Rename to
'hywiki-get-plural-wikiword'.
(hywiki-page-exists-p): Rename to 'hywiki-referent-exists-p'
and improve doc string.
(hywiki-display-referent): Fix to use existing referent if any
before calling 'hywiki-add-page'.
(hywiki-referent-menu): Change 'Path' to 'Link' and add 'Page'
to reset to a standard HyWiki Page link.
(hywiki-add-path): Rename to 'hywiki-add-link'.
(hywiki-add-page): Remove unused 'prompt-flag' arg and replace
with optional 'force-flag' to force overwriting an existing HyWikiWord
referent.
(hywiki-add-to-page): Rename to 'hywiki-add-to-referent' and
rewrite to handle referents. Change arg 'start-flag' to 'position'
of insert.
* hactypes.el (link-to-buffer-tmp, link-to-file): Fix 'point' arg to
accept markers.
* hywiki.el (hywiki-make-pages-hasht): Fix to maintain non-page referent
elements when rebuild the hash table.
* hibtypes.el (hywiki-word:help): Add so Assist Key on a HyWikiWord
customizes its referent type and link.
2024-11-24 Mats Lidell <matsl@gnu.org>
* Makefile (website-local-devel): Update the website files locally for
development version.
(website-devel): Push local updates to go live at
https:/www.gnu.org/software/hyperbole/devel.
2024-11-23 Bob Weiner <rsw@gnu.org>
* hui.el (hui:link-possible-types): Allow for :CUSTOM_ID: in
addition to :ID: matches for Org IDs.
* hib-kbd.el (kbd-key:normalize): Fix interactive expr to read
a string rather than a single key sequence.
* hywiki.el (hywiki-get-wikiwords-obarray): Add.
(hywiki-read-new-page-name, hywiki-read-page-name):
Replace 'hywiki-get-page-list' completion table with
'hywiki-get-wikiwords-obarray' which is more efficient.
(hywiki-find-page): Rename to 'hywiki-find-referent'.
Rename 'hywiki-find-page-hook' to 'hywiki-find-referent-hook'.
(hywiki-word-activate): Change so automatically creates
pages that do not exist, except for the first HyWiki page, in
which case, prompts before creation.
(hywiki-display-page-function): Add this customization
function that displays HyWiki pages.
(hywiki-display-page): Add to use above variable to
display HyWiki pages.
(hywiki-word): Update doc with first page prompting.
(hywiki-maybe-highlight-page-names): Return nil so
'hywiki-display-referent' returns nil when this is called.
(hywiki-get-file, hywiki-display-referent): Improve
#section matching to ignore #autosave# file names.
(hywiki-allow-plurals-flag): Add new customization,
defaults to t to treat plural HyWikiWords the same as singular
ones.
(hywiki-get-page): Handle HyWikiWord plurals based on
the above flag.
* hactypes.el: Document potential second arg of referent (point)
when referent is already read into a buffer and user wants
to link to the current point.
* hywiki.el (hywiki-add-*): Add to allow each HyWikiWord to have
a custom referent when created with a prefix argument. Referent
type is prompted for, similar to when creating other Hyperbole
buttons.
(hywiki-add-prompted-referent): Add to prompt for and
link a HyWikiWord to a custom referent or action type.
(hywiki-referent-menu): New minibuffer menu used by the
above function.
(hywiki-get-page): Expand to return all new possible
referent types.
(hywiki-display-referent): Add to display all of the
new referent types.
(hywiki-read-new-page-name): Use any potential WikiWord at
point as the default.
2024-11-23 Mats Lidell <matsl@gnu.org>
* Makefile (BATCHFLAGS): Use debug-on-error's default value nil. Emacs 31
introduces calling man using with-demoted-errors which
causes an error when requiring man when debug-on-error is set to t.
2024-11-22 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-find-page): Add missing second interactive
arg value, current-prefix-arg. Rewrite to allow for
different actions per HyWikiWord or a single overriding
function.
2024-11-19 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-maybe-highlight-page-name): Fix that adding
numbers to the middle of a HyWikiWord did not dehighlight it;
see updates at the end of this function.
2024-11-18 Bob Weiner <rsw@gnu.org>
* hactypes.el (require): Remove require of 'man' and do it only in
man-show where needed. This may allow CI/CD build of docker Emacs
master branch that lacks 'man' package.
* hui-tests.el (hui--ibut-link-directly-to-org-header-first-column):
Remove dir from fileb when comparing to in-buffer filename and
do the same for other tests in this file.
2024-11-17 Bob Weiner <rsw@gnu.org>
* hpath.el (hpath:call): Allow for # sections with # chars embedded.
* hpath.el (hpath:shorten): First make path relative to any optional RELATIVE-TO
path (default = 'default-directory') and expand both paths. This makes
inserting a link from the other window display the minimal path to produce
the link relative to the source path.
* hui.el (hui:link-possible-types): Ensure outline modes trigger only when
'buffer-file-name' is non-nil since is used in the return value. Simplify
'link-to-string-match' and other link types.
* hpath.el (hpath:variables): Add 'hywiki-directory' for use in path substitutions.
* hywiki.el (hywiki-word-at, hywiki-maybe-dehighlight-page-name): Fix to exclude
any char after the HyWikiWord, if any.
* hproperty.el (hproperty:but-get-all-in-region): Return only overlays that still
point to some buffer (may have overlay references that have been deleted and point
to no buffer).
* test/hywiki-tests.el (hywiki-tests--verify-face-property-when-editing-wikiword-first-char):
Fix middle test after delete-char from HyWikiWord.
* hui-mouse.el (smart-eobp): Trigger only if eobp = eolp or if only
whitespace on line preceding eobp.
2024-11-16 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-debuttonize-non-character-commands):
Remove (let ((hywiki-word-highlight-flag))) which was preventing
dehighlighting at the start of a WikiWord when the first character
was deleted.
2024-11-17 Mats Lidell <matsl@gnu.org>
* Makefile (run-emacs): Run Emacs as a make target for use with docker.
2024-11-16 Mats Lidell <matsl@gnu.org>
* test/hsys-org-tests.el (hsys-org--meta-return-on-end-of-line): Add test
case for eol action in org-mode.
* hui-mouse.el (hkey-alist): Guard action-key-eol-function from acting
when we should delegate to org-mode.
2024-11-13 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-maybe-dehighlight-page-name,
hywiki-maybe-highlight-page-name): Fix that newline was not
being skipped back over to see HyWikiWord since in Org mode it has
end-comment syntax (>) rather than whitespace syntax (-).
test/hywiki-tests.el (hywiki-tests--face-property-for-wikiword-with-wikipage):
The above fixes the 2nd test case here.
test/hywiki-tests.el (hywiki-tests--convert-words-to-org-link):
The above fixes this test.
* hywiki.el (hywiki-highlight-on-yank): Fix off-by-one error when string
extends to (point-max).
2024-11-10 Bob Weiner <rsw@gnu.org>
* hui-window.el (action-key-modeline-left-edge-function,
action-key-modeline-left-edge-function,
assist-key-modeline-left-edge-function,
action-key-modeline-right-edge-function): Add these
customizations.
(action-key-modeline-click-left-edge,
assist-key-modeline-click-left-edge,
action-key-modeline-click-right-edge,
assist-key-modeline-click-right-edge): Add these functions
as defaults for the above customizations.
(hmouse-modeline-default-help-echo): Replacement for default
'mode-line-default-help-echo' function that produces mode line hover doc
for the Smart Mouse Keys.
hyperbole.el (hyperbole--enable-mode): Update mode-line hover doc in blank
areas for button-2 and button-3 if using unshifted Smart Keys.
* hui-jmenu.el (hui-menu-modeline): Add HyWiki-Edit-Pages to display a list
of HyWiki page files either in dired or Treemacs.
* hui-treemacs.el (require): Prompt to install package if not yet installed.
* hui-window.el (hmouse-horizontal-assist-drag): Fix doc when one window only.
* man/hyperbole.texi (HyWiki Menu): Add index entries per menu item.
* hywiki.el (hywiki-directory-edit): Rename to 'hywiki-directory-dired-edit'.
(hywiki-directory-edit): Make a new version that supports
'treemacs' when 'action-key-modeline-buffer-id-function' is set to
'smart-treemacs-modeline.
* hui-treemacs.el (smart-treemacs): Simplify and no longer call
'treemacs-node-buffer-and-position' which can trigger a marker error.
(smart-treemacs-edit): Add to edit/display a dir in Treemacs.
(smart-treemacs-modeline): Call above function.
hywiki.el (hywiki-directory-treemacs-edit): Add and call above function.
* hycontrol.el (hycontrol-window-display-buffer): Fix to ignore any dedicated
windows and prevent an error typically generated when calling this from
'walk-windows' called within 'hycontrol-windows-grid'. Makes window grids
work with Treemacs display, for example.
* hui-treemacs.el (smart-treemacs): Fix invocation of TAB command on first line
entry (treat it like any other line except at eol). Also, actually invoke
latest treemacs TAB command when defined rather that calling the default
command normally configured to the TAB key. Ensure all func calls are
wrapped with 'hact'.
(smart-treemacs-modeline): Ensure always displays just the
dir associated with the current buffer. Wrap all func calls with 'hact'.
man/hyperbole.texi (Smart Key - Treemacs): Update doc to match above change.
(smart-treemacs-quit): Add to ensure treemacs-quit is run
within the Treemacs window.
* hywiki.el (hywiki-directory-edit): Support non-bash shells that cannot handle
character classes.
2024-11-10 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el (hywiki-tests--add-hywiki-hooks)
(hywiki-tests--remove-hywiki-hooks, with-hywiki-buttonize-hooks)
(with-hywiki-buttonize-and-insert-hooks): Add functions and macros for
mimicking redisplay hook behavior and use these in the highlighting tests.
(hywiki-tests--face-property-for-wikiword-with-wikipage)
(hywiki-tests--no-face-property-for-no-wikipage)
(hywiki-tests--verify-face-property-when-editing-wikiword)
(hywiki-tests--verify-face-property-when-editing-wikiword-first-char):
Tests using the hook mimicking functions.
2024-11-03 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-maybe-highlight-page-name, hywiki-maybe-dehighlight-page-name):
Change to use function (hywiki-get-buttonize-characters) rather than the
variable, hywiki--buttonize-characters, so do not move back over whitespace
when at the beginning of a HyWikiWord.
* hyrolo.el (hyrolo-grep-file): Don't set grepped file to read-only since
this can later make org-capture fail. (gh#rswgnu/hyperbole/599)
2024-11-02 Bob Weiner <rsw@gnu.org>
* man/hyperbole.texi: Change all @url to @uref so display properly in
Info-format output.
2024-11-02 Mats Lidell <matsl@gnu.org>
* test/hywiki-tests.el (hywiki-tests--word-is-p)
(hywiki-tests--directory-edit)
(hywiki-tests--verify-face-property-when-editing-wikiword)
(hywiki-tests--verify-face-property-when-editing-wikiword-first-char): Add hywiki
tests.
* test/hywiki-tests.el (hywiki-tests--word-is-p): Add hywiki test.
2024-10-28 Bob Weiner <rsw@gnu.org>
* hibtypes.el (hywiki-existing-word): Call action with the singular version
of the page name but leave the in-buffer page name version as the button
label.
* hywiki.el (hywiki-get-plural-page-name, hywiki-get-singular-page-name): Add
to convert HyWiki page names between singular and plural.
(hywiki-get-page-hasht): Add plurals to the page name hash table
so are included when highlighting wikiwords in buffers.
(hywikig-get-file): Add check for null or empty string values and
make page name singular.
(hywiki-get-page): Remove call to 'hywiki-add-page' as it can cause
an infinite loop.
(hywiki-add-page, hywiki-make-pages-hasht): Reset
'hywiki--any-page-regexp-list' whenever hasht is rebuilt. Otherwise,
highlighting might not include new wikiwords in hasht.