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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
|
What's New in GNU Hyperbole
by Bob Weiner
===========================================================================
* V8.0.1pre
===========================================================================
** ACTION TYPES (See "(hyperbole)Action Types").
*** display-boolean, display-value, display-variable: Made all of these
interactive, so can be used as button actypes. See "(hyperbole)
actypes display-boolean".
** DOCUMENTATION
*** Emacs 2022 Talk Videos:
- Hyperbole and Org Mode: Org slide file is included in
"HY-TALK/Hyperbole-and-Org-Mode.org" with the video at
"https://emacsconf.org/2022/talks/hyperorg/".
- Linking Personal Info with Implicit Buttons: The video is at
"https://emacsconf.org/2022/talks/buttons/".
- Build a Zettelkasten with HyRolo: The video is at
"https://emacsconf.org/2022/talks/rolodex/".
*** Hyperbole Concepts: New writeup in Koutline format for those who
want a quick read about how Hyperbole concepts all interrelate.
View it with {C-h h d c}.
*** Action Types: Added newer types and updated existing doc summaries
in the Hyperbole manual. See "(hyperbole)Action Types".
*** New Menu Key Doc: Documented these Hyperbole minibuffer menu keys:
- {Q} always quits from the menu without selecting anything
- {X} both quits from the menu and disables Hyperbole minor
mode; {C-h h} re-enables it. See "(hyperbole)menu,
entry/exit commands".
*** Extensive 150-page Reference Manual: Includes multiple indexes
for easy cross-referencing, Info viewer version and PDF for printing.
Some of the updates include:
**** Ebut/Link Menu Item: With two windows on screen, link from source
window point to referent window point. Do a similar thing when
more windows are on screen via an Action Mouse Key drag between
windows. See "(hyperbole)Smart Mouse Drags between Windows".
**** Ibut Menu: Documented in the manual, notably the new Ibut/Create
menu item. See "(hyperbole)menu, Ibut/Create". For the Ibut/Link
menu item, see "(hyperbole)menu, Ibut/Link".
**** Manual Glossary: Added Ace Window, Consult, Org Mode, and Org Roam
entries. See "(hyperbole)Glossary".
**** Smart Key - Org Mode: Expanded with doc for more extensive behavior.
See "(hyperbole)Smart Key - Org Mode".
** HYCONTROL (See "(hyperbole)HyControl").
*** I/J/K/M Key Bindings: In Window Control mode, move directionally
(based on QUERTY keyboard layout) among windows in the selected frame.
In Frame Control mode, move directionally among active frames. These
keys utilize and prompt to install the windmove and framemove packages
if not installed. See "(hyperbole)I/J/K/M".
** HYPERBOLE SYSTEM (See "(hyperbole)").
*** Any Colorized Display: Face display and colorization of Hyperbole
buttons now works on any display capable of displaying colors. See
"(hyperbole)Button Colors".
*** Create Buttons in Current Buffer: Stopped prompting for a source
buffer when creating a Hyperbole button. Always use the current
buffer and point. See "(hyperbole)Creation".
*** Improved Button Help: {C-h A} now says whether a button is explicit or
implicit. For implicit buttons, it displays the doc from both its
implicit button type and its associated action type.
{C-h A} now also works on Emacs push-buttons and text property
buttons, displaying their attributes and associated action. See
"(hyperbole)Smart Key help".
*** Interactive Org-Roam DB Consult Grep: {M-x hsys-org-roam-consult-grep
RET} Interactively greps org-roam files with live in-buffer display as
you move through matching lines. It uses the automatically installed
consult-org-roam package when invoked. See
"(hyperbole)hsys-org-roam-consult-grep".
*** mhtml-mode Markup Selection: Hyperbole's matching markup pair selection,
copying and movement now works with Emacs' builtin mhtml-mode. See
"(hyperbole)HTML tag pair".
*** Native Compilation: Hyperbole now may be natively compiled (.eln files).
It works around an Emacs bug where async native comp of a package being
installed does not load "hyperbole-autoloads.el". When building
Hyperbole without a package manager, 'make eln' now builds it natively.
*** Natively Compiled Functions as Action Types: Now may be used as
Hyperbole button action types. See "(hyperbole)Action Types".
*** Reduced Warnings: Large number of byte-compiler warnings eliminated when
building the Hyperbole package. None of these warnings should affect
use of Hyperbole. Most open Hyperbole issues have also been resolved.
*** XEmacs: Removed old XEmacs-compatibility code.
** HYROLO (See "(hyperbole)HyRolo").
*** HyRolo Match Buffer Key Bindings: Improved movement keys:
- {b} Move backward at the same outline level
- {f} Move forward at the same outline level
- {n} Move to the next visible outline heading
- {p} Move to the previous visible outline heading
- {u} Move up a heading level
- {,} Move to the beginning of the current entry
- {.} Move to the end of the current entry
See "(hyperbole)HyRolo Keys".
*** Koutline and Markdown File Support: The `hyrolo-file-list' can now
contain Koutline or Markdown files and will search their outline entries
just like it does for Org and Emacs outline files. See
"(hyperbole)HyRolo Concepts".
*** Koutline Fast Search: Koutlines may now be included in
`hyrolo-file-list' and individual cells extracted properly with any
HyRolo query. Then the interactive commands:
{t} show the top-level matches
{o} show an outline of matches
{s} show/expand current match
{h} hide current match
{f/b/n/p} move to another match
all work on Koutline cells displayed in the match buffer. See
"(hyperbole)HyRolo Concepts".
*** Match Buffer Name Change: Changed match buffer name from "*Hyperbole
Rolo*" to "*HyRolo*".
*** New HyRolo menu items ConsultFind and HelmFind: These appear when you
independently load the @file{consult} or @file{helm-org-rifle} package.
These menu items then use the related interactive search functions to
search over the HyRolo file list.
ConsultFind utilizes `consult-ripgrep' or `consult-grep'. HelmFind uses
the helm-org-rifle package and searches over .org and .otl files
exclusively. See "(hyperbole)ConsultFind".
** IMPLICIT BUTTONS (See "(hyperbole)Implicit Buttons").
*** Action Button Result Display: Action buttons now display in the
minibuffer the result of evaluating any type of action expression,
using Lisp readable values.
*** Compilation and Grep Error Lines: Error lines in the Emacs Regression
Test buffer, *ert*, are now supported, as well as the 'Compiling
<file>', 'Loading <file>' and 'In <function>' lines as well as source
line references from Emacs Lisp native compilation within the
*Async-native-compile-log* buffer.
Added support for ERT "Test <symbol>" lines to jump to the def of the
symbol and for symbol and pathname references from backtraces in ERT
output.
Added jumping to the referenced location from Ruby traceback stack
messages.
*** Emacs Regression Test Runs: New 'hyperbole-run-test-definition' implicit
button type defined in "hypb-ert.el". An Action Key press on the first
line of an ert test def and not on a grouping symbol (like a parenthesis)
nor at the end of a line, evaluates the definition and runs the test;
this ensures that the latest version is always run. An Assist Key press
does likewise but runs the test with edebug, stepping through it.
*** Highlighting of Ibut Names: New `property:ibut-face' used to highlight
any <[name]> prefixing an implicit button. All hproperty functions now
support this face as well as the `hproperty:but-face' used for explicit
buttons.
*** Jump to Lisp Identifier Definition in More Buffers: Lisp identifiers are
now recognized as programming etags in the *Warnings* byte-compilation
buffer and in Flymake log and diagnostics buffers.
*** Info Nodes: Better handling of embedded double quotes and added support
for HTML " quoting.
*** Improved # and Embedded Space Path Handling: If a path exists, don't
treat its # hash marks as section markers, notably for #autosave# files.
Allow for unquoted filenames with spaces in them in ls listings in shell
buffers (assume files are tab-delimited).
*** Ibut/Create Menu Item: Creates a named/labeled implicit button of any
type. Separates the name and the implicit button with " - ".
*** Relative Info Paths: Info files with relative pathnames outside of the
`Info-directory-list' now resolve properly, e.g. "man/hyperbole.info".
*** Path Implicit Buttons: Much improved relative path handling, including
expanding into executable paths when pathname is prefixed by ! or &,
and handling info paths outside `Info-directory-list', like
"man/hyperbole.info".
*** Table of Contents Sections: Hyperbole now recognizes TOCs in any text
derived major mode with the text-toc implicit button type. An Action
Key press on a line with a section name displays the section according
to the Hyperbole referent display setting, typically leaving the TOC
untouched in the selected window. This also works in Internet standard
RFC buffers.
*** Youtube Snippet Links: Compact Action Buttons to play parts or whole
Youtube videos and to search for videos by keyword. See
"hsys-youtube.el".
** KOUTLINER (See "(hyperbole)Koutliner").
*** {M-S-<left>} and {M-S-<right>}: Org compatibility - Add tree promote and
demote commands to these keys (same as existing {M-<left>} and
{M-<right>} keys). See "(hyperbole)Promoting and Demoting".
*** Star Outline Import Indented Headings: Added support for Emacs/Org
star-based headings whose stars do not start at the beginning of a line,
i.e. are indented. See "(hyperbole)Inserting and Importing".
** MENUS (See "(hyperbole)Menus").
*** Minibuffer Menu Changes:
- Reload Menus and Smart Keys: Action Key press on top-level menu prefix
reloads Hyperbole minibuffer menus and Smart Key handlers to reflect
any recent edits.
- Multi-line Menus: When a menu line is too long for the screen, it is
automatically split into multiple lines and aligned by column for
ease of access.
*** Move Prefix Arg Number of Items: {M-b} and {M-f} move backward and
forward by the number of items specified by any given prefix argument,
as do {TAB} and {Shift-TAB}. See "(hyperbole)minibuffer menu".
** PROGRAMMING INTERFACE CHANGES (See "(hyperbole)Embedding Hyperbole").
*** (hypb:devdocs-lookup): Install and load devdocs package and then
call its `devdocs-lookup' function.
*** (hpath:resolve): Add to resolve path variables without doing a path
expand.
*** (hsys-org-meta-return): Centralize sharing of {M-RET} key with Org mode.
*** (hypb:require-package): Add to install a package, if necessary,
and require its library with the same name.
*** (hypb:helm-info): Add to require helm package and call helm-info.
*** (action:help): Allow for Action Button Assist Key :help
functions, even if the action button type is not a Hyperbole type,
i.e. is a regular function.
*** (hproperty:but-clear-all): Clears all colorized Hyperbole button
faces from the current buffer.
(hproperty:but-clear): Renamed from hproperty:but-delete.
*** (hyperbole-update-menus): Can now be called interactively to update
the Hyperbole menubar and minibuffer menus if any edits are made.
*** (hyrolo-consult-grep): Interactively grep or ripgrep the HyRolo file
list, with live in-buffer display using the automatically installed
consult package.
*** (hyrolo-helm-org-rifle): Interactively match to HyRolo file list
entries using the automatically installed helm-org-rifle package.
(hyrolo-helm-org-rifle-directory): Behaves similarly but searches
over `org-directory'.
*** hsys-org-roam.el: This library supports interactively grepping over
org-roam files with live in-buffer display. It uses the automatically
installed consult package when `hsys-org-roam-consult-grep' is invoked.
*** (hattr:list): Now also returns the attributes of an Emacs push-button
using `hattr:emacs-button-attributes', as recognized by
`hattr:emacs-button-is-p'.
*** (hui:ibut-create, ibut:create, ibut:delimit, ibut:operate):
Add interactive, named/labeled implicit button creation. For
`ibut:create', improve doc and add but-sym arg which can supply all
other arguments in its properties.
*** (ibut:label-key-match): Return filtered list of ibut labels.
*** (ibut:label-sort-instances): Sort label key instance numbers.
*** ebut:label-start, ebut:label-end: Renamed from `ebut:start' and
`ebut:end'.
*** (hpath:delimited-possible-path): Added support for HTML "
quoting and embedded double quotes.
*** (hargs:read): Added support for 'i' interactive spec (ignored arg).
*** (set:replace-key-value): Renamed from `set:replace'.
(set:replace): Now replaces a non-keyed old-value with a new value.
(set:replace-member): Added this new function to replace an existing set
member or to add a new one if no matching existing member.
(set:members): Now keeps members in stable order; previously returned in
reverse order.
*** (hycontrol-framemove-*): Add hycontrol-framemove-direction,
hycontrol-framemove-up, hycontrol-framemove-left,
hycontrol-framemove-right, and hycontrol-framemove-down to move among
active frames.
*** (kimport:initialize): Add optional `erase-flag' arg to erase buffer
before importing elements. And use in all kimport commands.
*** (hhist:pop): Renamed from `hhist:remove'.
*** (hypb:activate-interaction-log-mode): Add to configure and enable the
interaction-log package for use with Hyperbole. It displays a
font-locked log of Emacs keys, commands and Hyperbole minibuffer menu
items executed. Useful in demo videos or presentations.
*** (hui:menu-exit-hyperbole): Renamed from `hui:hypb-exit'.
*** (hui:menu-choose): Renamed from `hui:menu-select'.
*** (hyperbole-web-search): Added optional `return-search-expr-flag' to
return search expression rather than doing the search, to build up more
involved search commands.
*** (hypb:replace-match-string): Removed this unused function.
*** (hyrolo-verify, hyrolo-isearch, hyrolo-next-match,
hyrolo-previous-match, hyrolo-isearch-for-regexp): Added support for
use in main HyRolo file, not just the match buffer.
*** (ibut:at-p): Fixed to return nil if name and lbl-key are both nil. Also
added support for <> and {} ibut delimiters.
*** (hyrolo-find-file-noselect-function): Added so can customize low-level
function used to read in each file searched by HyRolo.
*** (hyrolo-previous-match): Changed so this can be used in a predicate when
a match is found.
*** (hyrolo-grep): Added support for `outline-regexp' and `outline-level'
variables from multiple file types.
(hyrolo-mode-outline-level): Added and used in `hyrolo-mode'.
(hyrolo-mode): Set the local value of `outline-level' to
`hyrolo-mode-outline-level' and define that function to support star
outlines and Koutlines. Also, made `hyrolo-entry-regexp' local and set
it to its default value, after which it may be modified.
*** (hyrolo-fgrep-file, hyrolo-grep-file, hyrolo-fgrep, hyrolo-grep,
hyrolo-word): Added optional `headline-only' argument to limit searches
to headlines.
*** (hyrolo-next-regexp-match, hyrolo-next-match-function): Added to allow
for different hyrolo entry matching functions.
*** (smart-push-button): Added and referenced in `hkey-help' to trigger
push-button-specific help output.
** ORG MODE INTEGRATION (See "(hyperbole)Smart Key - Org Mode").
*** Org and Org Roam IDs: New `org-id' implicit button type and
`link-to-org-id-marker' action type that jump to the referent of an Org
ID or Org Roam ID at point. If a marker does not yet exist, there is
the `link-to-org-id' action type. An Action Key drag across windows
ending at an Org ID will create a link button with this last action
type, which will jump to the ID's definition regardless of whether the
link was to the definition or a reference. See "(hyperbole) ibtypes
org-id".
*** Org Code Blocks: On a header :dir directory, the Action Key displays
that directory in dired. The Assist Key anywhere in the header removes
any results for the code block. Smart Keys work the same when on a
#+RESULTS header as when on a code source header. Smart Key tag
lookup now works in Org code blocks. Smart Keys on Org internal
targets now work just as they do on radio button targets.
*** Todo Cycling: An Action Key press on an Org mode todo state keyword,
cycles to the next state. An Assist Key press in the same place cycles
to the next set of states, if any.
*** {C-c /}: The Hyperbole {C-c /} web search binding defers to the org-mode
binding, `org-show-todo-tree', when in Org mode, but uses the improved
Hyperbole command version, `hsys-org-todo-occur', which allows filtering
to spec"ific todo states.
** SMART (ACTION AND ASSIST) KEYS (See "(hyperbole)Smart Keys").
*** Drag Button Referents to Specific Windows: Just as you previously could
drag Dired or Buffer Menu items to display in a specific window, you can
now do the same with Hyperbole Buttons. Action or Assist Key drag from
a Hyperbole button and release in another window where you want the
button's referent (or the result of its action) displayed. If you
release the Smart Key outside of an Emacs window, the referent is
displayed in a new frame. See "(hyperbole)Displaying Items".
Visual pulsing of the source line and the destination buffer highlights
the transfer taking place (hmouse-pulse-flag controls this).
Dragging a button to a modeline splits the window of the modeline and
displays the referent in the leftmost or uppermost of the split windows.
*** Create Implicit Link Buttons: An Assist Mouse Key drag across windows
(when not starting from a draggable item) creates an implicit link
button with an action type determined by the referent at the point of
button release. This parallels the same Action Mouse Key drag which
creates explicit link buttons. See "(hyperbole)creating implicit links".
Previously this drag would swap buffers in windows. Now you must drag
from open space in a modeline of the depress window to the buffer text
in the release window to swap buffers in windows.
*** Hyperbole Symbol Tags: Hyperbole now includes a pre-built TAGS file so
that an Action Key press on any Hyperbole symbol jumps to its definition
without the need for any additional support. This also works on
Hyperbole type names (which have a hidden prefix) in a help buffer where
an Action Key press displays the type definition.
*** Lisp Load, Autoload and Require Expressions: Action Key press on any
named target in such expressions displays the associated library.
*** Lisp Action Button Help: Action Buttons that utilize regular Lisp
functions (rather than Hyperbole Action Types) can now have :help
functions run with a press of the Assist Key on such buttons. See
"(hyperbole)Action Buttons".
*** Smart Dired: Action Key subdirectory selection at point now works on any
dired header line, not just the first one. Use {i} to insert multiple
subdirectories in Dired mode. Smart Key end-of-line behavior is no
longer specified in Dired mode but handled globally for consistency
across modes. See "(hyperbole)Smart Key - Dired Mode".
** TEST CASES (See "${hyperb:dir}/test").
*** Hyperbole Automated Testing: Over 300 automated test cases. Simply run
'make test-all' or 'make test' from the command-line when in the
Hyperbole source directory and you should see all tests pass. If any
fail, you can press the Action Key to see the source of the failure.
Full testing is supported under POSIX systems only. See "Makefile" and
"test/MANIFEST".
*** The Hyperbole team's CI/CD process automatically runs all test cases
against Emacs major versions 27, 28 and 29 and the current master branch
tip whenever a Hyperbole code change is checked in against git.
*** QA: Many quality improvements across Hyperbole and integration with
Emacs updates with backward compatibility from Emacs 27 through Emacs 29
releases.
** WINDOW GRIDS (See "(hyperbole)grid of windows").
*** Grid by File Pattern: Fixed so prompt for a string pattern rather than a
file name and forced use of full pathnames to avoid improper relative
path resolution.
Updated to use prefix arg as grid size or to autosize when not given or
given an invalid value.
See "(hyperbole)hycontrol-windows-grid-by-file-pattern".
===========================================================================
* V8.0.0
===========================================================================
** HYPERBOLE SYSTEM
*** Installation: Hyperbole package installation options are greatly expanded.
Stable or in-development branches may be installed with the Emacs package
manager. The Straight package manager may be used to keep up with
git-based development and submit pull requests. And stable and
in-development tar balls are available for manual installation. See
"(hyperbole)Installation".
*** Global Minor Mode: Hyperbole is now a global minor mode that can be
toggled with {M-x hyperbole-mode RET}, meaning all of its key bindings
can easily be enabled or disabled whenever desired. Your init file needs
to have (hyperbole-mode 1) in it instead of (require 'hyperbole) or
Hyperbole will not be enabled upon startup. See "(hyperbole)Usage".
Modeline Indicator: In the modeline where minor modes are shown,
"Hypb" now appears whenever Hyperbole is active.
Hooks: When hyperbole-mode is enabled, hyperbole-mode-hook and
hyperbole-mode-on-hook are run. When hyperbole-mode is disabled,
hyperbole-mode-hook and hyperbole-mode-off-hook are run.
Lexical Binding: All code is now largely lexically bound, improving
quality and debugability.
** ORG MODE (See "hui-mouse.el#defun smart-org").
*** M-RET: Reworked M-RET interface so can control how much or little of
Hyperbole works in Org mode when Hyperbole minor mode is enabled.
See "(hyperbole)enable org-mode support" and "hsys-org.el".
*** hsys-org-enable-smart-keys: New customization to replace
`inhibit-hsys-org'. This applies only in Org major/minor modes when
hyperbole-mode is active. t means enable Smart Key support
everywhere. The symbol, buttons, is the default; it means the Smart
Keys are active only when point is within a Hyperbole button. A nil
value means no Smart Key support so {M-RET} behaves just as it does
normally in Org mode. See "(hyperbole)Org-mode". Use {C-h h c o}
to customize this setting.
This table summarizes the operation:
|--------------+-------------------+------------------+----------+------------------|
| Set To | Smart Key Context | Hyperbole Button | Org Link | Fallback Command |
|--------------+-------------------+------------------+----------+------------------|
| buttons | Ignore | Activate | Activate | org-meta-return |
| nil | Ignore | Ignore | Ignore | org-meta-return |
| t | Activate | Activate | Activate | None |
|--------------+-------------------+------------------+----------+------------------|
** EASILY CREATE YOUR OWN BUTTON TYPES
*** Simple Action Link Button Type Creation: `defal' is a new,
easy-to-use construct that generates new action button types from
a type name and a single simple format expression, allowing
non-programmers to create their own implicit action button link
types that execute key series, display URLs, display the contents
of pathnames or invoke functions. See "(hyperbole)Action Button
Link Types" or the "DEMO#Defining New Action Button Types"
section.
*** Easy Implicit Link Button Type Creation: `defil' is a new
construct for those familiar with regular expressions but not
much Emacs Lisp. This creates more flexible implicit button
types than `defal' where the delimiters and text substitution
can be specified with regular expressions. Actions are limited
to executing key series, displaying URLs, displaying the
contents of pathnames or invoking functions. See
"(hyperbole)Implicit Button Link Types".
Elisp programmers should use the existing `defib' macro for full
flexibility in implicit button type creation. See "hibtypes.el"
for examples and "(hyperbole)Programmatic Implicit Button Types"
for documentation.
** TEST CASES
*** Hyperbole Automated Testing: Extensive quality improvements throughout
Hyperbole thanks in part to over 230 test cases now included in the
test/ subdirectory. Simply run 'make test-all' or 'make test' from the
command-line when in the Hyperbole source directory and you should see
all tests pass. If any fail, you can press the Action Key to see the
source of the failure. Full testing is supported under POSIX systems
only. See "Makefile" and "test/MANIFEST".
*** Implicit Button Types to Run Tests: The file "hypb-ert.el" contains two
action link types:
hyperbole-run-test - run a single Hyperbole test by name
hyperbole-run-tests - run one more tests matching a pattern
Example uses:
Run the test hbut-defal-url
<hyperbole-run-test hbut-defal-url>
Run the tests specified by the test selector hbut-defal
<hyperbole-run-tests hbut-defal>
Run all tests
<hyperbole-run-tests t>
*** Installation Testing: install-test/local-install-test.sh automatically
installs Hyperbole for testing from one or more of its releases or
development branches. See "Makefile" and "install-test/MANIFEST".
** HYROLO (See "(hyperbole)HyRolo").
*** Faster searching within HyRolo match buffer: After performing a HyRolo
search with point in the match buffer, if you want different results,
you can quickly do a new regular expression HyRolo search with {r} or
a string/logical search with {C-u r}. This key had moved to previous
matches but that is already bound to {Shift-TAB} and {M-TAB}.
*** Auto-Expansion of Entries: If an entry is collapsed/hidden, moving to
any hidden part auto-expands it and then re-collapses it when point is
moved to another entry (just like isearch). A side-effect of this is
that the {h} hide entry subtree command now moves to the beginning of
the entry.
*** Logical Regular Expression Searches: Expanded logical searches to
allow for regexp-based searches using logical operations prefixed with
'r-', so a query might be: (r-and regex1 (r-not regex2)).
*** Separate Last String and Regular Expression Searches: Removed conflict
between different types of searches when choosing to search again for
a prior match.
*** hyrolo-find-file: New command that selects and edits a file in
`hyrolo-file-list', defaulting to the first listed file when not given
a prefix arg. Available in the minibuffer menu as Rolo/File and the
pulldown menu as Rolo/Find-HyRolo-File.
*** Sorting Entries Rewritten: {C-h h r o} re-ordering HyRolo entries has
been rewritten for compatibility and improved debugging with the latest
Emacs releases.
*** hyrolo-highlight-face: Now uses the Emacs 'match' face by default.
*** Under MS Windows, the default HyRolo file is now "~/.rolo.otl" like
all other operating systems, instead of "~/_rolo.otl". Any older file
name will be relocated to the newer name.
** KOUTLINER (See "(hyperbole)Koutliner").
*** Export Koutlines to Collapsible Web Pages: {C-h h k f d} or
{M-x kexport:display RET} command creates and displays a web-based
expandable/collapsible outline from the Koutline in the current buffer.
See "(hyperbole)Exporting" and the new Koutliner Format submenu.
*** Org File Importation: Org files may now be imported to a Koutline using
{M-x kimport:file RET}.
*** Org Table Support: Org table editing now automatically works in the
Koutliner via Org table minor mode. Use {M-x orgtbl-mode RET} to
toggle this on and off. A press of the Action Key on a | symbol,
also toggles this minor mode on or off. See "(Org)Tables" for details.
Use a prefix arg with {TAB} to promote/demote Koutline trees when in
a table since {TAB} moves between fields within a table.
*** New Tree Movement Commands: Like Org mode, {[M-down]} and {[M-up]} move
the current tree past or before other trees at the same level. With a
prefix argument, move past that many trees.
*** New Tree Promotion/Demotion Keys: Tree promotion and demotion keys now
match many of the defaults in Org mode and Outline mode, plus some
easier to type ones. The tables below summarize which keys work whether
inside an Org table or outside. See "(hyperbole)Promoting and Demoting".
|----------------------------+-----------------------------|
| Promotion Inside Org Table | Demotion Inside Org Table |
|----------------------------+-----------------------------|
| M-0 Shift-TAB or M-0 M-TAB | M-0 TAB |
| C-c C-, | C-c C-. |
| C-c C-< | C-c C-> |
|----------------------------+-----------------------------|
|-----------------------------+----------------------------|
| Promotion Outside Org Table | Demotion Outside Org Table |
|-----------------------------+----------------------------|
| Shift-TAB or M-TAB | TAB |
| M-left | M-right |
| C-c C-, | C-c C-. |
| C-c C-< | C-c C-> |
|-----------------------------+----------------------------|
*** New Mail Tree Key Binding: The `kotl-mode:mail-tree' command that
extracts the current view of a Koutline in text-only format and
creates an outgoing email message with it, has moved from {C-c @}
to {C-c C-@} to prevent conflict with the global hycontrol-window-grid
command bound to {C-c @}.
*** New Copy Command: The new command, `kotl-mode:copy-tree-or-region-to-buffer',
bound to {C-c M-c} copies a Koutline tree or the active region
to a specified buffer. Prompts dictate whether invisible text
is included or not. This allows copying parts of Koutlines
directly into other buffers without having to copy to a
mail/message buffer first.
*** Klink Copy: When `transient-mark-mode' is enabled and there is no active region:
within a link to a Koutline cell (klink), {M-w} copies the klink; then
{C-y} yanks it into any buffer you desire.
{M-w} outside of a klink instead copies a reference to the current
Koutline cell.
{C-x r s} prompts for an Emacs register and saves either the current
klink or the current cell reference to the register; {C-x r i} with the
same register then inserts at point the saved Koutline reference.
The new commands that you can bind to your own keys for copying klink
references to the current cell to the kill ring and to registers are:
kotl-mode:copy-absolute-klink-to-kill-ring
kotl-mode:copy-relative-klink-to-kill-ring
kotl-mode:copy-absolute-klink-to-register
kotl-mode:copy-relative-klink-to-register
*** Klinks Ignored Outside Comments in Programming Language Modes: In
previous Hyperbole versions, this was true for C-based language
modes. Now it is true for any programming mode descended from
`prog-mode'.
*** Prevent Movement Outside Editable Cell Bounds: Add
kotl-mode:pre-self-insert-command as a pre-command-hook
to prevent Koutline editing with point in an invalid location,
after a mouse-set-point outside of editable bounds.
*** {C-h h k e} (kotl-mode:example): Update to allow for an optional
directory or absolute file path. Prompt for the path when interactive.
Given a prefix argument, archive any existing file and start with a
fresh EXAMPLE.kotl file for editing. Programmatically, give a 2nd
arg of t to force archiving of any existing file and starting with
a fresh EXAMPLE.kotl file.
*** Koutlines have a hidden top-level root cell 0 that allows referring
to the whole outline as a tree. Now attributes of this cell can be
set, retrieved or removed like any other cell.
{C-c h} prompts for a kcell id and displays its attributes.
{C-u C-c h} prompts for a kcell id and displays the attributes for it
and its subtree; use 0 as the kcell id to see attributes for all visible
cells in the outline.
{C-c C-i} sets an attribute of the cell at point.
{C-u C-c C-i} removes an attribute of the cell at point.
{C-0 C-c C-i} sets an attribute of the invisible 0 root cell.
{C--1 C-c C-i} removes an attribute of the invisible 0 root cell.
*** Modes to Ignore Klinks: C-style languages use <includes> that can be
mistaken for klinks. New customizations 'klink:ignore-modes' and
'klink:c-style-modes' set the modes where klink matches are ignored.
*** Uncommented Klinks in Lisp Interaction and Markup Buffers: Klinks are
now recognized in the *scratch* buffer and 'hui-select-markup-mode'
buffers without the need to be within comments. This is more natural as
there is no expectation that everything in the *scratch* buffer is valid
Lisp.
** MENUS
*** Minibuffer Menu Changes:
- Items Activated by First Capital Letter: Used to be by the first
letter. This allows more flexibility in naming, e.g.
where two items start with the same first letter.
- {X} exits Hyperbole mode: This disables the Hyperbole minor mode
completely and exits from the menu. {C-h h} re-enables the
global minor mode and display the top-level Hyperbole menu.
- Menu Selection a Single Command: Set 'this-command' and command
keys to be the full key sequence for a Hyperbole minibuffer menu
command. This ensures a single command appears in history for
clean logging of menu key sequences.
*** Minibuffer and Pulldown Menu Changes:
- Find/Web/Jump: Use the Emacs webjump library to select a URL by name
and jump to it.
- Koutliner Formatting Menus: Full set of commands to import
text and outline files to Koutlines and to export Koutlines
to HTML for web viewing. See "(hyperbole)Inserting and Importing"
and "(hyperbole)Exporting".
- Button Modify Commands Removed: Use the Edit commands instead.
This applies to the pull-down menu as well.
** SMART (ACTION AND ASSIST) KEYS (See "(hyperbole)Smart Keys").
*** Explicit buttons may be created in any kind of temporary buffer
without an attached file, similar to what already existed for mail
message buffers.
*** 'ls' and 'grep' Directory Changes: 'ls' listings are now recognized
properly, prepending the preceding directory to each entry for viewing.
Similarly, if a 'cd' or 'pushd' command is issued prior to a 'grep -n'
or 'ripgrep' command, Hyperbole will prepend that directory to the grep
output before jumping to the resultant path.
*** Git Log Grep: New commands, 'hypb:fgrep-git-log' and 'hypb:grep-git-log',
allow f/grepping over repo changesets and listing associated commit log
messages. The Action Key on any resulting log entry displays the commit
changeset.
*** Pathname Implicit Buttons: Much improved pathname handling including
multiple variables per path, embedded . or .. within paths, better
recognition of semicolon separated pathnames in Windows PATH variable.
Variable substitutions are now made with fixed case, so that the
case of a value with both upper and lower case characters is
never changed, for example a value of ${HOME}.
Generalized Anchored Pathnames: "pathname#anchor" now works in
programming modes as well as text and outlining modes where anchors
are prefixed with the comment character in each mode or a # symbol.
PATH-style Variable Support: An Action Key press on a defined PATH-style
variable name, e.g. MANPATH, will prompt with completion for one of the
paths and will then display that. If it is the colon or semicolon-
separated string of paths value from a PATH-style variable, the path at
point is displayed; empty paths, e.g. :: represents the current directory,
’.’. Must have at least four paths within the variable value for this
to work.
file:// URLs are now resolved properly.
*** Any Lisp or environment variable that stores a directory or set of
directories may be prepended to any "grep -n" output line with the form
"${var-name}/" and the Action Key will recognize the directory and display
the appropriate line.
*** Treat kbd Strings as Key Series Buttons: An Action Key press within
the string of (kbd "string") issues the keys in string as if they were
pressed individually, i.e. the same as the key series, {string}.
*** Mail Address Activation Everywhere: Email addresses are recognized as
implicit buttons in major modes descended from `mail-address-mode-list'.
If you set that to nil, however, they will be recognized in all major
modes.
*** Magit Mode Support: Just click or press the Action Key somewhere and it
will typically display what you want. Extensive Action Key support in
Magit modes for cycling through display views and displaying items.
Action Mouse clicks on the modeline cycles display of commits/diffs in
a buffer. In Magit Log and Blame listing modes, the Action Key
displays the associated commit or file line. The Action Key also
handles single line log entries that begin with the word 'commit' ,
displaying their commits even from shell and compilation buffers.
*** Debugger Source: In Python tracebacks, may be on a line just below the
source reference line so if not on a Hyperbole button, move back a line
before checking.
*** Todotxt Mode Support: Smart key support for the todotxt mode
https://github.com/rpdillon/todotxt.el.
*** UNIX Shell Errors: Jump to associated source line from a shell error of the
form: "<pathname>: line <num>: ".
*** Internet RFC Links (e.g. RFC-822): Change to using http to retrieve RFCs
instead of ftp since this is disabled in many environments. Always display
with Emacs' web browser rather than externally.
*** Implicit Button Types Reprioritization: Modified "hibtypes.el" so if
evaluate: (symset:clear 'ibtypes) and then reload hibtypes.{el,elc},
the priority order of all implicit button types is reset.
** CUSTOMIZATION
*** Customizable Display Program File Mappings:
The variables:
hpath:internal-display-alist
hpath:external-display-alist-macos
hpath:external-display-alist-mswindows
hpath:external-display-alist-x)
are all customizable and their default values utilize the per operating
system generic 'open' commands based on file suffix associations (for file
types not handled by Emacs).
The new customizable variable, `hpath:external-file-suffixes', holds a regular
expression of operating system independent file suffixes to open outside Emacs
with the Action Key when not handled by `hpath:native-image-suffixes'.
** PROGRAMMING
*** With the Hyperbole menu Cust/Debug-Toggle enabled, the messages printed
for each Smart Key press now include the action type and its arguments
for improved debugging.
*** Edebuggable Hyperbole Types: `defib' and `defact' type definitions
are now interactively debuggable via edebug-defun {C-M-x}.
*** ebut:program: Programmatically create an explicit Hyperbole button at
point from LABEL, ACTYPE (action type), and optional ARGS for actype.
*** gbut:ebut-program: Programmatically add global explicit buttons at the
end of the personal button file.
*** kbd-key implicit button type: Interactive creation now allows for
a full key series, not just a single key binding.
*** kbd-key:is-p: Added this new predicate to test whether point is within
a brace-delimited key series.
*** kbd-key:execute: Added to programmatically or interactively execute a
non-normalized key series stored in a string.
*** hypb:def-to-buffer: Quick copying of program definitions and insertion
at the start of another buffer. Can be bound and used in key series.
*** smart-lisp-find-tag: New function that automatically finds tags tables
and jumps to Emacs Lisp definitions. It can be used in any type
of file as an action button, e.g. <smart-lisp-find-tag "ibut:at-p">.
*** ibut:at-p: Trigger an error if any implicit button type predicate
permanently moves point to simplify debugging such predicates.
*** hypb:string-count-matches: Count regexp matches in a string.
** ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
*** After installing the ace-window package and loading Hyperbole, execute
(hkey-ace-window-setup "\M-o") to enable the following capabilities:
*** Fast Window Links: The hkey-window-link command bound to {M-o w}
rapidly creates a link button at point in the selected window,
linking to point in the window chosen when prompted.
See "DEMO#Displaying Items via Drags and Moving Buffers".
*** Throw A Region Elsewhere Within the Same Buffer: {M-o t <window-id>}
when used with a selected region can now throw to the source buffer
as long as point is outside the selected region in the target window.
===========================================================================
* V7.1.3
===========================================================================
SMART (ACTION AND ASSIST) KEYS
- Global Org Link Activation: The Action Key now activates Org links in
non-Org buffers if 'inhibit-hsys-org' is nil (the default). The Assist
Key shows help.
- Org Agenda Item Display: The Action Key displays the Org node
associated with Agenda items such as TODOs in another window. The
Assist Key shows help.
- Org Mode: Raised to near top priority in implicit button types so that
pathnames, URLs, etc. within Org links are handled by Org rather than
Hyperbole.
- Smart Dired Sidebar: Smart Key support for the dired-sidebar
package. See "(hyperbole)Smart Key - Dired Sidebar Mode".
- Helm Mode: The Smart Keys do all sorts of things in helm completion buffers
and the associated minibuffer. See "(hyperbole)Smart Key - Helm Mode".
- Magit Mode: Action Key expands/collapses like {TAB} and Assist Key
jumps to items like {RET}. See "(hyperbole)Smart Key - Magit Mode".
BUTTON TYPES
- {Key Series} Button Support for Helm and Counsel: Key series buttons
with M-x commands now work properly when counsel-mode or helm-mode are
enabled and M-x is rebound.
- Markdown In-file Links: With point on the link title, in-file links are
now activated properly (previously point had to be on the link itself).
- Git#directory Buttons: New flag, hibtypes-git-use-magit-flag, which if
set to t and Magit is available, then when activating a git directory
button, such as git#/hyperbole, use Magit rather than Dired.
- Explicit Buttons Work Immediately: Previously you had to save the buffer
in which you created an explicit button before it would work. Now they
work immediately after creation.
DOCUMENTATION
- Helm Mode: Added Hyperbole Manual section, "Smart Key - Helm Mode"
that works on helm completions. See "(hyperbole)Smart Key -
Helm Mode".
- Hyperbole Slides: Slides used in a talk by the author on the history
and capabilities of Hyperbole, see "HY-TALK/HY-TALK.org".
- Magit Mode: Added Hyperbole Manual section, "Smart Key - Magit Mode"
that expands/collapses/jumps to Magit items. See "(hyperbole)Smart Key -
Magit Mode".
===========================================================================
* V7.1.2
===========================================================================
BUTTON TYPES
- Link Creation via Drag: Automatic link referent detection has been
expanded. You can now drag the Smart Mouse Key across windows or use
'hkey-operate' to create an explicit link button to an Emacs
Bookmark or to a Texinfo Node.
- link-to-texinfo-node Action Type: Now takes a first file parameter,
rather than working only on the current buffer.
KOUTLINER
- Visual Command Support: Use of these additional Emacs commands:
beginning-of-visual-line, end-of-visual-line, and kill-visual-line.
MENUS
- Global Key Bindings for Hyperbole Menu Items: Use
{M-x hyperbole-set-key RET} to create a shorter global key binding
to any Hyperbole minibuffer item.
- Gbut/Create: When invoked with a prefix argument, will create a
global implicit button rather than an explicit button. Simple provide
a name/label and the text of the implicit button including delimiters.
- Gbut/Delete: Added to delete explicit or implicit global buttons.
- Gbut/Modify: The name/label and the text (and thus the action) of global
implicit buttons may now be modified. Hyperbole automatically determines
whether a button is explicit or implicit from the button name selected.
MOUSE
- Click Emacs Buttons with Left Mouse Button: When using mouse-1
to follow Emacs buttons/links, Emacs actually uses the binding
of mouse-2. With unshifted Hyperbole mouse keys, this mouse-2
binding is incompatible as it is the Action Key. This release
resolves this problem and allows either mouse-1 or mouse-2 to be
used to click on native Emacs buttons.
- Drag and Drop Region with Left Mouse Button: When
'mouse-drag-and-drop-region' is non-nil and a region is active,
Hyperbole now properly supports using mouse-1 to visually drag from
within the region and drop the text somewhere else. Then click the
left mouse button again to de-activate the dropped region before
typing.
===========================================================================
* V7.1.1
===========================================================================
DEMO
- Global Buttons: Added a new example of a labeled global implicit button
displaying a todo file maintained in Koutliner format. See
"DEMO#Global Buttons".
- Within one Emacs session, invoking the DEMO with {C-h h d d} now leaves
point where it was so you can continue working your way through it.
- You can now move between matching < and > as well as { and } delimiter
pairs with {C-M-n} and {C-M-p}.
BUTTON TYPES
- Gbut/Rename: Added renaming of global explicit and named labeled
buttons.
- {kbd-key} Key Series: Greatly expanded the keys handled by
brace-delimited implicit key series buttons. Added support for
<TAB>, <BS>, C-M-, non-ASCII CONTROL and META key codes, keypad
keys, function keys, and these modifier keys: CONTROL, ALT,
HYPER, META, SUPER and SHIFT (when whitespace separated).
- Action Implicit Buttons: May now start with Lisp special forms like
'progn' and 'or'.
- Longer Button Labels: The default max length of a Hyperbole button
label has been increased from 100 to 200 characters. The variable
hbut:max-len controls this. If you locally set this to 0 in any
new button type definition, then for that type of button, there
will be no maximum limit. Since Action Implicit Buttons can be
a series of Lisp calls, they are now unlimited in length.
===========================================================================
* V7.1.0
===========================================================================
BUTTON TYPES
- In-buffer Labels: Fixed a number of in-buffer text handling issues with
the creation of explicit buttons, maximizing reuse of existing text in
labels.
- link-to-file Action Type: Extended to allow file path to include either
:line-num:column-num or just :line-num at the end (translated to character
location within the button).
DOCUMENTATION
- Bookmark Mode: Added Hyperbole Manual section, "Smart Key - Bookmark Mode"
that allows linking to Emacs Bookmarks. See "(hyperbole)Smart Key -
Bookmark Mode".
MENUS
- Activate Any Labeled Buffer Button: Hyperbole's top-level menu 'Act'
command either activates any button at point or prompts for the choice of
any labeled explicit or implicit button within the buffer to activate.
The pulldown menu item, Activate-Button-in-Buffer, behaves the same.
- Org-mode in Q&A Appendix: Rewrote this section to account for improved
integration.
===========================================================================
* V7.0.9
===========================================================================
Many issues were resolved in this test version as documented in "Changes".
Only new features are documented here.
ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
- After installing the ace-window package and loading Hyperbole, execute
(hkey-ace-window-setup "\M-o") to enable the following capabilities:
- Region Throws: The hkey-throw command bound to {M-o t} now throws the
active (highlighted) region, if any, into the target window's buffer,
rather than replacing its buffer with the source window buffer. If
you don't use region highlighting, i.e. transient-mark-mode, then use
{C-u M-o t} for the same effect. The buffer in the target window
must differ from the one in the source window. With no region
active, this command still throws the source buffer to the target
window. See "DEMO#Displaying Items via Drags and Moving Buffers".
SMART (ACTION AND ASSIST) KEYS
- Modeline Drag Window Resizing: Smart Key window resizing now provides
live feedback during the drag.
- Bottommost Modeline Frame Moving: After adding a 'drag-with-mode-line'
frame parameter with a value of t, a drag of any of its bottommost
modelines with either Smart Mouse Key repositions the frame on screen.
See "(hyperbole)Moving Frames" for information on how to configure this
feature.
CUSTOMIZATION
- hproperty:flash-face: Face used when flashing a button; now customizable.
- hproperty:highlight-face: Face used to highlight a line; now customizable.
- inhibit-hsys-org: See ORG MODE section below.
GLOSSARY
- Hlink Definitions: Added Action Button, Elink, Ilink, Glink definitions.
HYCONTROL
- Windows Grid by File Pattern: {C--1 C-c @} prompts for a glob-type file
pattern, finds all the matching files and then displays them in an auto-sized
windows grid based on the number of files.
- Autosize Windows Grid of Marked Items: When in a Dired, Buffer Menu or IBuffer
buffer and items are marked, {@} will display them in an auto-sized window grid
rather than prompting for a size.
- Buffer/Window Swapping: Improved {~} so current buffer remains the same but
the selected window changes. Also made frame buffer swapping work anytime
there are two or more frames regardless of how many windows in each. See
"DEMO#Swapping Buffers".
- HyControl Now Accepts Negative Prefix Args: If the minus key is pressed when
HyControl is invoked or after any other prefix arg command, it will invert the
current prefix arg value (or when zero, set the prefix arg to -1).
HYROLO
- Hyrolo Add: Fixed new entry addition to add in sorted order and make logic
operators perform properly, after a bug in level calculation had been
introduced.
IMPLICIT BUTTONS
- Double Quoting Key Series: Key series delimited by {} may now be in double
quotes, e.g. "{C-x o}".
- Windows to Posix Paths: Much improved conversion of MSWindows UNC paths to
existing Posix mount points when running Emacs under Windows Subsystem for
Linux. See
- Flashing Implicit Buttons: More types of implicit buttons now flash when
activated.
- Improved Grep Output Parsing: Recognizes file names with spaces followed by
the null (^@, ASCII 0) character.
- Texinfo @-Quoted Path Variables: Hyperbole now can resolve paths as
complicated as this: @file{$@{hyperb:dir@}/DEMO#POSIX and MSWindows Paths}
in Texinfo files if the Action Key is pressed on the / or after, i.e. after
the variable name.
KEYS
- Deleted C-c C-r Global Binding: Removed {C-c C-r} key binding for explicit
button renaming due to conflicts with some major modes
ORG MODE
- Implicit Button Support: Org-mode's local binding of {M-RET} by default
now activates Hyperbole implicit buttons when within them.
- inhibit-hsys-org: New customization that when set non-nil disables
all Smart Key support in any Org major or minor mode.
- hsys-org-hbut-activate-p: Added to org-metareturn-hook so local binding
of {M-RET} in org-mode activates Hyperbole buttons when point is over
them. (It doesn't run the full set of Action Key actions).
PROGRAMMING
- Auto Imenu Reindexing: If using Emacs imenu package, the Action Key
will look up in-buffer identifier references with imenu. If imenu's
index is rendered invalid due to large changes in a buffer, Hyperbole
will now automatically rebuild the index to have correct pointers.
(Does not require use of the imenu-auto-rescan setting.
- hypb:mark-object: Gives Hyperbole-specific strings and symbols
a hyperbole property that distinguishes them from other objects.
- hypb:object-p: Tests whether has the hyperbole property. This is useful
in hpath:relative-to and hpath:absolute-to where any string with a
hyperbole property is ignored as a potential path. For example, this
prevents removal of trailing whitespace from normalized key series.
- hbut:act: Hyperbole button parameter is now optional and defaults to
the located button, the symbol, 'hbut:current.
- ibtypes tag lookup: Implicit button type names such as ibtypes::grep-msg
are now properly found in tags tables using their defib names
(e.g. grep-msg).
- hmouse-drag-p: tests whether absolute Smart Mouse Key depress and
release positions differ (relative to display/screen coordinates).
- hycontrol-quit: Unified the two Hycontrol mode quit commands into this one.
hycontrol-abort: Renamed from hycontrol-abort-mode.
- hyperb:autoloads-exist-p
hyperb:maybe-generate-autoloads
hyperb:generate-autoloads: Added and called from hyperb:init when
initializing Hyperbole to generate auto-autoload files when
running from a non-packaged source download of Hyperbole.
===========================================================================
* V7.0.8
===========================================================================
BUTTONS
- Action Buttons: A new, universal syntax for creating implicit buttons
that execute any existing action types or Elisp functions. Such
buttons are delimited by angle brackets, < >, and come in three types:
action type invocations, function calls and variable displays. See
"(hyperbole)Action Buttons" for examples and details on this exciting
new capability.
- Labeled Implicit Buttons: Optional <[labels]> that precede implicit
buttons. This enables implicit buttons to be activated by name when
in the current buffer or anywhere when added to the global buttons
file (personal button file).
- Link to Buttons: New implicit button types that link to buttons based
on their categories and labels:
In Buffer Syntax Implicit Button Type
===========================================================================
<elink: explicit button label to link to: optional ebut file> link-to-ebut
<glink: global button label to link to> link-to-gbut
<ilink: implicit button label to link to: optional ibut file> link-to-ibut
- Other New Implicit Button Types:
debugger-source: Jump to the source of errors from the Python pytype package
ipython-stack-frame: Jump to the source of ipython stack traces and exceptions
- Other New Action Types:
link-to-bookmark: Display an Emacs bookmark
- Much Faster Implicit Buttons: Major speedup in implicit button identification
and activation even with the new generalized Action implicit button type
syntax, due to internal optimizations.
- Pathname Flashing: Pathname implicit buttons now flash when activated.
- Pathname References: Pathname implicit buttons may contain both link anchors
and line and column numbers. Format is:
"<path>[#<link-anchor>]:<line-num>[:<col-num>]"
- Shell Script Link Anchors: Link anchors now work for shell script editing modes
as well using comment lines as the anchors, e.g. "myscript.sh#Env Variables".
- Dir Variable Separators: Variables in paths no longer require a trailing directory
separator. Both of these are live Hyperbole paths:
"${hyperb:dir}DEMO#Smart Mouse Keys"
"${hyperb:dir}/DEMO#Smart Mouse Keys"
- Jump Thing: Added xml-mode support for pressing the Action Key when on a start or
end tag pair to select the whole region between them. {C-c .} also moves between
the start and matching end tag. See "(hyperbole)Smart Key Thing Selection".
DOCUMENTATION
- DEMO: New sections on Button Files and Global Buttons.
- Action Types: link-to-gbut, link-to-ibut - Added.
- hpath:native-image-suffixes: documented this setting for controlling
image types that Hyperbole displays within Emacs.
- Implicit Button Types: Split off type descriptions to this new
subsection and added these types: ripgrep-msg, ipython-stack-frame,
ilink (link to implicit button), glink (link to global button), and
elink (link to explicit button).
- DEMO (Action Buttons): Added description and examples.
- Path Variables: Better documented how these are handled.
- Hyperbole Manual, DEMO (Implicit Buttons): Added description and
example of implicit button labels.
- Glossary: Updated Implicit Button and Global Button entries with
changes.
- Installation: All new manual section on multiple ways to install Hyperbole.
KOUTLINER
- When 'c' (clip to lines per cell) is omitted from a viewspec, clipping
now changes to whatever the default number of lines per cell is
(typically, unlimited). The same goes for the 'l' spec (limit display
to a certain level of cells).
MENUS
- Pulldown Menus: Implicit-Button/Label: Added to add a label.
Implicit-Button/Rename - Added to rename the label
of an implicit button.
- Minibuffer Menus: hui-mini.el (hui:menus): Added Ibut/Label and
Ibut/Rename.
ORG MODE
- Radio Targets and Links: Smart Keys now handle these.
- Links: Smart Keys handle both internal and external Org mode links.
PROGRAMMING
- ibut:at-type-p: Added to test if point is on a specific type of
implicit button.
- hbut:key, ebut:key, ibut:key, hbut:rename, hui:hbut-rename,
hui:hbut-operate: Added to allow renaming of any type of labeled
Hyperbole button.
- hypb:region-with-text-property-value: Added and used in hysy-org.el.
- hsys-org-mode-function, hsys-org-mode-p: Added to determine when
hsys-org actions are activated.
- ebut:key-src-set-buffer, hbut:key-src-set-buffer, hbut:key-list,
hbut:ebut-key-list, hbut:ibut-key-list, hbut:label-list): Added
to allow selection of labeled Hyperbole buttons in current buffer by
name.
- gbut:get, hbut:map, ibut:label-map, ibut:key-src, ibut:key-to-label,
ibut:label-to-key, hui:ebut-act, ibut:summarize, ibut:label-start,
ibut:label-end, ibut:label-p, ibut:get, hui:ibut-label-create,
hui:ibut-rename, hui:ibut-message, ibut:alist, ibut:list, ibut:map,
ibut:next-occurrence, ibut:label-regexp, gbut:ibut-key-list, ebut:to,
gbut:to, ibut:to, ibut:label-separator, hbut:label-regexp,
ibut:rename, hbut:get: Added to support implicit button labels and
links to buttons.
hbut:label-p: Updated to handle implicit button labels.
ibut:label-separator-regexp, hbut:outside-comment-p: Added.
- elink, elink:start, elink:end: Added for in-buffer links to explicit buttons.
glink, glink:start, glink:end: Added for in-buffer links to global buttons.
ilink, ilink:start, ilink:end: Added for in-buffer links to implicit buttons.
- hsys-org-set-ibut-label: Added and used in org-mode ibtype.
org-mode, hsys-org-at-block-start-p: Added Action Key activation of
Org blocks when on 1st line of def.
SMART (ACTION AND ASSIST) KEYS
- Emacs Bookmark Menu Mode: Jump to the bookmark at point.
- hpath:find-program: Changed to prioritize hpath:native-image-suffixes
over hpath:internal-display-alist over hpath:external-display-alist-macos
instead of the reverse. This prevents external viewers from being
used when internal viewers are also in effect.
===========================================================================
* V7.0.3
===========================================================================
ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching
- After installing the ace-window package and loading Hyperbole, execute
(hkey-ace-window-setup "\M-o") to enable the following capabilities:
- Selected Window Buffer Replace: Added the ability to 'replace' the
selected window's buffer with the buffer of another window. Use
{M-o r <window-id>}. To swap the buffers between the same two windows,
use {M-o m <window-id>. See "(hyperbole)Keyboard Drags" for setup and
use instructions.
- New Frame Commands: Any of these M-o commands that involve two windows
can use a new frame as the target window by using a <window-id> of 'z'.
So, {M-o t z} throws the current buffer to a new frame with a single
window displaying that buffer. The new frame will be the same size as
the prior frame to match the behavior of HyControl.
- Integrated Ace Window commands with Smart Key Drags and added commands
for use with the mouse that select Ace Window source and target windows
by clicking with the mouse: hmouse-click-to-drag,
hmouse-click-to-drag-stay, hmouse-click-to-drag-to,
hmouse-click-to-replace, hmouse-click-to-swap, hmouse-click-to-throw.
- {M-o i <window-id>} is now for use only when on a listing item such as
in Dired or Buffer Menu. It no longer creates Hyperbole buttons in
non-item areas to avoid confusion. Now it will just trigger an error
if not on a listing item.
SMART (ACTION AND ASSIST) KEYS
- MSWindows Paths: Hyperbole now recognizes typical MSWindows paths (both
local and remote shares) and can convert an in-buffer path between POSIX
and MSWindows formats multiple times, even paths involving mount points.
See "DEMO#POSIX and MSWindows Paths".
MSWindows paths may be used within links and implicit path
buttons just like POSIX paths, whether running Emacs under a POSIX
system or MSWindows. If under POSIX, a remote MSWindows path must be
accessed through a mount point to the network share. Hyperbole caches
such mount points when it is loaded. Use {M-x
hpath:cache-mswindows-mount-points RET} to update them if more mounts
are made later. See also the NEW COMMANDS section herein for how to
convert a path between POSIX and MSWindows formats.
- GitLab and Github Links: Added Gitlab implicit links with equivalent
functionality to those of Github. Added "people" reference support to
list people who are part of a formal organization as well as a "staff"
alias. Added "contributors" reference support to list project
contributors as well. Improved Github implicit issue links: gh#gh-34
and gh#issue/34 now properly reference an issue in the current project.
- Ripgrep: Added new ripgrep-msg implicit button type which jumps
to the source referenced by ripgrep (rg) output. By default,
ripgrep outputs pathnames only once before all matching lines
within that path. Ripgrep may also be used with the Hyperbole
`hypb:rgrep' command by setting 'hypb:rgrep-command'. See
"https://github.com/BurntSushi/ripgrep".
- Markdown Mode: Smart Keys now support Markdown internal file link
references and navigation.
- Org Mode: When in an *Org Help* buffer, the Smart Keys now defer to
org-mode to handle jumps to its own locations for compatibility.
Similarly, in org-mode buffers when not on an Org link or heading,
and the {M-RET} Action Key is pressed, Hyperbole defers to Org's
org-meta-return command. Hyperbole bindings of {C-c RET}, {C-c .}
and {C-c @} also defer to org-mode.
- Drag-based Kill, Copy and Yank: Added support for dragging across
frames.
- Python Identifiers: If a Jedi server is running and the Action Key is
pressed on a Python identifier, Hyperbole will use Jedi to find the
definition even within nested module references, e.g. a.b.c. Also
improved basic identifier definition finding.
- Company Mode Completion: Support for the Emacs company-mode completion
package. An Action Key press on a company-mode completion item will
display the definition of that item and an Assist Key press will
display its documentation, if any.
- Treemacs Mode: Now supports standard Hyperbole end-of-line proportional
scrolling.
- ChangeLog Mode: Smart Keys now work on Emacs Lisp references in
changelogs.
- Improved String Matching: For lines that begin with part of a string
that started on another line, Hyperbole now presumes that point is
within a string rather than between two strings, even though the
delimiters on the line make this ambiguous. This provides more
accurate string recognition.
- Improved Path Matching: For quote delimited paths, other quote marks
are excluded from matches, so if checking for a doubly quoted path,
single quotes are not allowed in the string.
HYCONTROL
- Help Buffer Quitting: If HyControl is active, normally {q} quits
it, but now if point is in an Emacs help buffer, {q} will quit
from the help buffer instead. Use {Q} to quit from HyControl
unconditionally.
NEW COMMANDS
- Buffer Sliding: Four new commands are available that can be
bound to things like control arrow keys: hkey-buffer-move-left,
hkey-buffer-move-right, hkey-buffer-move-down and
hkey-buffer-move-up. Each one slides the current buffer one
window in the direction specified and all other buffers slide
around to match.
- MSWindows and POSIX Path Toggling: In "hpath.el", added
(hpath:substitute-posix-or-mswindows-at-point) and
(hpath:substitute-posix-or-mswindows) commands to toggle the
format of a path at point or in a string between POSIX and
MSWindows styles.
PROGRAMMING
- Added hypb:map-plist, equivalent to mapcar but maps over
key-value pairs in property lists (where the key and value are
individual elements in the list).
- In "hui-select.el", added functions to return info. on the
context-sensitive region that this library selects.
(hui-select-get-region) returns the region that would be
selected at point and (hui-select-get-region-boundaries)
returns a cons of the start and end position of the same region.
- In "hpath.el (hpath:delimited-possible-path), added optional
include-positions parameter which if non-nil, adds start and end
positions to returned value.
- In "hversion.el", added (hyperb:wsl-os-p) flag to test whether
Emacs is running under Microsoft Windows Subsystem for Linux (WSL)
since the system-type variable does not reflect this.
DOCUMENTATION
- Popup Menus: Documented how to invoke the Koutliner and
HyRolo popup menus in Emacs. See "(hyperbole)Menu Commands".
- DEMO: Added sections:
"DEMO#Gitlab (Remote) References"
"DEMO#POSIX and MSWindows Paths"
- Updated Hyperbole Manual with new features.
===========================================================================
* V7.0.2
===========================================================================
ACE WINDOW PACKAGE INTEGRATION
- Item Throws: Added the ability to 'throw' an item or a buffer to
a window while leaving the selected window the same. Use {M-o t
<window-id>}. This works in Dired, Buffer Menu, iBuffer Menu and
Treemacs modes and lets you throw multiple items to multiple windows
quickly. See "(hyperbole)Keyboard Drags" for setup and use
instructions.
===========================================================================
* V7.0.1
===========================================================================
SMART (ACTION AND ASSIST) KEYS
- Keyboard Drags: Keyboard emulation of many Smart Mouse Key drag actions.
See "(hyperbole)Keyboard Drags".
- Keyboard Help: When {M-o} is bound to the `hkey-operate' command to
emulate drag depress and release events; when in the release window
prior to pressing the second {M-o}, {C-h A} now reports the drag
action associated with the current release point. See "(hyperbole)C-h A".
- Smart Treemacs: Smart Key and item drag support for the Treemacs package.
See "(hyperbole)Smart Key - Treemacs".
- Ace Window: Integrated Hyperbole item drag and link creation with this
package's direct window selection. Use {M-o i <window-id>}.
You typically can display any Dired or Buffer Menu item in any window
with a single 3 keystroke command! See "(hyperbole)Keyboard Drags"
for setup and use instructions.
HYROLO
- Fixed Google Contacts support to prompt only once for authorization.
===========================================================================
* V7.0.0
===========================================================================
(See the "Changes" file for even more details of changes).
BUTTONS AND SMART (ACTION AND ASSIST) KEYS
- Git References: New implicit button and action type with a compact syntax
that displays many types of git entities, e.g. git#commit/55a1f0. Such
references work across all git repositories on your local disks.
See "DEMO#Git (Local) References" or the commentary at the top of the
"hib-social.el" file for extensive examples of these references. {C-h
f git-reference RET} explains its syntax.
- Github References: New implicit button and action type with a compact
syntax that displays many types of github entities,
e.g. gh#emacs-helm/helm/1878, displays issue #1878 for user emacs-helm
and project helm. See "DEMO#Github (Remote) References" or the
commentary at the top of the "hib-social.el" file for extensive
examples of these references. {C-h f github-reference RET} explains
its syntax.
- Extensive new support for cross-window and cross-frame drags of the
Action and Assist Mouse Keys. See "DEMO#Smart Mouse Keys" and the Info
manual section, "(hyperbole)Smart Mouse Key Drags" for details. These
actions allow for rapid display of buffers, windows and frames wherever
you like.
Major new features include:
* Dragging items from Dired or the Buffer Menu for display in existing
or new windows and frames. Action Key drag from the first line (or
header line) to another window to move the listing buffer itself.
Visual pulsing of source and destination to highlight the transfer
taking place (hmouse-pulse-flag controls this). A following click on
an item displays it in the source window, replacing the Dired or
Buffer Menu listing.
* Dragging from a buffer or an item to a modeline splits the window of
the modeline and displays the buffer/item dragged in the leftmost
or uppermost of the split windows.
* Cloning or moving an Emacs window to a similarly sized new frame or
another existing frame.
* Displaying a buffer in specific other windows.
* With Emacs 26 on macOS, Hyperbole detects the window of any drag
release or whether the release was outside of Emacs, e.g. in another
application whose window is atop an Emacs frame (uses a Python script
included with Hyperbole, so Python must be available or this will do
nothing).
The hmouse-verify-release-window-flag (default is t) controls whether
checking for non-Emacs areas on macOS is done or not, as this slows
Smart Key action handling at least 1/3 of a second in a number of cases.
- {}-delimited Key Sequence Implicit Buttons have been greatly expanded.
An Action Key press on any of the following execute the associated commands:
{M-x occur RET} - M-x extended commands
{M-x apropos RET hyperbole RET} - commands with arguments
{C-x 2 C-x 3} - sequences of commands
{ESC: (+ 2 3) RET} - lisp expressions
- Pathname Environment Variables: Implicit Buttons may contain environment
variables such as "${PATH}/python" and Hyperbole resolves them to the
first matching directory when activated.
- Compressed Elisp: Quoted, compressed Emacs Lisp source file names without
any path now work as implicit buttons that display the source file, with
or without the compressed file suffix, e.g. "subr.el" or "subr.el.gz".
- Prefixed URLs: Partial URLs with prefixes such as, url:photos.google.com
or url=calendar.google.com, can now be displayed with Action Key presses
even though they lack a www site name or an http protocol prefix.
- Link to File: When modifying an explicit file link button, a variable in
a pathname is maintained as is any prior in-file location when prompting
for changes.
- Yanking Explicit Buttons: When copying or moving explicit buttons, they
are now re-highlighted when yanked into a new position.
- EWW Support: Added Action and Assist Key support for browsing links in
eww (the Emacs web browser) and for activating history links in the eww
history buffer.
- Open Office Documents: An Action Key press on an Open Office pathname
displays it in Open Office. See hpath:external-open-office-suffixes for
file suffixes supported.
- macOS Apps: An Action Key press on a pathname that ends in ".app" on a
macOS system will run the app externally (previously it would have been
browsed as a directory).
- File Page Browsing: Dynamic table-of-contents-type browsing for files
separated into pages with form-feed (Control-L) page separators. Use
{M-x pages-directory RET} to generate the listing of pages and then press
the Action Key on any entry to jump to it.
- Explicit Buttons in Comments: Explicit buttons in programming languages
are now matched only within comments to avoid language syntax that looks
like the delimiters of an explicit button, e.g. in Rust.
- New hproperty:but-highlight-flag: This controls whether Hyperbole
explicit buttons are highlighted with a special colored face or not. By
default, they are.
- Python Backtraces: Action Key presses jump to the associated source
line.
- Python Symbols: Action Key presses now look these up in any buffer whose
name includes Pydoc: or Python, mainly help buffers.
- Compressed File Grep: {C-h h f g} now uses zgrep when available to
handle compressed source files.
- Grep -A Support: The grep -A option produces context lines around any
matched lines but uses a different syntax for separating line numbers at
the beginning of lines. The Action Key now supports jumping to the
source of any such lines.
- Dired Quit: An Action Key press at the end of the first line in a Dired
buffer now quits and executes requested actions, just as presses at the
end of the buffer do.
- Image Thumbnail Browsing: See the Info manual section,
"(emacs)Image-Dired", for how to create a buffer of image thumbnails.
Once created, the Action Key displays a scaled version of the original
image in an Emacs window. The Assist Key displays the original image in
an external viewer.
- Emacs Push-buttons: An Assist Key press on an Emacs push-button previously
displayed its keyboard-action help string but not its mouse-action help
string. Now it displays the mouse-action when appropriate.
- Texinfo References: An Action Key press on an Emacs Lisp @findex
(function) or @vindex (variable) entry displays the documentation for
that entry.
- Debbugs Issues: Eliminated match of #id-number as a bug reference; 'bug'
or similar prefix is now required so there is no ambiguity with social
references including 'git #commit-number'.
CUSTOMIZATION
- Smart Key Hooks: New hooks run before and after Smart Key depress and
release events: action-key-depress-hook, action-key-release-hook,
assist-key-depress-hook and assist-key-release-hook.
DOCUMENTATION
- FAST-DEMO: New, simplified introductory demo to Hyperbole focused on
implicit buttons. Includes links to Hyperbole videos and the prior
"DEMO". {C-h h d d} display "FAST-DEMO" and {C-u C-h h d d} displays
the prior "DEMO".
- Why Use Hyperbole: "HY-WHY.kotl" lists use cases for Hyperbole with
hyperlinks to associated "DEMO" sections for each. View this via
the minibuffer menu with {C-h h d w} or via the `Why-Use?' Hyperbole
menubar menu entry.
- Hyperbole HTML Manual: The HTML version of the Hyperbole Manual now uses
the same css stylesheet as used for the Hyperbole Home page, making
it look much better and easier to navigate.
- Drags: Updated Hyperbole Manual with all new Smart Mouse Key drag actions.
- Smart Key Help: Improved help documentation for Smart Keys when they
contain multiple clauses connected with 'or' logic, e.g. do 'a' or 'b'
or 'c'.
- New Hyperbole Manual Sections:
* Referent Display - setting of where link referents are displayed
* Smart Mouse Key Drags
* Smart Mouse Drags outside a Window
* Smart Key - Image Thumbnails
* Future Work - Direct Manipulation
- Git References: In the Implicit Buttons section of the Hyperbole Manual,
added documentation for git-reference, git-commit-reference and
github-reference.
- Toggle Key Bindings: In the Smart Key Bindings section of the Hyperbole
Manual, explained hyperbole-toggle-bindings (toggles keyboard and mouse
keys) rather than hmouse-toggle-bindings (toggles only mouse keys).
Moved the latter to the Global Key Bindings appendix.
- Other Hyperbole Manual Section Changes:
* Button Colors: Added doc on hproperty:but-highlight-flag.
* Glossary: Added Windows Grid entry.
* Hook Variables: Added doc of: action-key-depress-hook,
action-key-release-hook, assist-key-depress-hook
and assist-key-release-hook.
* HyControl: Added Google Contacts use and additional Concept Index entries.
* Koutliner: Centralized all key binding index entries under "koutliner, ".
* Manual Overview: Improved pointer to DEMO.
* Smart Key - WWW URLs: Added browse-url-browser-function and Cust/URL-Display reference.
* Using URLs with Find-File: Added URL browser customization menu reference and image.
- New DEMO File Sections:
* Table of Contents Browsing
* Dragging Buffers, Windows and Items
* HyControl Frame Commands and Windows Grid subsections
* HyRolo
* Running Dired on the Current Directory
HYCONTROL
- HyControl Minor Modes: HyControl is now two minor modes, one for frames
and one for windows. It uses standard key bindings and standard Emacs
event processing instead of its own event loop, so any keys not bound in
a HyControl mode now work normally. HyControl Windows Mode displays
HyWin in the modeline and HyControl Frames Mode displays HyFrm while
active. Both modes invert the modeline colors so you don't forget you
are in a special mode.
- {@} is an incredible new key binding and command that creates a grid of
windows within a frame by splitting the frame into a number of equally
sized windows specified by a number of rows and columns (typically as
prefix arg digits). Each window shows a different buffer, if possible,
with a prefix arg of 0 prompting for a major mode and first displaying
buffers of that mode.
The same {@} command works in Dired, Buffer Menu and IBuffer modes and
first displays any items marked for display in the windows grid,
i.e. marked with the {m} command.
Hyperbole also supplies the global key binding {C-c @} so this command
can be used at any time.
The variable, hycontrol-display-buffer-predicate-list, determines which
buffers are first displayed in the grid except when filtering by major
mode or by items marked in a listing buffer.
{M-x hycontrol-windows-grid-repeatedly RET} allows rapid visual testing
of different grid layouts or filters as it prompts you for a grid size,
displays it and then prompts you again until your press RET without
giving a size.
See "Demo#Windows Grid" for example use.
- {a} adjusts the selected frame width by cycling through a list of common
fixed percentages such as 25% and 50% (given by the variable,
hycontrol-frame-widths.
{A} does the same for the selected frame's height, using
hycontrol-frame-heights.
- {f} now clones a window to a new frame without deleting the source window
{F} moves a window to a new frame and deletes the the source window
- {i}, {j}, {k}, {m} first expand the selected frame to an edge based on
their respective positions on a U.S. keyboard, e.g. {i} expands the
frame to the top edge; with further invocations, they keep the frame at
that edge but cut its perpendicular dimension in half (or to any
percentage specified as an argument), leaving the particular edge fixed.
This allows both rapid expansion and contraction of frames with just 4
keys whenever needed.
It is easiest to understand by simply trying the keys. See "Demo#Frame
Commands" for example use.
- {c} for frame edge location cycling now is available in HyControl
Windows mode.
- {p <num>} displays a virtual numeric keypad and moves the selected frame
to the screen edge position based on the numeric keypad layout, e.g. 3
moves it to the southeast corner of the screen. This is for keyboards
that do not have a physical numeric keypad. Before a number is
selected, {C-g} or {q} will exit and return to the top-level of the
active HyControl mode.
- {-} in HyControl Windows mode minimizes a window size while trying to
display its entire buffer. Now it will resize the window to 1 line if
it cannot display all lines or if all lines are already displayed.
- Minibuffer Help: Improved help strings shown in the minibuffer while
HyControl is active. Added {?} key which toggles this display on and
off.
- ESC: Removed this as a quit key since now that regular key sequences are
supported, this is often used as a meta key prefix. Use {q} to quit.
- Minibuffer Prompts: Automatically quit from any HyControl mode whenever
a minibuffer prompt becomes active so that arguments may be typed
normally. Examples include use of {M-:} for Lisp expression evaluation
and M-x for entering commands by name.
HYROLO
- Google Contacts: New support for searching your Google Contacts with the
HyRolo Contact Manager; for advanced users only. Requires use of the
Emacs google-contacts package and the non-Emacs gpg public key package
to support Google services authorization. Once configured, these
contacts are automatically searched together with local HyRolo files any
time a contact search is performed. See the Google Contacts part in
"(hyperbole)HyRolo Settings".
- Dynamic HyRolo List: The HyRolo list of files to search is now computed
dynamically so you can enable Big Brother Database (BBDB) or Google
Contacts support after HyRolo is initialized and these contacts will also
be searched.
KEYS
- Unshifted Mouse Keys: By default, Hyperbole mouse keys are Shift-Middle
(Action Key) and Shift-Right (Assist Key). For frequent mouse users,
there is now {M-x hmouse-add-unshifted-smart-keys RET} which
additionally makes the Middle mouse key the Action Key and the Right
mouse key the Assist Key, replacing their default Emacs functions. {M-x
hmouse-toggle-bindings RET} will toggle between the Emacs and Hyperbole
mouse bindings.
- Smart Key Reload: If you ever edit any of the Smart Key contexts or
actions in "hui-mouse.el", "hui-window.el", "hibtypes.el" or
"hactypes.el" and re-byte-compile those files, then you may reload your
new settings with {M-x hmouse-update-smart-keys RET}. No need to reload
or restart Hyperbole.
- Jump Thing: Added Jump Thing key binding entry to Hyperbole menus. This
key jumps between the start and end of a matching delimiter or tag pair.
- Mod Mouse Keys: Disallowed this feature meant to enable one hand on the
keyboard while the other hand pressed the mouse keys as Control and Meta
modifier keys. Use would conflict with Emacs bindings of Control and
Meta mouse keys.
KOUTLINER
- `e' Viewspec: Removed ellipses viewspec because ellipses can no longer
be turned off with modern Emacs outlining.
MENUS
- Prefix Arguments: Prefix arguments may now be given to any Hyperbole
menu command that accepts them.
- Action Doc Strings: If a menu item has no help string but its action is
a function with a doc string, then that doc string will be used to
display help for the menu item.
- Key Bindings: The pulldown menu, Hyperbole/Options/Change-Key-Bindings
now displays the current keys bound to each command for easy reference.
===========================================================================
* V6.0.2
===========================================================================
BUTTONS
- pathname Implicit Button Type: generalized to handle hash-style links to
HTML files, to Github Markdown # sections and to Emacs outline *
sections. So an Action Key press on any of the following links displays
the link referent:
"man/hyperbole.html#Questions-and-Answers"
"README.md#why-was-hyperbole-developed"
"DEMO#HTML Markdown and Emacs Outline Hash Links"
Even links split across 2 lines like this now work: "DEMO#Social Media
Hashtags and Usernames", as long as point is on the first line.
Within HTML and Markdown files, in-file hash links without any file name
prefix work as well.
HTML hash-links are case-sensitive; other hash-links are not. Hash links
typically use dashes in place of the spaces that referents may contain,
but if the link is enclosed in quotes, Hyperbole allows spaces to be used
as well. In fact, it is best practice to always enclose hash-style links
in quotes so Hyperbole can distinguish them from other similar looking
constructs, such as social media hashtags (see "(hyperbole)Social Media").
Pathnames surrounded by literal non-ASCII quote marks now work as well.
For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
- New Implicit Button Type, markdown-internal-link, displays any in-file
Markdown link referent, aside from pathnames and urls. Together with
other types, all Markdown links can now be followed by the Action Key.
- social-reference Implicit Button Type: Disabled this type within quoted
strings (all modes) and within parentheses (markdown-mode), so in-file
hash link references are not matched as social hash tags. Made the list
of modes a variable, hibtypes-social-inhibit-modes.
- New link-to-web-search Action Type: Allows global and explicit buttons
to link to specific web term searches from `hyperbole-web-search-alist'.
- org-mode Implicit Button Type: Improved to invoke org-meta-return when
not on an Org link or outline heading.
DOCUMENTATION
- Added pointer to HyControl video and {C-c \} binding which invokes
HyControl window control.
- README File: New Org-mode user testimonial.
- DEMO File: Added description and exercise using the new Find/Web menu.
- Added README.md.html introduction with images combining README, INSTALL
and HY-ABOUT information.
- Full set of hand-written changes are now in the file "Changes". The
former name, ChangeLog, is now auto-generated from the version controlled
'git log' but not as complete.
KEYS
- New variables, action-key-eol-function and assist-key-eol-function, used
to control what the Action and Assist Keys do at the end of a line.
Default behaviors remain as before but now one can set these to do
something other than scrolling, if desired. See "(hyperbole)Smart Key -
Smart Scrolling"
- When in HyControl, pressing {ESC} now quits in addition to {q}.
MENUS
- New submenu, Find/Web, for quick access to major web search engines.
The Find/Web menu looks like this:
Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps RFCs StackOverflow Twitter Wikipedia Youtube
Hyperbole binds the key {C-c /} for quick access to this menu, if it is
not already bound prior to Hyperbole's initialization. The
Cust/Web-Search menu, {C-h h c w}, sets the option,
hyperbole-web-search-browser-function, which determines whether web
search results are displayed within Emacs or with an external web
browser. A short video introduction to the Find/Web menu may be found at
https://youtu.be/8lMlJed0-OM.
Advanced users can change the search engines listed in the Find/Web menu
with M-x customize-variable RET hyperbole-web-search-alist RET. Changes
are automatically reflected in the Hyperbole menus once applied.
Remember each search engine name must begin with a unique letter and each
URL must have a %s format field indicating where to place the web search
term when a search is performed. See "(hyperbole)Web Search Engines".
===========================================================================
* V6.0.1
===========================================================================
NOTE: Version 6.0.1 is the first public release by the author since version
4.18. All version 5 releases were test releases, so all V5 and V6 features
are new in 2016 and you should look through them all.
BUTTONS
- New Implicit Button Type, social-reference: for social media hashtag or
username references, social-reference. Action key activation
displays the web page associated with the hashtag or username.
References can look like #hashtag or @username for Twitter
references. fb#hashtag or facebook@username for Facebook references
or in#hashtag or instagram@username for Instagram references. See
the new file "hib-social.el" for more information.
DOCUMENTATION
- The introductory parts of the manual have been improved and the flow
from section to section is better. Added menu key sequences to
"(hyperbole)Suggestion or Bug Reporting". Expanded and added
instructions on using the customize interface to change the functions
run by Smart Key modeline clicks. See "(hyperbole)Smart Key Modeline".
VARIABLES
- hsettings.el is now included in the Hyperbole package rather than
generated (formerly called hsite.el). Use the Hyperbole customization
variables to change anything in there rather than editing the file
manually as before.
===========================================================================
* V6.0.0
===========================================================================
HYROLO
- The Hyperbole contact manager has been renamed to HyRolo and all of its
identifiers now begin with hyrolo-. If you had a custom value of
`rolo-file-list' in your ~/.emacs file, you should rename it to
`hyrolo-file-list'.
KEYS
- Removed the {RET} key bindings of the Action Key in read-only modes since
it was not consistent across all modes and probably was little used. It
also could interfere with mode-specific usage of this key. Just use the
standard Action Key bindings.
MAIL
- Implicit mail address buttons are recognized in many more programming
modes. See the value of `mail-address-mode-list'.
VARIABLES
- Hyperbole is now integrated with the Emacs option customization system,
allowing for interactive editing and permanent setting of many Hyperbole
options. Use {M-x customize-browse RET} and find the Hyperbole group
under Applications. Hyperbole's options are divided into logical
subgroups such as Rolo and Koutliner. See "(emacs)Easy Customization"
for details on the customization system and "(hyperbole)Customization"
for Hyperbole specifics.
- Renamed any Hyperbole hook variables that had a colon in their names
to use a hyphen instead.
WINDOW CONFIGURATIONS
- Similarly, the commands from the Win/ menu from Wconfig have been
renamed to begin with hywconfig- and the library is now called
hywconfig.el.
===========================================================================
* V5.15
===========================================================================
BUTTONS
- New Implicit Button Type, debbugs-gnu-mode: When on a GNU Debbugs listing
entry in debbugs-gnu-mode, an Action Key press displays the discussion of
the selected issue; an Assist Key press pretty prints the status of the
issue to a window below the listing window. This augments the
debbugs-gnu-query implicit button type from V5.14 which recognizes
bug/issue ids and queries in any buffer.
- Initial Org Mode Support: The new implicit button type, org-mode, follows
Org mode hyperlinks and cycles display views of Org mode outline headings.
When on a heading, the Action Key cycles the view of the subtree at point
and the Assist Key cycles the view of all headings in the buffer.
Suggest other good ideas for Smart Key actions on Org entities and we'll
likely implement them.
- Links to Info Manual Index Items: You can now drag between windows with
the Action Mouse Key depressed to an Info Manual index menu entry to
create an explicit button link to it (or use {C-h h e c} with an action
type of link-to-Info-index-item). Then the button will always take you
to the line in the manual referenced by that index item. This also works
with other Info menu items and cross-references. Implicit buttons that
reference index items work too, like "(hyperbole)C-c C-m"! And when you
are creating the link, full completion of the file name (within
parentheses) and the index item name is provided; just type ? to list
completions after typing a few characters. Since Emacs and most GNU
programs include Info manuals, you now have a simple way to link to and
jump to any marked item within any manual.
Previously, when creating a link to an Info manual node, Hyperbole
would ignore cross-references and menu items and just link directly
to the node rather than anything it referenced. To get that behavior
now, simply link to a place in the node that does not reference another
place.
- Link Button Creation: Hyperbole now shows you what you linked to at
global or explicit link button creation time. Previously, it showed you
only the type of the link. So if you drag across windows from a button
label to an Info index item now, you will know that the link goes to the
index item entry and not to the index node containing the item reference.
- New Implicit Button Type, pathname-line-and-column: A whitespace or quote
delimited existing pathname followed by a :line-num and an optional
:column-num displays the path at line-num and column-num. So
"~/.emacs:10:40" shows your Emacs initialization file at line 10 and
column 40. The column number is optional.
- GNU Info Manual Key Sequences: Previously, Hyperbole recognized key
sequences delimited by curly braces only, {}. Now it recognizes the
quotation marks used in GNU Info manuals as well and can execute them
with an Action Key press within Info buffers.
- Imenu Item Recognition: When the Emacs imenu library is in use and an
identifier menu has been generated for the current buffer, an Action Key
press on an identifier at point jumps to the identifier definition
within the current buffer; an Assist Key press prompts with completion
for an identifier defined within the buffer and then jumps to its
definition.
DOCUMENTATION
- Smart Key Debugging: Added a section, "(hyperbole)Smart Key Debugging",
to the Hyperbole Manual, documenting the usage of the Customize Menu
option, Toggle-Smart-Key-Debug (minibuffer menu Cust/Debug-Toggle,
{C-h h c d}).
KEYS
- Toggle Hyperbole Keys: The new command, {M-x hyperbole-toggle-bindings
RET}, toggles Hyperbole mouse and keyboard keys off and on. This is not
bound to a key because it will make Hyperbole unusable until the keys are
re-established with another toggle. This forces you to know what you are
doing before you utilize this feature.
MENUS
- Minibuffer Keyboard Direct Selection: You have always been able to click
with your mouse on a minibuffer menu item to directly select it. Now
Hyperbole has the keys {TAB} or {M-f} to move to the next menu item and
{Shift-TAB}, {M-TAB} or {M-b} to move to the previous item, with each
cycling back when it reaches the end or beginning of the menu. The
fastest way to select minibuffer menu items from the keyboard remains
typing the first letter (case-insensitive) of the menu item.
- Minibuffer Menu Navigation Changes: A press of {RET} with point at the
end of a menu, quits from the menu. {RET} with point in a menu prefix
(before the '>' character), returns to the top-level Hyperbole menu.
Clicks of the Action Mouse Key do the same thing, so now you can
navigate and quit from menus with just the Action Mouse Key.
===========================================================================
* V5.13 and V5.14
===========================================================================
BUTTONS
- Instant Bug Lookups and Queries: New Gnu Debbugs bug/issue tracking
implicit button type, debbugs-gnu-query, that jumps to the description
and discussion of issues by issue number and displays an issue's status.
This works for the GNU Hyperbole issue tracker as well as many other GNU
projects. All of these button formats may be embedded within any text:
#id-number
bug#id-number, bug# id-number, bug #id-number or bug id-number
bug?attr1=val1&attr2=val2&attr3=val3
bug#id-number?attr1=val1&attr2=val2&attr3=val3
Note that `issue' or `debbugs' may be used in place of `bug'.
See the documentation at the start of "hib-debbugs.el" for more
information.
- During the creation of link-to-Info-node explicit buttons with an
argument of the type (filename)nodename, full completion is offered for
both the filename and the node name; just type ? to list completions
after typing a few characters. You now can drop the .info suffix from
filenames as well, so "(hyperbole)Smart Keys" works fine as a node
reference.
- Implicit links from the output of the UNIX apropos command now work
properly in Emacs 25.
- Implicit pathname matches now handle compressed Emacs Lisp files found
anywhere within the directories of `load-path' and do not try to expand
paths that begin with a ~.
- New variable, `hpath:info-suffix', is a regular expression of Info
filename suffixes which may be omitted when using parenthesized Info
filenames in links; this allows for compressed Info file matches and Info
pathnames of the form "(Hyperbole)" to work. That displays the top node
of the Hyperbole Manual in the Info browser.
- Pathnames ending in .mp3, .wav or .ogg are played as music files rather
than displayed if your Emacs has support for this. Modify the value of
the variable, `hpath:internal-display-alist' to add more formats.
- New per-window system association list variables determine what if any
file types within Hyperbole hyperlinks are displayed by external programs
outside of Emacs. See the values of and documentation for:
`hpath:external-display-alist-macos', `hpath:external-display-alist-mswindows',
and `hpath:external-display-alist-x'.
- Added support for &, ~, and ^ as identifier characters in Lisp tags and
removed #.
DOCUMENTATION
- DEMO File: Major updates to reflect the latest Hyperbole features. Added
sections on HyControl, Creating and Modifying Explicit Buttons and
Path Suffixes and Variables. Try it out with {C-h h d d}.
- Hyperbole Manual
- Updated all screenshots in the manual; thanks to Mats L.
- In the "(hyperbole)Internal Viewers" section, added a description of
the file formats supported by the default setting of the
`hpath:internal-display-alist' variable.
- Added sections "(hyperbole)Smart Key Modifiers" and
"(hyperbole)Smart Key Modeline".
- Added a "(hyperbole)Glossary" entry for Chord Keyboard.
- In "(hyperbole)Smart Key Thing Selection", added documentation of the
{C-c RET} key for syntactical region marking and the {C-c .} key for
delimited thing jumping between start and end.
- In the Cust/ menu section of "(hyperbole)Menus" which lists all
Hyperbole key bindings, indicated which keys are bound only if not
bound prior to loading Hyperbole.
HYCONTROL
- Frame placement calculations now account for window system decorations
around frame, leading to improved placement offsets around screen edges.
See the documentation for `hycontrol-set-screen-offsets'.
MENUS
- On the Hyperbole menubar menu, the Types submenu which shows
documentation for Hyperbole types has been moved below the Documentation
menu to match the Hyperbole minibuffer menu location. Also added a Types
menu item under the Explicit-Button menu to match the one under the
Implicit-Button menu.
- On the Hyperbole Customize/Change-Key-Bindings menubar menu, renamed
these entries and added Mark-Thing-Key. Similar updates done to the
minibuffer menu.
MOUSE AND SMART KEY SUPPORT
- An Action Key press on a Hyperbole minibuffer menu key sequence now
invokes the associated menu action. Try it with {C-h h d g} to see the
Hyperbole glossary. An Assist Key press shows help for the menu item.
- Changed the `assist-key-default-function' which applies in an unrecognized
context to trigger an error by default to match the behavior of the
Action Key. Its prior value, toggle display of or hide the Smart Key
summary, is performed by an Assist Key click in the right of a modeline
or via minibuffer menu with {C-h h d s}.
- Point is now left within the Smart Key summary by default and it is in
help mode so you can page through it with SPC and DEL keys and then quit
from it with {q}.
- A click of the Action Mouse Key within an inactive minibuffer window
displays the Hyperbole minibuffer menu, allowing you to invoke menu
entries with the mouse. A click of the Assist Key in the same place
displays the buffer, window and frame jump menu just as does a click
within the middle of a modeline since it is easy to miss by a little and
click on one or the other. These behaviors are controlled by the new
variables, `action-key-minibuffer-function' and
`assist-key-minibuffer-function'.
- Distributed Window System Support: Previously, Hyperbole supported mouse
control only on the screen on which it was launched. If you used
emacsclient or other means to create a frame on another screen or outside
of a terminal, that frame would not have Hyperbole mouse support even
though it was under a window system. Now each frame receives mouse
support whenever its window system has mouse support.
- Improved support for using the Action and Assist Mouse Keys as Control-
and Meta- modifier keys, mainly for use with a chord keyboard or to
balance hand use to reduce carpal tunnel stress. Made `hmouse-mod-mode'
a regular minor mode. See "(hyperbole)Smart Key Modifiers" for more
details.
ROLO
- Fixed entry sorting to work with Emacs 25.
===========================================================================
* V5.12
===========================================================================
BUTTONS
- Prevented keyword matches as identifiers in Java, C++, C, Objective-C
and Python.
- Prevented @ annotation matches when matching to Java identifiers/tags.
- In Info documentation browsing mode, added support for index nodes and
for fixed header line and text-property-based breadcrumb header lines
now used in Emacs, so the Action Key can now follow links associated
with all of these entities.
- In compilation buffers, e.g. {M-x make RET}, if an error line has a
relative pathname which Hyperbole cannot resolve, it will prompt
for the directory in which to resolve the path.
DOCUMENTATION
- Added printable hyperbole.pdf version of the Hyperbole Manual.
- DEMO file: Updated horizontal and vertical drag exercises to
correspond to current Hyperbole behavior.
- Added chapter on HyControl, window, frame and buffer control.
- In the Hyperbole Manual Glossary, added Buffer, Frame, HyControl
and Window definitions.
- Added additional Q&A in an appendix.
- Clarified and fixed Smart Key modeline behavior documentation.
- Made example text larger for easier reading.
- Added Screen definition to the Glossary.
EMACS SUPPORT
- Hyperbole now includes the fastest, easiest-to-use Emacs window and frame
management system available; we call it HyControl. If you use a lot of
Emacs windows or frames (typically, window system windows), this is for
you. HyControl lets you interactively adjust the current layout of your
windows and frames down to the pixel-level if desired. You keep
adjusting the location, size and display elements of your windows and
frames until they look as you like and then you simply quit HyControl and
go back to work.
- Expanded Hyperbole menu of buffers by major mode to allow for
`hui-menu-max-list-length' number of buffers, by default, 24.
- Made a right to left horizontal drag from near a right-side window divider
properly shrink the window width under Emacs 25.
KEYS
- The Hyperbole Screen submenu provides access to HyControl as well as the
key binding {C-c \}.
- Removed {C-c C-t} hmouse-toggle-bindings key binding. This
should be used rarely, so force use of {M-x hmouse-toggle-bindings RET).
- Updated "hmouse-mod.el" library for Emacs 25; it allows using the Smart
Mouse Keys as Control and Meta modifiers when desired.
KOUTLINER
- Improved recognition of Klinks, preventing false matches.
- Added missing {C-c C-i}/{C-c TAB} binding mentioned in the EXAMPLE.kotl
file; sets cell attributes.
- {C-t} Transpose characters - Added error checks at the beginning of cells
and end of lines for times when there are not 2 chars to transpose.
ROLO
- Improved {M-s} interactive string searching for rolo match buffer strings.
Made {C-u M-s} do a regexp search for rolo match buffer strings.
- Documented the {l} hyrolo-locate command in the Hyperbole manual.
- The format of the rolo entry date added to new entries is now configurable
via the variable, `hyrolo-date-format'. It uses the formatting
strings listed in the documentation of the function `format-time-string'.
- All rolo find and search commands are now case-insensitive.
- Using a numeric prefix argument with rolo find commands now
properly limits the number of matches to a maximum of that number.
- If the Big Brother Database (BBDB) is loaded before the rolo, its
`bbdb-file' is added to the list of files searched by the rolo.
You can manually added this file to `hyrolo-file-list' as well and
its format will automatically be handled by the rolo.
===========================================================================
* V5.11
===========================================================================
BUTTONS
- Improved support for remote pathname access (outside local
filesystems).
EMACS SUPPORT
- Much faster and better lookup of active Emacs Lisp identifiers
when the Action Key is pressed over one. Face definitions are
also found now. TAGS files are used only if the identifier has
not been loaded within the current Emacs session.
KOUTLINER
- Proper support for isearch temporary display of invisible text
when it contains a search match. {C-s}, interactive search,
expands and contracts text dynamically to show any search
results, just as it does in the regular Emacs outline mode. You
can toggle whether such searches include invisible/hidden text
(the default) or not. Use the
Customize/Toggle-Isearch-Invisible-Text menubar item or the
Cust/Isearch-Invisible minibuffer menu item to toggle this
setting.
MAIL AND NEWS READERS
- New variable, `inhibit-hyperbole-messaging' with default value
of t inhibits Hyperbole's support for explicit buttons within
mail and news buffers. When t, Hyperbole will not alter
messaging mode hooks nor overload functions from these packages,
preventing potential incompatibilities.
If you want to use Hyperbole buttons in mail and news buffers,
use the new Customize/Toggle-Messaging-Explicit-Buttons menubar
item or the minibuffer menu Cust/Msg-Toggle-Ebuts item. These
not only change the variable value but also add or remove the
setup hooks as necessary.
ROLO
- New {o} key binding for an overview of all Rolo matches at all
levels, one line per entry.
- {t} top-level cells command works in all cases now.
- {Shift-TAB} added as an additional key to move backwards one
Rolo match.
- Improved operation of {l} and {M-s C-s} commands that search for
occurrences of match strings and allow extending the search term.
- Support for looking up contacts in the Big Brother Database
(BBDB) file of email addresses, when that package is used.
The functions, hyrolo-grep-bbdb finds regular expression matches
and hyrolo-fgrep-bbdb finds string matches. All regular Rolo
match buffer commands may then be applied. The {e} command for
editing an entry signals an error when applied to the BBDB file,
however.
SMART KEYS
- The Assist Key when pressed in the middle portion of a modeline
now pops up a very useful menu of display-oriented commands.
Jump to buffers categorized by major mode, to windows by buffer
name, or to frames by name. Manage your windows and frames
quickly with this menu as well. Another can't live without
feature. This comes from the new file, hui-jmenu.el.
- Added Python etags support for jumping to Python definitions.
With the separate OO-Browser package, definition location is
much better than just with etags.
See "(hyperbole)Smart Key - Python Source Code" for help.
- The Hyperbole Manual Smart Key Reference appendix now has a
subsection for each context, allowing quick reference of a
particular Smart Key context. Also, added documentation for
delimited thing selection, copying and moving.
- New function, hyperbole-popup-menu, to display the Hyperbole
menubar menu at the mouse point (or the left of the menubar when
running on a dumb terminal). This is useful as a setting
of `action-key-default-function' if you want some undefined
Action Key context to popup this menu in order to use Hyperbole
commands.
===========================================================================
* V5.10
===========================================================================
EMACS SUPPORT
- Hyperbole now downloads, builds and installs as a regular
Emacs package (but from a special archive location while pre-testing).
- Automatic time-zone handling under MS Windows (already existed
for UNIX-like operating systems). Plus support for 3 mouse
buttons under Windows.
IMPLICIT BUTTON TYPES
- Updated the extended find-file commands which handle http (www) and ftp
URLs to support the Tramp library included with newer versions of Emacs.
Use the menu item Hyperbole/Customization/Find-File-Accepts-URLs to
enable or to disable this. See "(hyperbole)Using URLs with Find-File"
for details.
KOUTLINER
- Editing commands that normally delete/replace an active region
now do this in the Koutline. If a region extends beyond one
cell, an error is triggered or if `kotl-mode:shrink-region-flag'
is set to t, the Koutliner automatically shrinks the region to
the first cell within the region and then continues the editing
operation.
- Updated yanking and other editing commands for improved
compatibility with Emacs 25.
- Internal improvements to many tree handling, filling and view
changing commands.
- New Shift-TAB key binding to demote trees (shift them up a
level), for compatibility with other outliners.
MENUS
- The new Find/Locate-Files menu item (minibuffer menu
Find/LocateFiles) prompts for a pattern and displays a list of
all matching pathnames found throughout the file system. On Mac
OS X, this uses Spotlight (the mdfind command); on UNIX, it uses
the `locate' command. Within the result *Locate* buffer, you
can then use the Find/Grep-Files menu item to find matching
lines within only these paths (files and directories).
SMART KEYS
- Action Key now ignores JavaScript keywords when searching for
identifiers to match.
- Commands that interactively prompt for a Koutline cell label now
offer completion and require a match to a visible outline cell.
This helps prevent operating on an invisible cell unintentionally.
THING SELECTION
- Selection of open/close matched tag pairs and jumping between
them now works in web-mode, which supports multiple web
languages within one file (previously only html-mode was
supported). Also, can now select chained identifiers like:
parent.child.subchild in html and web modes with the {C-c
RETURN} thing selection key.
- Can now select comments when at a comment start; try it with
the Action Key.
- Can now select Lisp symbols with colons in them within help
buffers since they often appear there.
VARIABLES
- hyperb:init-hook renamed to hyperbole-init-hook, a more standard name.
See the GNU Hyperbole Manual for its usage.
===========================================================================
* V5.09
===========================================================================
FRAMES
- The Window-Configuration menu (minibuffer Win/ menu) now stores and
restores frame-specific window configurations, allowing each frame to be
dedicated to different types of work or groups of buffers.
INSTALLATION
- Hyperbole initialization is greatly simplified. A single "~/.emacs"
line of the form:
(require 'hyperbole (expand-file-name "hyperbole" "<HYPERBOLE-DIR>/")
loads and initializes Hyperbole. Please change your site-wide or
personal initialization to this. (No more setting of hyperb:dir and
load-path nor copying of hsite-ex.el to hsite.el is required; Hyperbole
does this for you).
KEYS
- A new Customize Menu option, Toggle-Smart-Key-Debug (minibuffer menu
Cust/Debug-Toggle, {C-h h c d}), displays a message in the minibuffer
every time the Action Key or Assist Key is pressed, showing the context
of the press and its associated action, allowing you to easily see
what is happening whenever you use a Smart Key.
These messages are all prefaced with "(HyDebug)" and are accumulated in
the *Messages* buffer for later viewing.
- Smart Keys work in any completion buffer now, e.g. the ido.el completion
buffer.
- Horizontal and vertical mouse drags within a single window, that do not
begin on a thing delimiter, are now simpler and more consistent. An
Action Key drag splits the window either below (horizontal drag) or
side-by-side (vertical drag). An Assist Key drag deletes the window.
- Hyperbole no longer uses the right mouse button, so it is free for popup menus.
The Assist Mouse Key is always on the Shift-Right mouse button as well as
on a C-u prefix to the Action Mouse Key.
- A new setting, `hmouse-middle-flag', when set to t (true) before Hyperbole
is loaded adds the middle mouse key as an Action Key. InfoDock does this
by default.
- ibuffer-mode, the dired-like menu listing for buffers, is now supported
by the Smart Keys; it behaves similarly to that of Buffer-menu-mode.
- Xref item listing mode is now supported by the Smart Keys; The Action
Key displays an xref file line or just a file containing an xref.
The Assist Key displays the same but leaves point in the listing buffer.
Xref is a built-in Emacs package that displays definitions and
cross-references of identifier strings. It is similar to etags, but
more general.
KOUTLINER
- Now compatible with the latest version of outline.el (using invisible overlays).
- All menus for the Hyperbole auto-numbered outliner, called the Koutliner,
now begin with 'K'. Some used to start with 'O'. To edit the example
Koutline, use {C-h h k e}.
- {C-c C-a} - Show-all, expand all cells in the current view.
{C-c C-o} - Overview, show only first line of outline cells.
{C-c C-t} - Top-level, hide all cells below level 1 and show
only the first line of each level 1 cell.
By default, these commands no longer affect the display of blank lines
between cells. But if given a prefix argument, they toggle blank
lines display for quick view changes.
- Values of `user-mail-address' or `message-user-fqdn' are now
used to set the creator and modifier names in Koutline cells.
MAIL LISTS
- The menu item that composes mail to the bug-hyperbole mail list now
includes any (HyDebug) messages output when the Hyperbole configuration
option, hkey-debug is enabled (via the Customize Menu or via
{C-h h c d}).
===========================================================================
* V5.08
===========================================================================
DOCUMENTATION
- Added web version of the Hyperbole Manual.
HYPERLINKS
- Action Key presses on Texinfo menu items and @node item references now
display the associated Texinfo node. @code and @var references to Emacs
Lisp identifiers now show the documentation for the identifiers. As
before, cross-references and file includes show the referenced items;
keyboard key sequences invoke their associated bindings.
- Action Key press on an Emacs push button activates the button. An Assist
Key press shows help for the button.
KEYS
- Delimited things, including lists, comments, strings, arrays/vectors,
sets, functions and markup pair tags (e.g. <div> </div>), may now be
selected, copied or moved with the Action and Assist mouse and keyboard
keys whenever point is on the first character of the starting or ending
delimiter. For strings and comments, point must be on the first line.
- New {C-c .} binding that jumps between the start and end delimiters of
delimited things. Try it on matching markup tag pairs in HTML and SGML
modes. If point is not immediately before or after a delimiter, this
generally does nothing.
- New {C-c RET} binding selects bigger and bigger syntactical units within
a buffer with each successive invocation. Double clicks of the left
mouse button do the same thing. Try it, you'll like it.
===========================================================================
* V5.07
===========================================================================
EMACS VERSIONS
- Support for the latest pre-releases of Emacs 25 and new versions of
XEmacs.
HYPERLINKS
- URL handling updated along with customization menus to support most
popular web browsers in use.
- Action Key on a mailto: URI starts composing mail to that address.
- When testing file formats/suffixes for an external viewer in
which to display the file, as a fallback, a MIME system mailcap
file is used to find additional possible viewers. See
"http://www.wikiwand.com/en/Mailcap" for information on mailcap files.
- Jump to JavaScript identifier definitions.
- History, {C-h h h}, now restores full multi-window and multi-frame display
configurations (within a single Emacs session), rather than just returning
to a prior location in a buffer.
- Type {q} in a Hyperbole Help buffer hide that buffer and return to your prior
location.
KEYS
- By default, Hyperbole now removes any mode-specific, local key
bindings that conflict with the global Smart Key bindings
(typically {Meta-Return}). Use the Customize/Toggle-Override-Local-Keys
to disable (or re-enable) this feature.
KOUTLINER
- When running under InfoDock, its Go and Options menus now appear within
the Koutliner menu.
- With a prefix argument, Koutlines are exported to HTML with soft newlines
rather than hard newlines, so text will flow based on browser window size.
This option will remove line-by-line formatting within a cell, however.
MENUS
- New Find menu which can reduce a buffer to just matching or non-matching
lines, run the 'grep' or 'fgrep' utilities on a file directory tree, or
list matching lines in the current buffer or across all buffers with
attached files.
- Renamed Customization menu to Customize.
- New Customize/Change-Key-Bindings menu lets you rebind any Hyperbole
keys for your current emacs session.
------- VERY OLD CHANGES BELOW HERE -------
===========================================================================
* V4.18
===========================================================================
ACTION AND ASSIST KEYS
- Default Action Key action is to signal an error (rather than display
the Hyperbole minibuffer menu) since it was too easy to confuse new
users with this behavior. More skilled users can set
`action-key-default-function' to do what they would like.
- Fixed bug that caused proportional scrolling to not be the default when
the Action Key is pressed at the end of a line.
KOUTLINER
- Fixed filling behavior when used with the `filladapt' package under
InfoDock.
- Improved text file importation process.
===========================================================================
* V4.17
===========================================================================
IMPLICIT BUTTON TYPES
- The Action Key now recognizes existing local files without any
delimiters (aside from whitespace). This allows you to display files
from directory listings or virtually anywhere within documents.
Relative pathnames are resolved relative to the directory associated
with the current buffer.
- Extended find-file commands to handle http (www) and ftp URLs
if the efs package is available and the
Hyperbole/Customization/Find-File-Accepts-URLs is enabled.
See "(hyperbole)Using URLs with Find-File" for details.
- Improved display of special files via external viewers.
- Added support for jumping to the source of errors from the Weblint Perl
package.
- The `make' error implicit button type now accounts for movement from
one directory to another within make output so that the right source
file is selected.
CONTACT MANAGER
- Default personal rolo file renamed to "~/.rolo.otl" ("C:_rolo.otl" on
Windows). When the contact manager is loaded, it will automatically
prompt you to rename this file when necessary. You should rename it
but if you choose not to the old rolo file will be searched.
- Added `rolo-display-format-function' which can be used to customize the
display of rolo search matches. See the Info manual section,
"(hyperbole)HyRolo Settings" for details.
KOUTLINER
- Fixed interaction problem with the standard editor autofilling
functions.
===========================================================================
* V4.16
===========================================================================
This release fixes a number of small issues with tags table handling under
GNU Emacs and Koutline export to HTML.
ACTION AND ASSIST KEYS
- Added support for selection of function names from a buffer in
fume-list-mode created by the func-menu.el package.
===========================================================================
* V4.15
===========================================================================
ACTION AND ASSIST KEYS
- Added support for the pop-tag-mark command {M-*} available in some
editors to move back to prior code locations displayed from clicking
the Action Key on an identifier or other cross-reference. {C-u M-*}
moves forward (instead of back) through this location history list.
- Added support for multiple TAGS file searches when looking for an
identifier definition from an Action Key click. Each TAG file found in
an ancestor directory of the current directory is searched until an
exact match is found (otherwise, an error message is displayed).
This works only under newer editors whose tag support includes multiple
tag file searching.
- Added support for Action Key clicks on identifiers displayed in
`help-mode' by the emacs Lisp variable and function documentation
command under newer editor versions.
- On case-insensitive OSes, automatically load OO-Browser Environment
files named `oobr' instead of `OOBR'.
===========================================================================
* V4.11-4.14
===========================================================================
CONTACT MANAGER
- Support for editing entries found from logical expression queries.
EMACS VERSIONS
- Support for XEmacs version 20 and above.
- Support for NT Emacs and XEmacs on NT.
KOUTLINER
- New Demote, Promote, Tab-Key-Inserts-Spaces and Tab-Key-Tabs-Over
items added to the Edit menu.
- Hyperbole/Koutliner menu items are now deactivated when the
current buffer is not a Koutline.
- Meta-Backspace under XEmacs now does the right thing (deletes a word
backwards by default).
HYPERLINKS
- An entry in (hpath:get-external-display-alist) used to externally display
special file types may now contain a list of executables, the first of
which is found on a system is used to do the display. The executable
to use is recomputed each time a file is displayed to account for any
changes in executables found in the search path.
- Abbreviated URLs of the form www.domain.com are now properly
recognized (there was a bug in earlier versions).
- Added support for CRLF line endings used under Microsoft OSes.
- Improved button highlighting initialization.
IMPLICIT BUTTON TYPES
- New type, gnus-push-button, for clicking on or pressing buttons
embedded in GNUS articles, e.g. to collapse and expand signatures.
- Improved debugger stack backtrace recognition and source line jumping.
- MANIFEST.suffix files are now recognized and treated like files named
MANIFEST (allowing you to browse the contents by pressing the Action
on entries within the file).
- URL browsing now uses the `browse-url-browser-function' variable to
determine which web browser to invoke. The menus have been converted
to use this variable as well. Hyperbole will automatically read
old settings of `action-key-url-function' and convert to this new
standard.
Additionally the Grail (Python-based) and Lynx (text-based) browsers
have been added to the Customization menu.
- Added initial point-and-click Python support.
MOUSE SUPPORT
- Better support for 2-button mice.
===========================================================================
* V4.10
===========================================================================
ACTION AND ASSIST KEYS
- When a region is active within your editor, the Action Mouse Key pastes
the region within the window where it is clicked.
- Better handling of selection of C++ `operator' methods.
- An Action Key press on an entry in an OO-Browser OOBR-FTR feature tag
file jumps to the definition of the entry within the source code.
- Greatly improved selection of minibuffer arguments from completion
buffers with the Action Key.
- An Action Key click on any filename with OOBR (case-sensitive) within
its name will now load the file as an OO-Browser Environment and
display its classes within the OO-Browser. (This used to work only for
Files whose exact name was OOBR or OOBR-FTR.)
- An Action Key press on a file whose suffix is .rdb now loads the file
as an InfoDock RDB in-memory relational database file. The InfoDock
RDB package is available separately as part of InfoDock.
- Added support for sending a URL to another web browser with an Action
Key click when in a W3 web browser buffer. Eliminated support for the
old Mosaic browser.
IMPLICIT BUTTON TYPES
- New type, id-cflow, used to browse C code call trees produced by
InfoDock's "id-cflow.el" module. See that file for details if you have
InfoDock.
- grep-msg type that displays source lines associated with grep messages
and compiler error messages now supports Microsoft JVC error messages.
- Improved URL identification, including support for terse URLs that
contain no protocol prefix, e.g. www.gnu.org.
CONTACT MANAGER
- The Rolo/Search-for-String (rolo-fgrep) command can now do logical
searches using prefix logical expressions surrounded by parentheses:
(or string1 string2)
(xor string1 (and string2 string3)) ;; xor is exclusive-or
(not string1)
- Accelerated location of the alphabetized insertion point for a new
contact entry by 3-fold.
KOUTLINER
- Koutlines can now be converted to nice looking HTML documents with one
command, `kexport:html', on the menus as Koutline/Export-to-HTML.
Relative identifiers, hyperlinks and idstamps are all properly exported
to the HTML document. Other cell attributes are not yet exported.
- Autonumber labels in new outlines are now terminated with a "."
rather than a space by default to better delimit labels.
- Added kotl-mode:tab-flag which can allow easy insertion of many tab
characters and can make the TAB key demote cells only when point is at
the beginning of the cell.
- Added support for indenting regions within a cell via the
kotl-mode:indent-region command.
- New menu item, Import-to-Koutline, for importing star-delimited
outlines, other koutlines and Augment-system post-numbered outlines
(ignore this if you don't know what the Augment system is).
EMACS VERSIONS
- Support for GNU Emacs version 20 and above.
DOCUMENTATION
- The Hyperbole online manual can now be browsed automatically from
within the Hyperbole distribution without the need to install it
separately within the editor.
===========================================================================
* V4.024-V4.027
===========================================================================
DOCUMENTATION
- Rewrote the Hyperbole manual for clarity and ease of reading. Added
a number of images.
ACTION AND ASSIST KEYS
- Improved recognition of local file URLs.
- Disabled the {C-c t} key which usually switches between Hyperbole
and personal mouse settings since this is too easy for novices to
press and then not know why their mouse keys have changed.
- Emacs Lisp filenames without any pathname information are
now properly displayed when the Action Key is depressed over
them and they are delimited by quotes.
- Action Key press over .dvi file names now invoke the Xdvi previewer
by default.
- Action Key press on Fortran90 identifiers now jump to their
definitions if a TAGS table has been built.
- Action Key press in a Texinfo file on an @xref, @pxref or @ref
keyword displays the associated node within the Texinfo file. An
Action Key press within the braces of the cross-reference displays the
online Info node associated with the cross-reference, if the Info
manual has already been installed.
- Image files may be displayed within the editor if the editor supports
this and image-mode is available.
- The new variable, mail-address-mode-list, determines the major modes
in which Action Key presses on <delimited> mail addresses start
composing mail to that address.
- Action Key presses on lines in ctags files (tags) or etags files (TAGS)
jump to either the pathname on the line or the definition of the tag
on the current line.
- Eliminated trailing commas from inclusion in URLs sent to a browser.
KOUTLINER
- Improved paragraph filling even more under InfoDock.
- Eliminated local {M-BS} binding if it is already bound
when the Koutliner is invoked.
- Added +V interactive reading extension for reading a Koutliner View
Spec within a Lisp command.
- Added Label-Type/Set-Label-Separator menu item for changing the
separator between Koutline cell numbers and their body text.
- Added an `Example' menu item to the Koutliner menu to simplify
interactive editing of the EXAMPLE.kotl file.
BUTTONS
- Info-directory-list setting is now recognized during
link-to-Info-node button creations.
MENUS
- Added an item to add and remove the Hyperbole Menu from the menubar.
MAIL READERS
- Updated VM interface for version 6.19.
===========================================================================
* V4.023
===========================================================================
ACTION AND ASSIST KEYS
- Action Key clicks on HTTP URLs use the Emacs internal web browser
if not running under a window system.
CONTACT MANAGER
- Date stamps are added to each rolo entry when created and updated
when edited. This feature can be toggled on and off with: M-x
rolo-toggle-datestamps RET, or via the Toggle-Rolo-Dates menu
item on the Customization menu.
- wrolo-add-hook is called after a new entry is added.
wrolo-edit-hook is called after an entry is displayed for editing.
===========================================================================
* V4.02
===========================================================================
ACTION AND ASSIST KEYS
- Support for new ID-edit mode (a part of InfoDock) that allows rapid,
cutting, copying and yanking of regions plus fast display management.
In this mode, the Action and Assist keys yank the previously selected
region at point.
- An Action Key press on a Java identifier jumps to its definition
(if an associated TAGS file or OO-Browser environment exists). The
same is true for an `@see' cross-reference within a Java comment. The
variable, `smart-java-package-path,' determines where Java
package source can be found when the OO-Browser is not in use.
- An Action Key press on a double or single quoted Emacs Lisp filename
(without any path) displays the file by looking for it among the
directories in the variable, `load-path'.
- If the Action Key is pressed on a function identifier that is defined
in the same buffer as the reference clicked upon, it will now be
displayed faster, since the func-menu package will be used. The
reference identifier will also flash when pressed, if the display
device supports this.
EMACS VERSIONS
- Further support for MS-DOS, Windows NT Emacs, and Win-Emacs.
- Fixed configuration setup problem when running Emacs on a dumb
terminal.
KOUTLINER
- XEmacs 19.14 and above: Fixed display of current viewspec in the
modeline to accommodate modeline extents (specialized modeline regions).
This eliminated an error that occurred when reading in an Koutline file.
- Fixed bug that prevented installation of Koutliner mode-specific
menubar when running InfoDock.
MENUS
- New Hyperbole/About menu item added. In minibuffer menus, this item is
found under the Doc/ menu.
- New window system menu, Hyperbole/Customization (and minibuffer menu,
Cust/) added to set Hyperbole options, including where Hyperbole link
referents are displayed, where URLs are displayed and whether to use
proportional or windowful scrolling when a Smart Key is pressed at the
end of a line.
- The default setting of where Hyperbole link references are displayed
may be set in "hsite.el" via the variable, `hpath:display-where'
(after Hyperbole has been installed using `make install').
See its documentation for detail.
- The Hyperbole/Global-Button menu now includes a menu item that will
activate each existing global button. The Hyperbole/Explicit-Button
menu does the same thing for explicit buttons in the current buffer.
CONTACT MANAGER
- Rolo-edit, bound to {e} in the rolo match buffer, now works properly
if the rolo is loaded before the rest of the Hyperbole system.
===========================================================================
* V4.00 and V4.01
===========================================================================
ACTION AND ASSIST KEYS
- New variable, action-key-url-function, sets the function used to
display URLs which are activated as implicit buttons with the Action
Key.
- Action or Assist Key presses at the end of a line now scroll
proportionally, by default. See the documentation for the variable,
smart-scroll-proportional, and the Smart Scrolling section of the
Hyperbole DEMO file, for more information.
- Fixed bug that prevented browsing Info files in dired with the Action
Key.
BUTTON TYPES
- "hsys-w3.el" is now automatically loaded so that the Action Key can
follow URLs by default. It defines the implicit button type, www-url.
- New implicit button type, text-toc, makes table of contents entries in
README files jump to the associated section of the file. Try it with
this file once you have loaded the current version of Hyperbole.
DOCUMENTATION
- A lot of work has gone into reorganizing and rewriting the Hyperbole
manual to improve its readability and completeness. A full chapter on
the Koutliner has been added. Please take some time to read the parts
of interest to you and send your feedback on what is good and what is
not to the mail list, <hyperbole@hub.ucsb.edu>.
EMACS VERSIONS
- MS-DOS and Windows NT Emacs 19 or Win-Emacs: Made Hyperbole work under
all of these PC Emacs versions.
- Emacs 19: Fixed bug that prevented Action Key selection of minibuffer
menu items.
- Emacs 19: Hyperbole menubar menus are now properly displayed.
- Emacs 19: Action Key press on a filename that has a .info suffix
displays the Top node for that info file in the Info browser.
KOUTLINER
- You can now view and edit koutlines with blank lines between cells
turned off. {C-c b} now toggles between showing or hiding blank lines.
- Minibuffer menu item Otl/Below renamed to Otl/Downto so could add
Otl/Blanks which toggles blank lines on and off.
- {C-c C-o} which displays one line per cell, for an overview, now also
turns off blank lines.
- {C-c C-i} adds an attribute to the current cell. It changes the
attribute's value if it already exists. Completion on existing
attribute names from the cell is provided.
- {C-c h}, which displays cell attributes, when given "0" as the cell id
now displays the zero cell's attributes in addition to any other
attributes shown.
- By default, the Koutliner separates labels from cell contents by
two spaces. If you want to change the separator for the current
outline, use {C-c M-l}. {C-u C-c M-l} will additionally change
the default separator value used when new outlines are created.
- If you invoke {M-x kotl-mode RET} on a non-read-only, non-koutline
buffer, it converts each paragraph in the buffer into a level 1 cell,
and thereby creates a koutline buffer. The conversion uses the
buffer-specific variable, `paragraph-start' to determine the paragraphs
in the buffer.
- If you save a koutline to a file whose name does not end in .kotl,
e.g. with {C-x C-w} (kfile:write), it will still be treated as a valid
koutline when you read it in again. You can create a koutline file
without the standard suffix via {M-x kfile:find RET} or by converting a
buffer to a koutline via {M-x kotl-mode RET}.
- Each koutline now maintains a current view setting that is saved with
the outline and restored when it is first displayed. View settings
include: show/hide blank lines, show a fixed number of lines per cell,
show a fixed number of levels in the outline, show all lines and cells,
show/hide ellipses after truncated outline entries, set cell numbering
(label) types.
- View settings are controlled by single character codes called view
specs. The current view spec setting for a koutline appears in the
modeline following the name of the outline. The current view spec
setting may be changed interactively with {C-c C-v}.
See <${hyperb:dir}/kotl/EXAMPLE.kotl, 2b16=048> for details on valid
view specs.
- Minibuffer menu item Otl/View changed to Otl/Vspec to set a view
specification. Use {C-x C-r} to view a Koutline in read-only mode.
- Added View menu to Koutliner popup and pulldown menus. Moved
view-related tree operations from Tree menu to View menu.
- Fixed importation of star outline and Augment-style files.
- The elements of a another buffer or file may be inserted into a
koutline as a set of cells by using the {C-x i} command. When prompted,
you may use a buffer name or file name from which to insert.
The cells will be inserted as the successors of the current cell unless
{C-u C-x i} is used and then they are inserted as the initial children
of the current cell.
See the documentation for the variables, kimport:mode-alist and
kimport:suffix-alist, for information on mode and suffix-specific
conversions performed on files before they are inserted.
Use {M-x kimport:insert-file-contents RET} to insert the entire
contents of a file into the current cell at the location of point.
- {M-x kimport:file RET} will prompt for a file and a new koutline file
to create and will insert the elements of the file in the new outline.
(You can also use buffer or buffer names as arguments instead of file
names.) See the documentation for the variables, kimport:mode-alist
and kimport:suffix-alist, for information on how the importation type
is determined.
- {C-c +} appends the contents of one cell to the end of another. Added
this as Append-Cell to popup and pulldown menus.
- {M-w}, copy-region, now works properly in read-only outlines.
CONTACT MANAGER
- {e} within a rolo match buffer edits the associated entry within your
rolo source file. Fixed bug that caused {e} to fail when entries
are collapsed within the match buffer.
- {C-h h r e}, rolo-edit, just displays your personal rolo file if you
hit {RET} without specifying an entry name to edit.
- {m} within a rolo match buffer composes mail to the the e-mail
address at point or the first address following point. Also added as
Rolo/Mail minibuffer menu item and Rolo/Mail-to-Address for window
system menus.
- New variable, wrolo-yank-reformat-function, permits reformatting of an
entry yanked into the current buffer with {C-h h r y}, rolo-yank.
WINDOW CONFIGURATIONS
- The minibuffer menu items, Win/PopRing and Win/YankRing now redisplay
the Win menu after performing their actions. This allows you to yank
or pop window configurations repeatedly until you get to the one you
want.
|