summaryrefslogtreecommitdiff
path: root/NEWS
blob: 6bea12f149eeb0679d6e5e573390aa8a5edbd593 (plain)
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
Yasnippet NEWS -- history of user-visible changes.

Copyright (C) 2017-2018 Free Software Foundation, Inc.
See the end of the file for license conditions.

* 0.13.0 (May 13, 2018)

** Changes

*** Snippets for Yasnippet must now be installed separately.  The
submodule linking to yasnippet-snippets was removed, as were the
"classic" snippets that came with the GNU ELPA package.  The latter
can now be installed via the 'yasnippet-classic-snippets' package from
GNU ELPA.
See Github #848, #858, #834, #775.

*** 'snippet-mode' no longer derives from 'text-mode'.
It will derive from 'prog-mode' where available (Emacs 24.1 and newer)
or 'fundamental-mode' otherwise.  See Github #826.

*** The default value of 'yas-key-syntaxes' is changed
Longer snippet abbrev keys are now preferred over shorter ones.
See Github #805.

*** New snippets are now created for the current major mode by default
Previously, extra activated modes could be guessed first.
See Github #875.

*** Yasnippet supports 'unload-feature' via 'yasnippet-unload-function'
See Github #753, #891.

*** New command 'yas-skip-and-clear-field' conditionally bound to 'C-d'
replaces obsoleted 'yas-skip-and-clear-or-delete-char'.  The new
function may be bound to any key via the conditional binding value
'yas-maybe-skip-and-clear-field', instead of hardcoding the
'delete-char' fallback action.  See Github #408, #892.

*** 'yas-lookup-snippet' now returns a struct
This allows 'yas-expand-snippet' to take looked up snippet's
environment into account.  'yas-expand-snippet' handles both
structured snippets, and plain text snippet bodies.
See Github #897.

** Fixed bugs

*** Avoid crashing due to Emacs Bug#30931
This prevents yasnippet's routines from triggering the bug, although
it is still possible to trigger it independently.

*** Don't enable undo when it's disabled

*** yas-also-auto-indent-first-line is once again respected
Yasnippet was behaving as if it was always t for single line snippets.
See Github #912.

*** Fixed handling of fixed indent with fields at beginning of line
See Github #906, #908.

*** Fixed incorrect snippets leaving "bad memory"
and possibly corrupting future expansions.
See Github #800.

*** 'global-whitespace-mode' now functions in new snippet buffers.
To fix this, the buffer name for new snippet buffers is now '+new
snippet+' instead of '*new snippet*'.  See Github #842.

*** Nest snippet expansion may clear default field text
See Github #844.

*** Fixed undo list corruption snippet expand+indent.
See Github #869.

*** The '# --' marker in snippets now allows trailing whitespace.
See Github #862.

*** Fixed handling of nested simple $n fields
See Github #824, #894.


* 0.12.2 (Aug 28, 2017)

** The new option 'yas-also-auto-indent-empty-lines' allows restoring
the old indent behavior.  See Github #850, #710, #685, #679.

** Keybinding triggered snippets once again deactivate the mark.
See Github #840.


* 0.12.1 (Jul 23, 2017)

This is a quick bugfix release.

** Compilation errors in yasnippet-tests.el and yasnippet-debug.el are fixed.

** A snippet-local setting of 'yas-indent-line' is now respected
during indentation triggered by auto-fill as well.  See Github #838.


* 0.12.0 (Jul 17, 2017)

** Changes and New Features

*** Snippets can now expand in strings & comments by default again.
'yas-buffer-local-condition' is now a defcustom See Github #774.

*** 'yas-after-exit-snippet-hook' can now be bound in 'expand-env' of
snippets.  See Github #28, #702, #779, #786.

*** Snippets under directories in 'yas-snippet-dirs' are now in
snippet-mode automatically.

*** Snippets can now be expanded in org source blocks, if
'org-src-tab-acts-natively' and 'org-src-fontify-natively' are set.
See Github #761.

