-
Notifications
You must be signed in to change notification settings - Fork 11
/
ChangeLog
16085 lines (11755 loc) · 698 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
2024-12-16 Mats Lidell <[email protected]>
* Makefile (docker-all-tests, docker-batch-tests): No byte compiling to
speed up running tests.
2024-12-16 Bob Weiner <[email protected]>
* test/hbut-tests.el: Change most "/tmp" to "/tmp/" for ease of comparison
with 'default-directory'.
2024-12-15 Bob Weiner <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Makefile (run-emacs): Run Emacs as a make target for use with docker.
2024-11-16 Mats Lidell <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* man/hyperbole.texi: Change all @url to @uref so display properly in
Info-format output.
2024-11-02 Mats Lidell <[email protected]>
* 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 <[email protected]>
* 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.
2024-10-27 Bob Weiner <[email protected]>
* hywiki.el (hywiki-directory-edit): Add this command.
(hywiki-get-page-files): Fix so returns file names sans directory.
No subdirectories are allowed.
(hywiki-make-pages-hasht): Speed this up by removing now unneeded
'file-name-nondirectory' call.
(hywiki-directory): Ensure customization ends with a dir separator.
hui-mini.el (hui:menu-hywiki): Add 'EditPages'.
hui-menu.el (hui-menu-hywiki): Normalize menu names and add 'Edit-HyWiki-Pages'.
man/hyperbole.texi (HyWiki Menu): Add EditPages doc.
(hywiki-add-page): Change 'hash-get' call to 'hywiki-get-page' call
to improve abstraction and plural handling.
(hywiki-get-page): Update to expand page-file-name since stored as
a relative name now.
(hywiki-highlight-between-page-names-after-word): Remove conditional
(when (and (char-before) (/= (char-syntax (char-before)) ?w))) so that
WikiWords are highlighted immediately when typed, including first or middle
characters after deleted and then replaced. Remove this function and call
'hywiki-maybe-highlight-between-page-names' directly instead.
(hywiki-get-page-hasht): Add HyWikiWord optional plural support.
2024-10-27 Mats Lidell <[email protected]>
* Makefile (TEXI2HTML, HYPERBOLE_FILES, $(html_dir)/hyperbole.html),
$(man_dir)/hyperbole.html): Use texinfo-7.css, replaces texinfo-klare.css.
(doc-clean, doc-regenerate): Convenience targets for working with docs.
* man/hyperbole.texi (Top): Add top node so contents section is generated.
2024-10-25 Bob Weiner <[email protected]>
* Makefile (info): Replace any use of 'texi2any' in first line to 'makeinfo'
so Hyperbole Info index links work properly since Info checks for 'makeinfo'.
2024-10-22 Bob Weiner <[email protected]>
* Makefile: Use texi2any instead of makeinfo as is more likely to grab
the latest version. Also add ASCII_PUNCTUATION option everywhere.
2024-10-21 Bob Weiner <[email protected]>
* hywiki.el (hywiki-highlight-on-yank): Add extra char at end to support
highlighting any last HyWikiWord.
2024-10-20 Bob Weiner <[email protected]>
* hywiki.el (hywiki-maybe-highlight-between-page-names,
hywiki-maybe-highlight-off-page-name,
hywiki-maybe-highlight-on-page-name): Add for use in
'post-self-insert-hook' idle HyWikiWord highlighter (setup from
'hywiki-buttonize-character-commands'.
(hywiki-maybe-dehighlight-between-page-names,
hywiki-maybe-dehighlight-off-page-name,
hywiki-maybe-dehighlight-on-page-name): Add for use in
'pre-command-hook' called via 'hywiki-debuttonize-non-character-commands'.
(hywiki-debuttonize-non-character-commands,
hywiki-maybe-dehighlight-sexp,
hywiki-maybe-highlight-page-names): Enable dehighlighting in
HyWiki pages by letting 'hywiki-word-highlight-flag' be nil.
(hywiki-maybe-highlight-page-names): Fix that were skipping forward
for section words even if # symbol was not found.
(hywiki-maybe-highlight-balanced-pairs): Make result a boolean value,
t if any balanced pair was found.
2024-10-19 Bob Weiner <[email protected]>
* hywiki.el (hywiki--maybe-de/highlight-org-element-backward): Add to handle
both highlighting and dehighlighting with public callers named:
(hywiki-maybe-dehighlight-org-element-backward,
hywiki-maybe-highlight-org-element-backward).
(hywiki--maybe-de/highlight-org-element-forward): Add to handle
both highlighting and dehighlighting with public callers named:
(hywiki-maybe-dehighlight-org-element-forward,
hywiki-maybe-highlight-org-element-forward).
(hywiki--maybe-de/highlight-sexp): Add to handle
both highlighting and dehighlighting sexps with public callers named:
(hywiki-maybe-dehighlight-sexp,
hywiki-maybe-highlight-sexp).
(hywiki-maybe-dehighlight-balanced-pairs): Add to dehighlight.
(hywiki-maybe-dehighlight-page-name): Add as inverse to
highlight any page name at point function.
(hywiki-maybe-highlight-page-name): Change to work when point is
within a wiki word as a any point of a word may be edited, turning it
to or from a valid page name.
* hywiki.el (hywiki-highlight-between-page-names-after-word): Add to highlight
any HyWikiWords between point after inserting a non-word character.
(hywiki-buttonize-character-commands): Remove conditionals and
. change to using an idle timer with a 0.3 second default delay.
(hywiki-maybe-highlight-page-names): Remove dehighlighting of
HyWikiWords between [] and <> brackets.
(hywiki-debuttonize-non-character-commands): Fix to dehighlight
non-WikiWord at point after a delete char command.
* kotl/kfile.el (kfile:create): Remove unneeded insertion of extra 2
newlines after end of first cell as 'kview:add-cell' handleds this.
2024-10-13 Bob Weiner <[email protected]>
* hproperty.el (hproperty:but-get-all-in-region): Optimize so val-list
is created only once per call.
* hbut.el (ibut:insert-text):
Convert (link-to-texinfo-node
"/home/bw/Dropbox/emacs/hyperbole/man/hyperbole.texi"
"Implicit Button Types")
and insert something like "man/hyperbole.texi#Implicit Button Types"
so works properly.
* FAST-DEMO (Introduction): Improve this section and add how to globally
bind a Hyperbole minibuffer command to another key sequence.
* hui-mini.el (hui:menu-hywiki): Rename 'Edit' to 'FileFind'.
(hui:menu-rolo): Rename 'Edit' to 'FindPage'.
hui-menu.el (hui-menu-hywiki): Rename 'Edit' to 'Find-HyWiki-Page'.
man/hyperbole.texi (HyWiki Menu): Rename 'Edit' to 'FindPage'.
* hyrolo.el (hyrolo-find-file): Fix that interactive conditions for when to
choose among all files (no prefix arg) versus selecting the first, were
inverted. Fixes Rolo/File menu item.
2024-10-08 Bob Weiner <[email protected]>
* man/hyperbole.texi: Remove duplicate manual title display in HTML output.
Makefile (TEXI2HTML): Modernize HTML css style via the "texinfo-klare.css"
style sheet; change body font size to be responsive to screen size with:
font-size: clamp(1rem, 2vw + 0.5rem, 2rem);
Add this file to the Makefile.
Also make "man/hyperbole.css" font-size responsive for use with Koutline
and HyWiki exports.
2024-10-07 Bob Weiner <[email protected]>
* man/hyperbole.texi (Binding Minibuffer Menu Items): Document how to
programmatically bind a global key to a Hyperbole minibuffer menu item.
(Highlight Menu Key Toggle): Add doc for this customization.
* test/hywiki-tests.el (hywiki-tests--get-page-list-after-add-and-delete): Add
and update this test from Mats.
* hywiki.el (hywiki-strip-org-link): Remove any Org link around HyWikiWord#section.
(hywiki-page-exists-p): Call above function.
(hywiki-word-is-p): Clarify in doc that hy:WikiWord returns nil since
Org mode handles such links.
(hywiki-word-at): Remove optional arg 'range-flag' since never used
and too complicated to always return a list with the range when given.
2024-10-06 Bob Weiner <[email protected]>
* hywiki.el (hywiki-word-at): Update to handle HyWiki Org-type links with
descriptions, e.g. [[WikiWord][Description Text]].
* hargs.el (hargs:delimited): Update doc of 'as-key' argument on use of 'none.
* hasht.el (hash-map): Speed up by not consing key and value when don't need to.
* hywiki.el (hywiki-add-page): Replace 'make-empty-file' with lower-level
'write-region' for efficiency.
(hywiki--directory-mod-time): Use nil as default value instead of 0.
(hywiki-directory-get-mod-time): Return nil if no mod-time or a list
that includes microseconds (previously integer return was only precision
of seconds).
test/hywiki-tests.el (hywiki-tests--directory-get-mod-time,
hywiki-tests--directory-modified-p): Update to handle
new list format for mod-time.
2024-10-05 Bob Weiner <[email protected]>
* hywiki.el (hywiki-kill-buffer-hook): Change to return t iff 'hywiki-directory'
change
2024-09-30 Bob Weiner <[email protected]>
* hywiki.el (hywiki-maybe-highlight-page-names): Don't widen the buffer by
default as modes like the Koutliner and mail readers narrow to keep
certain data hidden from display or editing.
2024-09-29 Bob Weiner <[email protected]>
* hywiki.el (hywiki-maybe-dehighlight-page-names): Add support for passing
markers as 'region-start' and 'region-end' args.
* hproperty.el (hproperty:but-get-all-in-region): Fix to exit with first match
if 'property' arg is given.
* hypb.el (hypb:in-string-p): Add.
* hywiki.el (hywiki-word-activate): If on a HyWikiWord without a wiki page,
then prompt before creating the page.
(hywiki-maybe-highlight-balanced-pairs): Fix to handle HyWikiWords
within double quotes and re-highlight balanced expressions before and after
point since don't know if command is moving point forward or backward. Also
limit buffer region to 'hywiki--buttonize-start' and 'hywiki--buttonize-end'
markers when set by 'pre-command-hook'.
(hywiki-maybe-highlight-page-names): Allow for whitespace in section
names when 'region-start' and 'region-end' are given. And allow these two args
to be markers.
(hywiki-word-highlight-flag-changed): Add dehighlighting of HyWikiWords
after special commands like deletion to 'pre-command-hook'. Leave
highlighting to 'post-command-hook'. This allows dehighlighting of an an
entire balanced delimited HyWikiWord with a section that contains whitespace
before the delimiter is removed.
(hywiki-debuttonize-non-character-commands): Add to dehighlight
HyWikiWords for 'pre-command-hook'.
(hywiki--get-delimited-range-backward, hywiki--get-delimited-range-forward,
hywiki-get-delimited-range): Add to compute delimited range before
or after point that surrounds a HyWikiWord#section button, if any.
(hywiki-get-delimited-range, hywiki-maybe-highlight-balanced-pairs):
Fix to handle all cases of point being before or after delimiters since
for example can delete a delimiter forward or backward.
2024-09-22 Bob Weiner <[email protected]>
* test/hywiki-tests.el (hywiki-tests--get-page-list-when-new-wiki-directory):
Remove 'hash-empty-p' test that fails exclusively on Emacs master.
* hywiki.el (hywiki-find-page): Move prompt tests to 'hywiki-add-page'.
(hywiki-add-page): Add and run 'hywiki-add-page-hook'. Add
optional second arg 'prompt-flag' that 'hywiki-find-page' passes.
(hywiki-directory-get-checksum): Update to use 'hywiki-get-page-files'.
(hywiki-get-files): Remove, essentially duplicate of
'hywiki-get-page-files'.
* test/hywiki-tests.el (hywiki-tests--directory-modified-p):
Update to set checksum which is needed now and expand
test scenarios.
(hywiki-tests--wikiword-with-prefix-creates-a-new-page):
Update to add optional 2nd arg of nil to 'hywiki-add-page' call.
(hywiki-tests--hywiki-add-page--adds-file-in-wiki-folder):
Actually create empty file and then delete it, fixing
hywiki-add-page call failure.
hywiki.el (hywiki-add-page): Fix issue where hash table
value was set before empty page file is created so
did not have correct value.
* hywiki.el (hywiki-maybe-highlight-page-names-in-frame,
hywiki-maybe-highlight-page-names): Move set of
mod-time and checksum here from 'hywiki-get-page-hasht' to
make work with 'hywiki-kill-buffer-hook'.
2024-09-21 Bob Weiner <[email protected]>
* hywiki.el (hywiki-kill-buffer-hook): Add for use as a global
'kill-buffer-hook'.
hypb.el (hypb:empty-file-p): Add and use in 'hywiki-kill-buffer-hook'.
* hywiki.el (hywiki-maybe-highlight-page-names): Dehighlight HyWikiWords
before re-highlighting new set.
* hywiki.el (hywiki-find-page): Prompt when creating the first HyWiki page
so user is not surprised by this Action Key behavior.
(hywiki-maybe-highlight-page-names): Add 3rd optional arg,
'skip-lookups-update-flag'.
(hywiki-maybe-highlight-page-names-in-frame): Add optional 2nd arg,
'skip-lookups-update-flag'
(hywiki-get-page-hasht): Call above function when update
lookup tables so use new data to highlight HyWikiWords.
* man/hyperbole.texi (Manual Overview): Add links for HyWiki and HyNote.
* hywiki.el (hywiki-maybe-highlight-balanced-pairs): Separate balanced
pair delimited expression highlighting into this function to allow
for more general handling. Expand range from one line to two.
(hywiki-maybe-highlight-page-name): Call above function.
(hywiki-get-page): Auto-link standard pluralizations of HyWikiWords
that end 's' when not preceded by an 's' or in 'es'.
(hywiki-directory-set-mod-time): Add.
(hywiki--directory-checksum): Add for checking if any HyWiki page file
names have changed.
(hywiki-directory-get-checksum, hywiki-directory-set-checksum): Add.
(hywiki-directory-modified-p): Additionally test if dir checksum changed.
(hywiki-get-page-hasht): Fix to update pages hash table and page name
and page name regexp lookups if any page file name changes.
(hywiki-maybe-highlight-page-names): Force rebuild of pages hash table
if any page file names have changed in 'hywiki-directory' and move mod-time
update to 'hywiki-get-page-hasht'.
2024-09-16 Bob Weiner <[email protected]>
* hsys-org.el {C-c C-@} Bind this key in Org mode to
'hycontrol-windows-grid' unless already bound.
hycontrol.el (hycontrol-windows-grid): Fix infinite recursive call
when 'mode-binding' is the same as the current command, e.g. org-mode.
2024-09-11 Mats Lidell <[email protected]>
* test/hyrolo-tests.el (hyrolo-tests--get-file-list): Verify
`hyrolo--expanded-file-list' is updated when a file is added.
2024-09-10 Bob Weiner <[email protected]>
* hywiki.el (hywiki-org-make-publish-project-alist): Add
new option 'hywiki-org-publishing-broken-links' with a default value
of 'mark. This is used to set 'org-export-with-broken-links' so
HyWiki will simply mark and include broken links when exporting rather
than failing. Otherwise, exporting will often fail due to a few
invalid links. With this setup, just search for 'BROKEN LINK' in the
output to repair each issue.
2024-09-09 Bob Weiner <[email protected]>
* hywiki.el: Add additional autoloads.
(hywiki-add-page): Update doc and interactive prompt to
indicate this adds or edits an existing page.
(hywiki-find-page): Fix interactive expression without a
prefix arg to accept a non-existing page name to be created. With a
prefix arg or programmatically with PROMPT-FLAG equal to :existing,
find existing pages only.
* hui-select.el (hui-select-syntax-table): Fix that # was registering as
an opening quote to an sexp rather than punctuation.
2024-09-08 Bob Weiner <[email protected]>
* hui-mini.el (hui:menu-highlight-flag): Add this new customization.
(hui:menu-item-highlight-key): Add to highlight with
'read-multiple-choice-face' the key to press for each menu item
if `hui:menu-highlight-flag' is non-nil.
(hui:menu-read-from-minibuffer): Call above function.
(hui:menu-item-toggle-highlight): Add and use in Cust/
menu.
2024-09-08 Mats Lidell <[email protected]>
* test/hibtypes-tests.el (ibtypes::hyp-manual-test): Add test.
2024-09-07 Mats Lidell <[email protected]>
* Makefile (docker, docker-run): Use "--rm" option so the short lived
container and its volumes are removed on exit.
2024-09-02 Bob Weiner <[email protected]>
* man/hyperbole.texi (Action Button Link Types): Change PYTHONLIBPATH to
PYTHONPATH to match the example definition of 'pylib' in the 'defal'
macro documentation.
* hui-select.el (hui-select-delimited-thing-call): FIX: Add setting of
missing 'hui-select-syntax-table' that was preventing the Action
Key from selecting markup pairs in HTML/Web modes.
2024-09-01 Bob Weiner <[email protected]>
* man/dir (File): Narrow width to better fit with out Info entries.
* hyrolo.el (hyrolo-org-mode): Prioritize Org 9.7 folding-spec config
over earlier versions to fix a bug that used the wrong version.
* hui-menu.el (infodock-hyperbole-menu):
hui-mini.el (hui:menu-hywiki): Allow customizing the HyWiki menus and
define its Consult items only when consult-grep is fboundp.
* hynote.el (hynote-get-file): Add secondary markdown file suffixes.
(hynote-file-suffix-list): Add this variable and use in above
function.
(hynote-file-suffix-regexp): Add this variable and use in
`hynote-get-files'.
(require 'hyrolo): Remove.
* man/hyperbole.texi (Glossary): Add HyNote entry and HyWiki entry reference
to its two ibtypes.
(HyNote): Add a short chapter on this.
2024-08-30 Bob Weiner <[email protected]>
* hibtypes.el (hyp-manual): Fix to strip spaces around section for both .html
and .texi files.
* hywiki.el (hywiki-word-at): Add optional arg 'range-flag' and when non-nil
return (wikiword word-start word-end).
(hywiki-word-activate): Fix call to 'hywiki-word-at'.
2024-08-29 Bob Weiner <[email protected]>
* hywiki.el (hywiki-page-exists-p): Use 'range only if 'word' is non-nil.
Add 'start' and 'end' optional args to record 'word' position range.
* hibtypes.el (hywiki-existing-word): Fix to set label when a word is given
but no position is known for the word.
* hactypes.el (link-to-texinfo-node): If 'node' is not a string, set it to
"Top", the first node. If 'file' equals "hyperbole.texi", make the file
name absolute.
hibtypes.el (hyp-manual): Add new ibtype to display Hyperbole HTML and .texi
manual sections using syntax: "hyperbole.suffix#section". The same syntax
for "hyperbole.info" is handled elsewhere.
man/hyperbole.texi (Implicit Button Types): Add 'hyp-manual' doc.
2024-08-28 Bob Weiner <[email protected]>
* hibtypes.el (hywiki-existing-word): Fix label set to use start and end
rather than (match-beginning 0) (match-end 0) which yielded wrong positions.
* hui.el (hui:link-possible-types): Fix bug in link-to-texinfo-node where
node name was grabbed outside of save-excursion when not at a node
name, so wrong value was used.
2024-08-25 Bob Weiner <[email protected]>
* man/hyperbole.texi (Implicit Button Types): Add doc for 'hywiki-existing-word',
'hywiki-word' and 'hynote-file'.
2024-08-24 Mats Lidell <[email protected]>
* man/hyperbole.texi: Remove not useful @indent.
* Makefile (HYPB_ERT_BATCH_BT): Control abbreviation of backtrace.
2024-08-24 Bob Weiner <[email protected]>
* hpath.el (hpath:to-Info-ref): Add.
(hpath:is-p, hpath:at-p):
hactypes.el (link-to-Info-node):
hibtypes.el (Info-node): Add support for Info refs in a regular
pathname format, e.g. "hyperbole.info#Smart Keys".
hibtypes.el (pathname): Exclude Info paths without parens handled
by Info-node, e.g. "emacs.info#Windows".
2024-08-23 Bob Weiner <[email protected]>
* hbut.el (ibut:label-p): Handle when lbl is nil.
* hyperbole.el: Require Emacs 27.2 minimum.
2024-08-23 Mats Lidell <[email protected]>
* hibtypes.el (ripgrep-msg): Add check of file exist.
* test/hibtypes-tests.el (ibtypes::ripgrep-msg-test): Test ripgrep-msg.
2024-08-19 Bob Weiner <[email protected]>
* README.md: Add HyWiki description.
* man/hyperbole.texi (HyRolo Searching, HyRolo Menu): Add TagFind menu item.
* hyrolo-menu.el: Add "Tag-Find".
hui-menu.el (infodock-hyperbole-menu):
hui-mini.el (hui:menus): In HyWiki> menu, change Toggle to ModeToggle so
can add TagFind item.
(hui:menu-read-from-minibuffer): Add to allow customization
of minibuffer read arguments such as 'initial-content' that minibuffer
menus generate.
(hui:menu-rolo): Add TagFind.
man/hyperbole.texi (HyWiki Menu): Add TagFind menu item doc.
* hsys-org.el (hsys-org-enable-smart-keys): Change 'buttons option to :buttons
so don't have to quote and works in assq/rassq lookups.
2024-08-18 Bob Weiner <[email protected]>
* hywiki.el (hywiki-maybe-at-wikiword-beginning): Fix to handle word
preceded by a single square bracket.
* hibtypes.el (hywiki-existing-word): Add this new ibtype to match to
HyWikiWords with an existing page at a higher priority than those
without an existing page, so can be handled separately. Must be
defined in this file to set its priority at a high level.
* hywiki.el (hywiki-is-wikiword): Rename to 'hywiki-word-is-p'.
(hywiki-word-activate , hywiki-page-strip-section,
hywiki-page-exists-p): Add.
(hywiki-word-consult-grep): Rename from `hywiki-word-search'.
hui-mini.el (hui:menus): Change "Act" item from 'hui:ibut-act' to
new 'hywiki-word-activate'.
* hui-menu.el (infodock-hyperbole-menu):
hui-mini.el (HyWiki, IButton): Change help function from 'hui:hbut-help'
to 'hkey-help' so handles more contexts without erroring.
* hui-menu.el (hui-menu-org-meta-return-options): Remove wrong extra parens.
2024-08-18 Mats Lidell <[email protected]>
* kotl/klink.el (klink:ignore-modes, klink:c-style-modes):
* hui-select.el (hui-select-brace-modes)
(hui-select-brace-def-or-declaration):
* hui-mouse.el (hkey-alist):
* hmouse-tag.el (smart-java-cross-reference):
* hibtypes.el (annot-bib): Add corresponding tree-sitter modes for the
modes supported by Hyperbole.
2024-08-17 Bob Weiner <[email protected]>
* hui-mini.el (hui:menus): Org-M-RET/ Customization menu, add doc to items
and add this menu to the HyWiki menu. Also add Toggle 'hywiki-mode' item.
(hui:menus): Change Org-M-RET/All-Programmed-Contexts to
All-Smart-Org-Contexts. Add HyWiki Toggle-HyWiki-Mode.
man/hyperbole.texi (HyWiki Menu): Doc above changes in the manual.
(HyWikiWords): Explain new HyWikiWord page creation.
* hact.el (hact): Document that this returns t instead of nil when action type
return value is nil; this ensures that implicit button types register
the performance of the action.
* man/hyperbole.texi (HyWiki Menu):
hui-menu.el (infodock-hyperbole-menu):
hui-mini.el (hui:menus): Change 'Grep' to 'GrepConsult' and 'Search' to
'WikiWordConsult' so know they use the Consult package.
* hsys-consult.el (hsys-consult-grep): Add missing autoload for this function.
2024-08-16 Bob Weiner <[email protected]>
* hbut.el (hbut:map): Remove args 'start-delim' and 'end-delim' and fix to
work for both ebuts and named ibuts.
(hbut:map-type): Create and use old logic from 'hbut:map' and
use in 'ebut:map', 'ibut:map' and 'ibut:label-map'.
2024-08-15 Mats Lidell <[email protected]>
* test/hywiki-tests.el (hywiki-tests--org-set-publish-project)
(hywiki-tests--org-get-publish-project)
(hywiki-tests--org-link-resolve)
(hywiki-tests--org-link-export): Add publish and export tests.
2024-08-15 Bob Weiner <[email protected]>
* hui.el (hbut:alist, hbut:list): Add to match but type-specific functions.
(hui:hbut-help): Change 'hargs:read-match' completion table to use
'hbut:alist' instead of 'ebut:alist'.
* Makefile (HYPERBOLE_FILES): Add all Org files under the hywiki dir.
2024-08-14 Bob Weiner <[email protected]>
* FAST-DEMO: Add HyWiki section and associated hywiki pages sub-directory.
2024-08-13 Bob Weiner <[email protected]>
* man/hyperbole.texi (Menus): Add description of Doc/ and HyWiki/ menus.
(Glossary): Add History and HyWiki entries.
(HyWiki): Add a chapter documenting HyWiki.
* hui-mini.el (hui:menus): Add HyWiki menu to 'h' and move Hist to historY,
selectable with 'y' instead of 'h'.
man/hyperbole.texi (Default Hyperbole Bindings): Update hist to 'y' binding.
DEMO (History): Update binding to {C-h h y}.
* hywiki.el (hywiki-word-search): Add to search for HyWikiWord occurrences.
(hywiki-read-new-page-name): Add and use in 'hywiki-add-page'.
(hywiki-add-page): Update so returns nil if page-name is invalid,
unless called interactively, then trigger an error.
2024-08-12 Bob Weiner <[email protected]>
* hywiki.el (hywiki-read-page-name): Add mainly for use in interactive calls
that require an existing HyWikiWord (same as its page name).
(hywiki-add-link): Add to prompt and link to HyWiki pages.
2024-08-11 Bob Weiner <[email protected]>
* hywiki.el (hywiki-maybe-highlight-page-names-in-frame): Reduce sit-for
to 0 since just want to trigger redisplay.
(hywiki-publish-to-html): Retrieve HyWiki project by name.
(hywiki-directory): Change to a defcustom so can set this before
loading Hyperoble.
(hywiki-org-get-publish-property): (require 'ox-publish).
(hywiki-org-maybe-add-title): Add title to HyWiki pages without one
using the file or buffer name.
(hywiki-org-export-function): Fix to trigger only in the copy of
the HyWiki Org buffer that we want to modify with a Title and [[hy:link]]
markup.
(hywiki-org-get-publish-project): Initialize alists if not set.
(hywiki-org-set-publish-project): Add and use in above function.
(hywiki-directory, hywiki-org-publishing-directory,
hywiki-org-publishing-function): Add :initialize and :set
properties so that changes trigger updates in 'org-publish-project-alist'.
(hywiki-org-maybe-add-title): Add to add the HyWikiWord as the
title for each HyWiki page.
(hywiki-org-make-publish-project-alist): Add :sitemap-title property..
(hywiki-org-publishing-sitemap-title): Add to set above property.
(hywiki-is-wikiword): Add not 'string-empty-p' test.
(hywiki-add-page): Add interactive spec.
2024-08-10 Bob Weiner <[email protected]>
* hynote.el: Update commentary to current functionality.
(hynote-get-file): Add ".otl" and ".outl" suffixes for Emacs
outline and HyRolo files.
* hywiki.el (hywiki-org-export-function): Add and use as advice on
'org-element--generate-copy-script'.
(hywiki-get-page): Fix so just returns nil if page name is invalid
or not found.
(hywiki-org-link-resolve , hywiki-org-link-export): Handle nil as a