-
Notifications
You must be signed in to change notification settings - Fork 49
/
Copy pathNEWS
243 lines (159 loc) · 8.12 KB
/
NEWS
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
* Under development (as of 2024-12-31)
- Fixes ::
fix: #177 Infinite loop when saving buffer with transclusions
Fixing a long-lasting (issue open since March 2023, but it had been an
known issue before it) issue that was difficult to reproduce.
The fix is to stop using the text-properties of the transclusion that
hold markers of beginning and ending points of itself, which is meant
to remember and indicate its own the location; or the range of "this"
transclusion at point. The text-properties are named
`org-transclusion-beg-mkr' and `org-transclusion-end-mkr'. They are
replaced with use of a new text-property `org-transclusion-id' and
function `org-transclusion-at-point'. This new function uses
`prop-match' with `org-transclusion-id' to identify the range of "this"
transclusion at point only when it is needed, thus eliminating the need
for memorizing it as a pair of markers.
Stable reproduction was achieved and recorded in a comment to the GitHub
issue at
https://github.com/nobiot/org-transclusion/issues/177#issuecomment-2108453402.
A quick summary of the design hitherto and how the infinite loop occurs
is as follows:
[Fact / design of org-transclusion]
- Each transclusion has text-properties org-transclusion-beg-mkr and
org-transclusion-end-mkr.
- They hold markers to keep track of where the transclusion begins and
ends.
[Now what happens]
- In some combination of undo and buffer-save with transclusions, the
markers can temporarily point to non-existing locations in the
buffer.
- If the garbage collection happens to run at this moment, it will
sweep these pointers. Now they end up pointing to start of the buffer
(point 1).
* 1.4.0 (2024-05-20)
- Features ::
Transclude content over network protocols like http:// (with
org-transclusion-http: https://git.sr.ht/ushin/org-transclusion-http) and
hyper:// (with hyperdrive-org-transclusion:
https://git.sr.ht/~ushin/hyperdrive-org-transclusion). Splitting
org-transclusion-add into two parts enables functions in
org-transclusion-add-functions to be asynchronous.
- chg: #213 Allow making transclusion links from any protocol link
- refactor: #209 Split -add-payload from -add to enable async transclusion
add :things-at-point (or :thingatpt) property for transcluding
source and other non-org text files. Both property names are synonym
with each other and work in the same way.
add org-block-live-sync
- Command 'org-transclusion-live-sync-start' now can start live sync
when
1) transcluding a source code text file
2) into org src block with the ':src' property in #+transclude
Example: #+transclude: [[python-1.py]] :src python
add org-transclusion-detach
- New command 'org-transclusion-detach' can be used on the
transclusion at point. It turns it into a normal, edtitable text
content.
You can undo this operation.
In addition, you can press 'C-d' directly on the transclusion at
point to detach it. This is because the command is bound to 'C-d'
by default in 'org-transclusion-map'.
- 'org-transclusion-refresh' now accepts universal argument such as
'C-u M-x org-transclusion-refresh' and detaches the transclusion
at point.
You can undo this operation.
- 'org-transclusion-add' now accepts universal argument such as 'C-u
M-x org-transclusion-add' and copies the source content rather
than transclude it.
You can undo this operation.
- Limitation: Undo detach does not add the overlay back on the
source. This should not break any feature. You can safely refresh
the transclusion and recover the source overlay. You can also
safely open or moved to the source.
- Fixes
fix: #212 org-transclusion-make-from-link should not add
transclusion link in next org heading
fix: #211 Don't ever prompt to create a headline when transcluding
docs: #210 Update docstring for org-transclusion-with-inhibit-read-only
fix(src-lines): #219 Use end-pos in org-transclusion-content-range-of-lines
fix(src-lines): #192 error when :thing-at-point nil
fix: #174 add faces back org-transclusion and org-transclusion-source
* 1.3.2
- fix: Delete superfluous trailing space on remove
Before the fix, function 'org-transclusion-keyword-plist-to-string'
would add a superfluous trailing space when converting #+transclude
keyword's properties back to the string. This does not cause any
harm in normal circumstances.
The issue would occur with a rare combination of the case where:
+ You have a buffer with a large number of transclusions activated,
around 50 or more
+ You set a 'whitespace-cleanup' in 'before-save' hook
+ You have 'auto-save-visited-mode' or similar that automatically
saves a buffer
If you had combination, and then saved the buffer with the
transclusions, you might get an error mid-way of the save operation.
You would not lose any data in the buffer, but the buffer would not
re-activate all the transclusions that had been active before
buffer-save.
This was because of the superfluous trailing spaces and automatic
removal of them, which caused the mismatch of the point of each
transclusion that Org-transclusion remembered during the save
operation.
* Version 1.3.1
- build: fix #154 missing org-transclusion-pkg.el
Nix requires -pkg.el. It was in ‘.elpaignore’. No functional change.
* Version 1.3.0
- Feature ::
- add: #145 a new property and filter to expand links to absolute
file names (Org only) use :expand-links per transclusion
- Fix ::
- fix: #131. For non-Org files, now the transcluded text respects
the indent level of the #+transclude keyword. This does not affect
Org files.
* Version 1.2.0
- Feature ::
- add: org-transclusion-after-add-hook
- Fix ::
- fix: org-transclusion-map now inherits org-mode-map (thanks to
ag91 [1])
- fix: reverting 252ec675; shouldn't remove the extra space at the
end of transclusions from Org
- fix: #115 allow adding #+name, etc. before #+transclude keyword
(don't remove affiliated keywords when
org-transclusoin-remove)
* Version 1.1.1
- Fix ::
- Fix rare but destructive issue where buffer text content could be
deleted by removing a transclusion. This could happen by killing a
second Emacs instance (batch or online) or buffer, while the first
Emacs keeps transclusions added
- Other:
- User Manual now refers to v1.1.x
* Version 1.1.0
- Change ::
- add:inhibit-read-only: fix:Org export errors with read-only With
this, noweb expansion works now (limitation removed)
- Fix ::
- fix:#105 org-element--cache issue for Org v9.6 Remove use of
silent-modificaiton & inhibit-modification-hook - fix:add-all not
to stop with error in one trasclusion - fix:Remove extra
space/line added to Org elements transcluded
- Other ::
- README, Info doc user manual, online user manual
* Version 1.0.1
- Add .elpaignore
- Bump up version only to enable ELPA; no functional changes
* Version 1.0.0
- Initial version available on ELPA (https://elpa.gnu.org/)
- Feature ::
- =:end= property and a search term to dynamically define a range of
lines to transclude for text and source code block
- Change ::
- Now user option =org-transclusion-include-first-section='s default value
is changed to =t=. This seems to be more intuitive for more users
- Fix ::
- =org-transclusion-before-kill= now checks if the buffer to be
killed contains any transclusion AND it is visting a file before
saving. This fixes some issues related to temp buffers, etc.
- fix: search options for src-lines extension for =:lines=, =:src=,
and =:end= properties
† Changes before Version 1.0.0 are in CHANGELOG file.