*** 'yas-fallback-behavior' is now obsolete, 'yas-expand' is now bound
conditionally with an extended menu item, 'yas-maybe-expand'.
Therefore users wanting to bind 'yas-expand' to a different key, SPC
for example, should do

    (define-key yas-minor-mode-map (kbd "SPC") yas-maybe-expand)

See Github #760, #808.

*** The documentation build output is now reproducible.  The timestamp
now depends on the commit date, or the environment variable
SOURCE_DATE_EPOCH is that is set.

*** 'yas-indent-line' and 'expand-env' are now respected during mirror
updates.  See Github #743.

*** New function 'yas-active-snippets'.  Renamed from
'yas--snippets-at-point', which remains as an obsolete alias.  See
Github #727.

*** New custom option 'yas-overlay-priority'.  This is can be used to
give the snippet navigation keymaps higher priority than keymaps from
overlays created by other packages, like 'auto-complete'.  See Github
#828.

** Fixed bugs

*** Snippets having ${0:soon-to-be-deleted} with no other fields now
correctly put the field 0 text in the active region after exiting.
See Github #653.

*** Fix undo of snippet insertion which also triggers indentation.
See Github #821.

*** Fixed a bug causing whitespace loss between mirrors.

*** Fixed several bugs causing problems when combining Yasnippet with
other modes and packages, like 'auto-fill-mode', 'c++-mode',
'rust-mode', and 'lentic'.

**** Fix another bug with auto-fill-mode.
See Github #784, #794.

**** Fix a bug in parsing of snippet fields for modes that use the
'syntax-table' text property, 'c++-mode' is one example of this.  See
Github #815.

**** 'syntax-propertize-function' is now restored before indenting the
snippet.  This improves compatibility with modes which rely on it for
indentation, like 'rust-mode'.  See Github #782, #818.

**** Avoid trying to delete a snippet which is already deleted.  This
prevents an error when using 'rust-mode's 'rust-format-buffer'
command.

**** Ensure inhibit-modification-hooks is nil while modifying buffer.
This fixes problems for packages relying on modification hooks, like
'lentic'.  See Github #756, #712.


* 0.11.0 (Oct 26, 2016)
** Changes and New Features

*** Modifying buffer in backquoted expressions is deprecated!
Backquoted expressions should only return a string that will be
inserted.  Snippets which modify the buffer as a side-effect will now
trigger a warning.

*** The verbosity levels for messages have been adjusted.
While the default verbosity level was increased by 1 (it was only
lower before due to a bug), several messages now only print at the
level 4, so the overall effect should be less messages by default.

*** Saving and loading snippets has been streamlined.  Saving the
snippet to a file will now automatically load it.  Additionally, the
buffer will be renamed from "*new snippet*" to whatever the snippet is
named.  See also Github #718, #733, and #734.

*** `yas-escape-text' no longer signals an error when given nil.

*** `yas-describe-tables' is split into simpler commands.
**** `yas-describe-tables' takes a prefix arg to show non-active tables.
**** New command `yas-describe-tables-by-namehash' shows table by namehash.

*** Use the region contents as the snippet body of new snippets.

*** The dependency on `cl' is removed.
Yasnippet now only requires `cl-lib'.

** Fixed Bugs

*** Fix field navigation (tabbing) in the backwards direction.
See Github #722

*** Add support for deprecated yas/ symbols in `yas-define-menu'.
It was left out by accident.  This support is conditional on
`yas-alias-to-yas/prefix-p', just like other obsolete yas/ bindings.

*** Fix overriding of snippet by a new snippet with same uuid.
See Github #714.

*** Fix handling of snippets with 2 mirros on the same line.
See Github #712.


* 0.10.0 (June 11th, 2016)

** Changes and New Features

*** Yasnippet now prints far fewer message by default.
See Github #682, #683.

*** `yas-wrap-around-region' can be set to a register.
The register's content will be used.  This is like the old `cua'
option, but can be used with any register and doesn't require enabling
cua-mode.

*** Clearing of snippet fields is now decided by the command's effect.
The `delete-selection' property is no longer consulted.  See Github #662.

*** Empty lines in snippet expansion are no longer indented.
See Github #679.

*** All lines from mirror output are now indented.
See Github #665.

*** New variable yas-alias-to-yas/prefix-p
See Github #696, #699.

*** New function yas-next-field-will-exit-p
See Github #561.

*** `snippet-mode' is now autoloaded.

** Fixed Bugs

*** Fix incompatibility with Emacs 25 and haskell-mode.
This should also help other modes with a non-nil syntax-propertize
function.  See Github #687.

*** Text property changes no longer disable snippets.
This prevents cc-mode based modes from causing premature exit of
snippets.  See Github #677.

*** Fields are now transformed correctly after `yas-next-field'.
See Github #381.

*** The $> construct is now escaped correctly, and documented.
See Github #640.

*** Avoid corruption of snippet content when loading from files.
See Github #707 and Emacs bug #23659.

*** `yas-wrap-around-region' now works for snippets with fields
farther down the buffer than $0.  See Github #636.

*** The active region is deleted when using `yas-expand'.
This makes it consistent with `yas-insert-snippet'.  See Github #523.

*** Fix mirror+autofill interaction.
See Github #643 and http://emacs.stackexchange.com/q/19206/5296.

*** Snippet insertion no longer adds irrelevant strings to kill ring.
See Github #675.


* 0.9.1 (April 3rd, 2016)

** Changes and New Features

*** Noam Postavsky is now the official yasnippet maintainer.

*** `yas-visit-snippet-file' now works for compiled snippets (see Github #597).

*** New function `yas-lookup-snippet' (see Github #595, #596).

*** .emacs.d/snippets directory is now created automatically.
If that value is present in `yas-snippet-dirs' (see Github #648).

*** Default value for `yas-snippet-dirs' now uses `user-emacs-directory'
instead of hardcoding "~/emacs.d" (see Github #632).

*** `yas-visit-snippet-file' no longer overrides `yas-prompt-functions',
see Github #576.

*** The defaults for prompting have changed.
`yas-x-prompt' is no longer present in the default value of
`yas-prompt-functions'.

The new function `yas-maybe-ido-prompt' (which performs ido prompting
if `ido-mode' is enabled) replaces `yas-ido-prompt' (which always
performs ido prompting).  Previously the behaviour was dependent on
the Emacs version being used.

*** The default value of `yas-buffer-local-condition' now works for `yas-insert-snippet' too.
See Github #305.

*** The default value of `yas-new-snippet-default' no longer inserts `require-final-newline: nil'.
It was redundant, since `mode: snippet' already accomplishes the same.
`binding: ${4:direct-keybinding}}' is also removed, as it is hardly
ever wanted.

*** Snippet fields are only cleared by commands with `delete-selection' property,
See Github #515, #644.

*** `yas-initialize' (and backward compat alias `yas/initialize') are restored,
but marked obsolete, use (yas-global-mode +1) instead.  See Github
#546, #569.

*** `yas-key-syntaxes' is much more powerful and accepts functions.
Enables use cases when discovering keys based on buffer syntax is not
good enough.  See issue #497.

*** Documentation rewritten in org-mode and updated.
A tremendous effort by Noam Postavsky.  Hopefully easier to maintain
and navigate.  Available at <http://joaotavora.github.io/yasnippet>.

*** Snippets are now maintained in their own repo.
Snippets live in Andrea Crotti's
<https://github.com/andreacrotti/yasnippet-snippets>.  See README.md
for more details.

*** Textmate snippet importer moved to separate `yasmate' repo.
URL is <https://github.com/joaotavora/yasmate>.  See README.md for
more details.

*** `yas-snippet-dirs' now allows symbols as aliases to directories.
The added level of indirection should allow more esoteric
configurations (see Github #495).

*** `yas-reload-all' can now jit-load when called interactively.

*** New `yas-after-reload-hook' run after `yas-reload-all'.
See <https://github.com/pezra/rspec-mode/pull/75> for the discussion
leading up to this change.

*** New functions `yas-activate-extra-mode' and `yas-deactivate-extra-mode'.
These are preferable to setting `yas-extra-modes' directly in the mode
hook (see issue #420 for more information).

*** New variable `yas-new-snippet-default'.
The default snippet suggested on `yas-new-snippet' can now be
customized.

** Fixed bugs

*** `yas-expand' now sets `this-command' when falling back to another command.
Previously it was setting `this-original-command', which does not
match the documented semantics.  See Github #587.

*** Github #537: Be lenient to extensions operating on snippet fields.

*** Github #619: Parents of extra modes are now activated too.

*** Github #549: `yas-verbosity' is now applied to `load' calls too.

*** Github #607; avoid obscure Emacs bug triggered by overlays in *Messages* buffer.
It was triggered by yasnippet+flycheck+highlight-parentheses.  See
also <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21824>

*** Github #617; fix x prompt when snippet inserts many lines.

*** Github #618; avoid breakage if `scan-sexp' modifies match data.
Which it does in Emacs 25.

*** Github #562: Deleting inner numberless snippet caused an error.

*** Github #418, #536: Fix navigation to zero-length fields at snippet end.

*** Github #527, #525 and #526: Attempt to prevent "fallback loops"
when interactiing with other extensions that use similar fallback
mechanisms.


* 0.8.0 (August 2012)

** Changes and New Features

*** All YASnippet symbols now prefixed with `yas-'.  Keep old `yas/' versions as aliases.

*** Yasnippet is now Free Software Foundation's copyright.

*** `yas-dont-activate' can be a list of functions.

*** Snippets are loaded just-in-time .
Thanks to Matthew Fidler for a lot of input with the implementation.

*** yasnippet-bundle.el is no longer available.
Use `yas-compile-directory' instead if you need the speed advantage.

*** New functions `yas-compile-directory' and `yas-recompile-all'.
This feature is still undocumented.  Generate a
.yas-compiled-snippets.el file in the directory passed where snippets
are compiled into emacs-lisp code.

*** New `yas-verbosity' variable.

*** Interactively calling `yas-exit-snippet' exits most recently inserted snippet.

*** Using filenames as snippet triggers is deprecated.

*** Default value of `yas-show-menu-p' is `abbreviate'.

*** `yas-visit-snippet' ignores `yas-prompt-functions'.

*** `yas-buffer-local-condition' restricted to trigger-key expansions by default.

*** `yas-load-snippet-buffer' (`C-c C-c') in `snippet-mode' has been much improved.

*** New variable `yas-expand-only-for-last-commands', thanks Erik Postma.

*** New variable `yas-extra-modes' aliases old `yas/mode-symbol'.

*** New `yas-describe-tables' command.

*** New `yas-define-condition-cache' macro.
This defines an optimised function for placing in a `# condition:'
directive that will run at most once per snippet-expansion attempt.

*** Mirrors can occur inside fields.

*** New `# type: command' directive.
This feature is still largely undocumented.

*** A hidden .yas-setup.el is loaded if found in a snippet directory.

*** `yas-wrap-around-region' can now also be `cua' (undocumented feature).

*** Make menu groups automatically using new .yas-make-groups file.

*** Per-snippet keybindings using `# keybinding:' directive.

*** More friendly `yas-expand-snippet' calling convention.
This breaks backward compatibility.

*** The `# env:' directive is now `# expand-env:'.

*** Setup multiple parent modes using new .yas-parents file.

** Fixed bugs

*** Github #281: jit-load snippets in the correct order.

*** Github #245: primary field transformations work inside nested fields.

*** Github #242: stop using the deprecated `assoc' library.

*** Github #233: show direct snippet keybindings in the menu.

*** Github #194, Googlecode 192: Compatibility with `fci-mode'.

*** Github #147, Googlecode 145: Snippets comments were getting inserted.

*** Github #141, Googlecode 139: searching buffer in embedded elisp works slightly better.
Issue is still open for analysis, though

*** Github #95, Googlecode 193: no more stack overflow in org-mode.


----------------------------------------------------------------------
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.


Local variables:
coding: utf-8
mode: outline
paragraph-separate: "[ 	]*$"
end: