]> code.delx.au - gnu-emacs-elpa/log
gnu-emacs-elpa
7 years agoRelease 0.10.0
Noam Postavsky [Sat, 11 Jun 2016 18:37:09 +0000 (14:37 -0400)]
Release 0.10.0

- Update NEWS
- Bump version number
- update snippets submodule

7 years agoAvoid bug in insert-file-contents with REPLACE=t
Noam Postavsky [Tue, 31 May 2016 00:21:19 +0000 (20:21 -0400)]
Avoid bug in insert-file-contents with REPLACE=t

* yasnippet.el (yas--load-directory-2): Call `erase-buffer' before
`insert-file-contents' instead of passing non-nil REPLACE, avoids Emacs
bug #23659.

Fixes #707.

7 years agoFix broken links in README.mdown
João Távora [Tue, 24 May 2016 07:24:18 +0000 (08:24 +0100)]
Fix broken links in README.mdown

After the Github acocunt name change (capitaomorte -> joaotavora),
most links to repositories are redirected excpect Travis CI and
Github Pages (documentation).

* README.mdown: Fix documentation and Travis badge links

7 years agoRename yas-backport-obsolete-alias
Noam Postavsky [Sun, 15 May 2016 01:46:12 +0000 (21:46 -0400)]
Rename yas-backport-obsolete-alias

* yasnippet.el (yas-alias-to-yas/prefix-p): Rename from
yas-backport-obsolete-alias.
(yas/root-directory): Only define if yas-alias-to-yas/prefix-p is
non-nil.  Mark obsolete.

7 years agoAdd yas-backport-obsolete-alias option
USAMI Kenta [Sat, 14 May 2016 16:28:42 +0000 (01:28 +0900)]
Add yas-backport-obsolete-alias option

* yasnippet.el (yas-backport-obsolete-alias): New option.

7 years agoExtra measures to prevent premature yas-minor-mode
Noam Postavsky [Sat, 14 May 2016 11:18:38 +0000 (07:18 -0400)]
Extra measures to prevent premature yas-minor-mode

The user's hooks may try to enable yas-minor-mode before yasnippet.el
has finished loading.  In [1], we catch and ignore the errors arising
from this, but it's better if we can avoid hitting the error in the
first place.

This means we have 3 separate measures to avoid the problem, but since
this bug can leave Emacs unusable due to a failing post-command-hook,
a bit of redundant safety is not a bad thing.

* yasnippet.el (yas-minor-mode): Only turn on if yasnippet is fully
loaded.
(yas--font-lock-keywords): Disable user hooks.

[1]: "Avoid potential problems with user's hooks"
4c6064ce1aff07fe4481b5e2d987c8a7f044c207

7 years agoDon't use major-mode syntax-propertize-function
Noam Postavsky [Thu, 12 May 2016 09:41:08 +0000 (05:41 -0400)]
Don't use major-mode syntax-propertize-function

during snippet creation.  The snippet creation manipulates the
syntax-table which can lead to conflicts (see also
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23443).

* yasnippet.el (yas-expand-snippet): Let-bind syntax-propertize-function
to nil and then call syntax-ppss-flush-cache afterwards.

7 years agoFix field transform application in yas-next-field
Noam Postavsky [Thu, 12 May 2016 08:57:08 +0000 (04:57 -0400)]
Fix field transform application in yas-next-field

* yasnippet.el (yas--apply-transform): Don't let-bind yas-moving-away-p
to nil, it's nil by default.
(yas-next-field): Call `yas--field-update-display' instead of only
calling `yas--eval-lisp' so that the result of the transform is inserted
into the buffer.

7 years agoFix outdated and misformatted docs
Noam Postavsky [Tue, 10 May 2016 16:21:14 +0000 (12:21 -0400)]
Fix outdated and misformatted docs

yas-find-snippets was removed by [1].

* doc/snippet-development.org: Add keybindings on same line as command
names, fixup intra document links, and remove mention of non-existent
command yas-find-snippets.
* yasnippet.el (yas-load-snippet-buffer):
(yas-load-snippet-buffer-and-close): Fix docstring formatting.

[1]: "cleanup: remove `yas/find-snippets\', complicated and no one seems
to use it anyway" 29 May, 2012 433c93746534ebb062afe4dbc7690f736be72d42.

7 years agoDocument $> and fix escaping
Noam Postavsky [Sun, 8 May 2016 19:32:20 +0000 (15:32 -0400)]
Document $> and fix escaping

* doc/snippet-development.org: New "Indentation markers" section.
* yasnippet-tests.el (indentation-markers): New test.
* yasnippet.el (yas--indent-markers): New variable.
(yas--indent): Use it instead of searching for $> directly.
(yas--indent-parse-create): New function, records occurences of $> into
`yas--indent-markers'.
(yas--snippet-parse-create): Call it.

7 years agoDon't indent empty lines in snippet expansion
Noam Postavsky [Wed, 4 May 2016 16:35:48 +0000 (12:35 -0400)]
Don't indent empty lines in snippet expansion

* yasnippet.el (yas--indent-region): Indent only non-empty lines.
* yasnippet-tests.el (basic-indentation): Add empy and non-empty (but
blank) lines in test snippet.

7 years agoMake yasnippet less chatty
Noam Postavsky [Mon, 25 Apr 2016 23:14:39 +0000 (19:14 -0400)]
Make yasnippet less chatty

Make sure output that occurs in normal use goes to verbosity levels 3 or
higher, and level 2 and below are reserved for something unexpected
happening.  Level 3 (the new default) should be a reasonably quiet but
informative level.

* yasnippet.el (yas--read-keybinding, yas--safely-run-hooks):
(yas--on-protection-overlay-modification): Put warnings at verbosity
level 2.
(yas--load-yas-setup-file, yas-load-directory):
(yas--load-directory-1, yas--load-snippet-dirs):
(yas-expand-snippet, yas--load-pending-jits): Put per-file loading and
other debug messages at level 4.
(yas-load-snippet-buffer, yas--template-get-file, yas-reload-all): Put
top level loading messages at level 3 (or 2 if there were errors).
(yas--define-menu-1, yas-insert-snippet, yas-tryout-snippet): Put error
messages at level 1.
(yas-verbosity): Reduce default verbosity to level 3.

7 years agoFix some doc formatting
Noam Postavsky [Sun, 1 May 2016 02:29:57 +0000 (22:29 -0400)]
Fix some doc formatting

* doc/snippet-development.org (Template Syntax):
(Placeholder fields, Mirrors): Text inside dedicated target <<angle
brackets>> does not show up in output, so duplicate it.  Add
descriptions to avoid getting numbers instead of names in links.

7 years agoSupport htmlize.el in Rakefile doc target
Noam Postavsky [Sun, 1 May 2016 02:11:49 +0000 (22:11 -0400)]
Support htmlize.el in Rakefile doc target

Htmlized output can now be produced by

    rake doc[/path/to/htmlize/]

* Rakefile (doc): Add htmlize argument.
* doc/yas-doc-helper.el (yas--generate-html-batch): Tell org to use css
selectors only when exporting htmlized faces.
* doc/stylesheets/manual.css: Add styles for faces used by org export.

7 years agoFix fields following $0 + region insertion
Noam Postavsky [Wed, 27 Apr 2016 03:26:00 +0000 (23:26 -0400)]
Fix fields following $0 + region insertion

When inserting text due to a  non-nil yas-wrap-around-region and the
snippet had fields occuring later in the buffer than $0, the insertion
of the text was shifting the location of later fields, thus invalidating
the calculation of yas--dollar-regions.

* yasnippet.el (yas--simple-mirror-parse-create): Don't insert text fo
yas-wrap-around-region here.
(yas--snippet-parse-create): Do it here, after deleting
`yas--dollar-regions`, instead.

7 years agoDelete active region for trigger key expansion
Noam Postavsky [Fri, 29 Apr 2016 00:20:55 +0000 (20:20 -0400)]
Delete active region for trigger key expansion

This makes yas-expand-from-trigger-key consistent with
yas-insert-snippet.

* yasnippet.el (yas-expand-from-trigger-key): Expand start end interval
with active region.

7 years agoRevert "Disable region wrapping for trigger key expansion"
Noam Postavsky [Thu, 28 Apr 2016 23:21:07 +0000 (19:21 -0400)]
Revert "Disable region wrapping for trigger key expansion"

This reverts commit f8d1af1f50f42ac1689c583c152c3b15e8774ae4.

Disabling this for trigger key introduced an inconsistency that is more
complicated to implement and document than simply fixing region wrapping
for trigger key expanded snippets.

7 years agoDisable region wrapping for trigger key expansion
Noam Postavsky [Wed, 27 Apr 2016 02:54:47 +0000 (22:54 -0400)]
Disable region wrapping for trigger key expansion

It's too awkward to highlight the relevant text while maneuvering point
in front of the trigger key.

* yasnippet.el (yas-expand-from-trigger-key): Let-bind
yas-wrap-around-region to nil if it was t.
* doc/snippet-expansion.org: Document it.

7 years agoImprove documentation for new register option
Noam Postavsky [Wed, 27 Apr 2016 02:37:05 +0000 (22:37 -0400)]
Improve documentation for new register option

* doc/snippet-expansion.org: Add new section about
yas-wrap-around-region.
* yasnippet.el (yas-wrap-around-region): Improve docstring.

7 years agoAdd register option for yas-wrap-around-region
Noam Postavsky [Thu, 10 Dec 2015 04:15:39 +0000 (23:15 -0500)]
Add register option for yas-wrap-around-region

Replace `cua' setting with more general behaviour that can use any given
register.  A `cua' setting is converted to ?0 for backwards
compatibility.

* yasnippet.el (yas--simple-mirror-parse-create): Use contents of any
  register depending on `yas-wrap-around-region' value.
(yas-wrap-around-region): Update docstring.

7 years agoIndent multi-line output from mirrors
João Távora [Fri, 4 Mar 2016 17:34:40 +0000 (17:34 +0000)]
Indent multi-line output from mirrors

* yasnippet.el (yas--indent-region): Adapted and redesigned from
`yas--indent-according-to-mode'
(yas--indent-according-to-mode): Deleted.
(yas--indent): Use `yas--indent-region'.
(yas--real-line-beginning): Deleted.
(yas--update-mirrors): Always re-place active field overlay if it
exists.  Pass the snippet to `yas--mirror-update-display'.
(yas--mirror-update-display): Indent the mirror text after
inserting the reflection.

7 years agoAdd new tests for multi-line mirror indentation
João Távora [Fri, 4 Mar 2016 12:55:08 +0000 (12:55 +0000)]
Add new tests for multi-line mirror indentation

* yasnippet-tests.el (basic-indentation):
(navigate-a-snippet-with-multiline-mirrors-issue-665): New tests.

7 years agoTest expansion in an empty buffer
Noam Postavsky [Wed, 13 Apr 2016 01:37:17 +0000 (21:37 -0400)]
Test expansion in an empty buffer

* yasnippet-tests.el (yas-should-expand, yas-should-not-expand): Call
`erase-buffer' instead of narrowing.

7 years agoyasnippet.el (yas-next-field-will-exit-p): New function.
Noam Postavsky [Tue, 26 Jan 2016 20:41:46 +0000 (15:41 -0500)]
yasnippet.el (yas-next-field-will-exit-p): New function.

7 years agoRefactor yas-next-field a bit
Noam Postavsky [Tue, 26 Jan 2016 20:35:02 +0000 (15:35 -0500)]
Refactor yas-next-field a bit

* yasnippet.el (yas--find-next-field): New function to find target field.
  (yas-next-field): Use it.

7 years agoTest and fix problem with mirror+autofill
Noam Postavsky [Fri, 29 Apr 2016 01:16:30 +0000 (21:16 -0400)]
Test and fix problem with mirror+autofill

cc-mode fill paragraph narrows to the paragraph being filled.  This
causes problems if there is a mirror needing to be updated outside of
the current paragraph.

* yasnippet-tests.el: New test.
* yasnippet.el (yas--update-mirrors): Widen while updating the mirrors.

7 years agoDocument .yas-setup.el
Noam Postavsky [Wed, 27 Apr 2016 21:08:19 +0000 (17:08 -0400)]
Document .yas-setup.el

* doc/snippet-organization.org: Explain .yas-setup.el.

7 years agochmod -x doc/yas-doc-helper.el
Barak A. Pearlmutter [Wed, 27 Apr 2016 20:51:03 +0000 (21:51 +0100)]
chmod -x doc/yas-doc-helper.el

7 years agoChange Emacs installation method for Travis CI
Noam Postavsky [Sun, 24 Apr 2016 21:29:05 +0000 (17:29 -0400)]
Change Emacs installation method for Travis CI

* .travis.yml: Don't use sudo, submodules.
(env): Test with additional Emacs versions.
(install): Get Emacs binaries from
https://github.com/npostavs/emacs-travis/releases.  Download ert and
cl-lib if needed.
(script): Split compilation and testing into separate steps.
* Rakefile: Use batch-byte-compile.  Treat compilation warnings as
errors.

7 years agoDecide field clearing based on command's effect
Noam Postavsky [Sat, 23 Apr 2016 20:36:10 +0000 (16:36 -0400)]
Decide field clearing based on command's effect

In [1] we started deciding clearing based on a command's
delete-selection property, but it turns out that some commands perform
insertion, and optionally use the region's contents.  So these commands
should have a nil delete-selection property, but they still ought to
clear a snippet field when used.

To achieve this, we now check if the command has inserted text in the
post-change hook of the field overlay.

* yasnippet.el (yas--skip-and-clear): Add optional FROM paramter.  Only
clear non-empty fields.
(yas--skip-and-clear-field-p): Check the change start and length
instead of current command delete-selection property.
(yas--on-field-overlay-modification): Perform field clearing on the
post-change call.

[1]: acf2cdd "Decide field clearing commands based on delsel"

8 years agoOnly kill snippets for text length change
Noam Postavsky [Sat, 16 Apr 2016 15:31:44 +0000 (11:31 -0400)]
Only kill snippets for text length change

of protection overlay.  Changes that keep the same length of text are
probably harmless (e.g. just change of text properties).  It's possible
that some harmful changes don't change text length, but the protection
overlays are already unable to catch all important changes since they
only cover 1 character each at the edges.

cc-mode modifies text properties in the buffer to cache parsing results,
therefore it's important that yasnippet not kill yasnippets when parsing
is triggered by a function that only wants to parse the
buffer (e.g. which-function-mode).

* yasnippet.el (yas--on-protection-overlay-modification): Check length
of text change to decide if change is harmful.  Fix docstring.

8 years agoyas-dont-activate is a hook
Stefan Monnier [Sun, 10 Apr 2016 14:14:56 +0000 (10:14 -0400)]
yas-dont-activate is a hook

* yasnippet.el (yas-dont-activate-functions): Rename from yas-dont-activate.
(yas-minor-mode-on): Use run-hook-with-args-until-success instead of
funcall.

8 years agoDon't add useless kill ring entries
BEN ENGLISCH [Sat, 9 Apr 2016 17:52:16 +0000 (12:52 -0500)]
Don't add useless kill ring entries

while describing snippet tables.  This should also help users of
packages like pbcopy.el (which creates a new process on every
modification of the kill-ring, hence many `kill-region' calls at once
cause Emacs to run out of file descriptors).

* yasnippet.el (yas--create-snippet-xrefs): Use delete-region instead of kill-region.

Copyright-paperwork-exempt: yes

Close #675.

8 years agoyasnippet.el (snippet-mode): Add autoload cookie.
Noam Postavsky [Sat, 9 Apr 2016 22:12:25 +0000 (18:12 -0400)]
yasnippet.el (snippet-mode): Add autoload cookie.

8 years agoAvoid potential problems with user's hooks
Noam Postavsky [Sat, 9 Apr 2016 23:36:32 +0000 (19:36 -0400)]
Avoid potential problems with user's hooks

* yasnippet.el (yas--font-lock-keywords): ignore-errors from
emacs-lisp-mode call, in case user's hooks cause problems (e.g. enabling
`yas-minor-mode' before we finish loading).

8 years agoFurther cleanup
Noam Postavsky [Fri, 8 Apr 2016 22:43:35 +0000 (18:43 -0400)]
Further cleanup

* yasnippet.el (yas-snippet-dirs): Fix :type.
(yas--modes-to-activate): Add explicit fboundp check instead of
ignore-errors.
(yas--font-lock-keywords): Remove redundant entries.
(yas--guess-snippet-directories): Simplify.
(yas-load-snippet-buffer-and-close): Use read-file-name.

8 years agoVarious cleanup
Stefan Monnier [Wed, 6 Apr 2016 03:48:01 +0000 (23:48 -0400)]
Various cleanup

* yasnippet/yasnippet.el: Add Package-Requires since we use cl-lib.
(yas-installed-snippets-dir, yas--default-user-snippets-dir)
(yas--load-directory-1, yas-load-snippet-buffer-and-close):
Use expand-file-name.
(yas-buffer-local-condition): Let's not quote lambdas.
(yas--modes-to-activate): Fix compiler warning about free `dfs' var and
unused return value of `mapcar'.
(yas-minor-mode): Don't confuse emulation-mode-map-alists for a hook.
(yas--font-lock-keywords): Don't hardcode the name of emacs-lisp-mode's
font-lock keywords.
(yas--calculate-group): Use file-relative-name.
(yas--subdirs): Don't mismatch \n in file name.
(yas-expand-from-trigger-key, yas-tryout-snippet): Prefer numbers to
number names.
(yas--guess-snippet-directories): Use expand-file-name rather than
removing&adding / by hand.
(yas--on-field-overlay-modification): Mark `length' as unused.
(yas--update-mirrors): Try to better fit within 80 columns.
(yas--backported-syms, yas--exported-syms): Don't mismatch \n in
symbol name.

8 years agoRelease 0.9.1
Noam Postavsky [Sun, 27 Mar 2016 01:26:50 +0000 (21:26 -0400)]
Release 0.9.1

- add NEWS
- update version numbers
- update snippet submodule

8 years agoyasnippet.el (yas--describe-pretty-table): Cleanup.
Noam Postavsky [Sat, 2 Apr 2016 14:38:05 +0000 (10:38 -0400)]
yasnippet.el (yas--describe-pretty-table): Cleanup.

8 years agoAvoid trailing whitespace in snippet tables
USAMI Kenta [Tue, 29 Mar 2016 15:23:36 +0000 (00:23 +0900)]
Avoid trailing whitespace in snippet tables

* yasnippet.el (yas-describe-tables, yas--describe-pretty-table): Remove
  redundant tail spaces from output.

Copyright-paperwork-exempt: yes

8 years agoAvoid error in case this-command isn't a symbol.
Noam Postavsky [Fri, 26 Feb 2016 21:59:39 +0000 (16:59 -0500)]
Avoid error in case this-command isn't a symbol.

Fixes #664.

* yasnippet.el (yas--skip-and-clear-field-p): Only get
  `delete-selection' property of `this-command' when it's a symbol.

8 years agoReduce `yas-new-snippet-default'
Noam Postavsky [Sun, 31 Jan 2016 17:48:06 +0000 (12:48 -0500)]
Reduce `yas-new-snippet-default'

* yasnippet.el (yas-new-snippet-default): Remove
  "require-final-newline: nil", it's redundant since `snippet-mode' already
  sets that.  Also remove the direct-keybinding, since it's hardly ever
  used, and often the literal "# binding: direct-keybinding" ends up in
  actual snippets.

8 years agoDon't use yas-x-prompt by default
Noam Postavsky [Fri, 29 Jan 2016 18:55:00 +0000 (13:55 -0500)]
Don't use yas-x-prompt by default

It is not a very pleasant method when there are many values, and
`yas-completing-prompt' will usually do a better job, in addition to
respecting customizations to `completing-read-function'.
`yas-dropdown-prompt' remains in first place, since it only takes effect
if the `dropdown' library is loaded, which likely indicates a preference
for it.

* yasnippet.el (yas-prompt-functions): Remove yas-x-prompt from default value.

8 years agoApply changes from GNU ELPA
Stefan Monnier [Thu, 28 Jan 2016 19:30:15 +0000 (14:30 -0500)]
Apply changes from GNU ELPA

* doc/yas-doc-helper.el:
* yasnippet-debug.el:
* yasnippet-tests.el: Fix up copyright headers.

* yasnippet-tests.el: Fix lexical-binding cookie.
* yasnippet-debug.el: Require cl.

* yasnippet-tests.el: Silence byte-compiler.
(yas-saving-variables, yas-with-snippet-dirs): Move macros before their use.
(yas--barbaz, yas--foobarbaz): Declare.
(yas--phony-c-mode, yas--test-mode, yas--another-test-mode): Move out of
deftest, so the byte-compiler understands they're defined.

8 years agoUpdate snippets submodule
Noam Postavsky [Fri, 22 Jan 2016 18:56:26 +0000 (13:56 -0500)]
Update snippets submodule

8 years agoDecide field clearing commands based on delsel
Noam Postavsky [Sun, 10 Jan 2016 23:44:36 +0000 (18:44 -0500)]
Decide field clearing commands based on delsel

* yasnippet.el (yas--skip-and-clear-field-p): Check `delete-selection'
  of `this-command'.

Fix #644, close #645.

8 years agoSlightly improve on fix for #515: Refactor code and add tests
João Távora [Mon, 4 Jan 2016 10:15:31 +0000 (10:15 +0000)]
Slightly improve on fix for #515: Refactor code and add tests

While I agree with the solution for #515 in commit 17fe790 for now,
other approaches might be interesting in the future, like clearing on
other types of insertion, not just self-insertion.

So add some tests and refactor a new function that could be used for
that purpose later on. For now, change no behaviour.

* yasnippet-tests.el (dont-clear-on-partial-deletion-issue-515,
  dont-clear-on-yank-issue-515): New tests. (yas-mock-yank): New
  function.

* yasnippet.el (yas--skip-and-clear-field-p): New function.
  (yas--on-field-overlay-modification): Use it.

8 years agoFix silly mistake in previous commit
Noam Postavsky [Wed, 20 Jan 2016 14:44:28 +0000 (09:44 -0500)]
Fix silly mistake in previous commit

* yasnippet.el (yas--load-snippet-dirs): Put `make-directory' call in
  same branch of the `if' as the `dolist' loop.

8 years agoFix #648; create ~/.emacs.d/snippets automatically
Noam Postavsky [Wed, 20 Jan 2016 14:27:24 +0000 (09:27 -0500)]
Fix #648; create ~/.emacs.d/snippets automatically

* yasnippet.el (yas--load-snippet-dirs): Create
  yas--default-user-snippets-dir, if needed.

8 years agoFix bug reporting examples.
Noam Postavsky [Thu, 14 Jan 2016 18:21:27 +0000 (13:21 -0500)]
Fix bug reporting examples.

- There was a missing "." in the emacs invocation (thanks to Barrie
  Treloar for reporting).

- The example reports had too little plain observation, and too much
  interpretation.

* README.mdown: Add missing "." to bug reporting instructions, improve
  wording of example reports.

Close #646.

8 years agoFix debugging code for newer Emacsen
João Távora [Wed, 6 Jan 2016 10:40:30 +0000 (10:40 +0000)]
Fix debugging code for newer Emacsen

* yasnippet-debug.el (yas-debug-snippet-vars): Check for length of
`buffer-undo-list'. Don't assume all fields have integer
`yas--field-number'.

8 years agoBless Noam Postavsky as the new official maintainer
João Távora [Mon, 4 Jan 2016 09:29:20 +0000 (09:29 +0000)]
Bless Noam Postavsky as the new official maintainer

* yasnippet.el (yas-about): Bless Noam Postavsky as the official maintainer

8 years agoDon't choose ido prompting based on Emacs version
Noam Postavsky [Fri, 11 Dec 2015 02:37:06 +0000 (21:37 -0500)]
Don't choose ido prompting based on Emacs version

* yasnippet.el (yas-ido-prompt): Unconditionally use ido prompting,
  explicitly requireing ido.
(yas-maybe-ido-prompt): New function, call `yas-ido-prompt' if
`ido-mode' is enabled.
(yas-prompt-functions): Replace `yas-ido-prompt' with
`yas-maybe-ido-prompt' in the default value.

8 years agoFix #576; don't override yas-prompt-functions
Noam Postavsky [Fri, 11 Dec 2015 02:36:00 +0000 (21:36 -0500)]
Fix #576; don't override yas-prompt-functions

* yasnippet.el (yas-visit-snippet-file): Don't override
  `yas-prompt-functions'.

8 years agoRespect y-b-l-cond from binding triggered snippets
Noam Postavsky [Sat, 12 Dec 2015 03:54:21 +0000 (22:54 -0500)]
Respect y-b-l-cond from binding triggered snippets

The default value for `yas-buffer-local-condition' was only effective
for `yas-expand-from-trigger-key' command, so it didn't have any effect
when triggering snippets from a key binding (or if using the
`yas-expand' alias).

* yasnippet.el (yas-buffer-local-condition): Check if `this-command' is
  `yas-expand' or `yas-expand-from-keymap' too.

Fixes #305, close #638

8 years agoFix #515; only clear field on self-insert
Noam Postavsky [Sun, 13 Dec 2015 05:38:09 +0000 (00:38 -0500)]
Fix #515; only clear field on self-insert

* yasnippet.el (yas--on-field-overlay-modification): Only clear field if
  `this-command' is `self-insert-command'.  Clean up docstring.

Close #639.

8 years agoImprove test simulatulation of self-insert
Noam Postavsky [Sun, 13 Dec 2015 05:14:44 +0000 (00:14 -0500)]
Improve test simulatulation of self-insert

* yasnippet-tests.el (yas-mock-insert): Use `ert-simulate-command' to
  simulate n self-insert-commands.
(simple-mirror, mirror-with-transformation):
(primary-field-transformation, nested-placeholders-kill-superfield):
(nested-placeholders-use-subfield):
(mirrors-adjacent-to-fields-with-nested-mirrors):
(deep-nested-mirroring-issue-351, example-for-issue-271):
(string-match-with-subregexp-in-mirror-transformations): Call
`yas-mock-insert' directly instead of with `ert-simulate-command'.

8 years agoCleanup yas--on-field-overlay-modification
Noam Postavsky [Sun, 13 Dec 2015 05:30:24 +0000 (00:30 -0500)]
Cleanup yas--on-field-overlay-modification

* yasnippet.el (yas--on-field-overlay-modification): Remove redundant
  `after?' check; use `=' to save marker vs number type checking.

8 years ago* README.mdown: Add link to textmate-to-yas.el.
Noam Postavsky [Sat, 12 Dec 2015 15:47:08 +0000 (10:47 -0500)]
* README.mdown: Add link to textmate-to-yas.el.

8 years ago* README.mdown: update melpa URL.
JJ Asghar [Wed, 28 Jan 2015 22:06:57 +0000 (16:06 -0600)]
* README.mdown: update melpa URL.

Copyright-paperwork-exempt: yes

Close #555.

8 years agoRemove yas--inhibit-overlay-hooks macro.
Noam Postavsky [Thu, 10 Dec 2015 01:17:59 +0000 (20:17 -0500)]
Remove yas--inhibit-overlay-hooks macro.

* yasnippet.el (yas--inhibit-overlay-hooks): Remove.
(yas--commit-snippet, yas--make-move-field-protection-overlays):
(yas-expand-snippet, yas--mirror-update-display):
(yas--field-update-display): Replace `yas--inhibit-overlay-hooks' with
its expansion.

8 years agoyasnippet.el (yas--called-interactively-p): Remove.
Noam Postavsky [Thu, 10 Dec 2015 01:11:31 +0000 (20:11 -0500)]
yasnippet.el (yas--called-interactively-p): Remove.

It's unused since "fix: more idiomatic elisp..." 29 Aug 2013
(13d87aa3c0b0289ed918bab545d2b423974688a5).

8 years agoUse destructive list functions in yas--s-a-p
Noam Postavsky [Wed, 9 Dec 2015 00:03:42 +0000 (19:03 -0500)]
Use destructive list functions in yas--s-a-p

`mapcar' already create a fresh list so there is no need to preserve it.

* yasnippet.el (yas--snippets-at-point): Use `delq' and `delete-dups'
  instead of `remove' and `remove-duplicates`, respectively.

8 years agoFix #587; set `this-command' on fallback.
Noam Postavsky [Tue, 8 Dec 2015 23:19:02 +0000 (18:19 -0500)]
Fix #587; set `this-command' on fallback.

`this-original-command' is supposed to be for the command that
we're *not* executing because of key remapping, therefore it doesn't
make sense to set it to the command we're about to execute.

* yasnippet.el (yas--fallback): Set `this-command'.

8 years agoCloses #632: Use `user-emacs-directory' instead of hardcoded "~/emacs.d"
João Távora [Thu, 26 Nov 2015 13:18:16 +0000 (13:18 +0000)]
Closes #632: Use `user-emacs-directory' instead of hardcoded "~/emacs.d"

* yasnippet.el (yas--default-user-snippets-dir): New defconst.
(yas-snippet-dirs, yas--guess-snippet-directories): Use it.

8 years agoIgnore trailing spaces in snippet definitions
Sharif Nassar [Sun, 8 Nov 2015 18:28:16 +0000 (10:28 -0800)]
Ignore trailing spaces in snippet definitions

Probably nobody wants a snippet `key` with a trailing space. It can
be hard to differentiate from a `key` without trailing space. The
default `<TAB>` behavior of yasnippet will never expand these.

* yasnippet.el (yas--parse-template): Ignore trailing spaces in snippet
  definitions.
* yasnippet-tests.el (deftest ignore-trailing-whitespace): New test for
  new behavior.

Copyright-paperwork-exempt: yes

8 years agoM-x delete-trailing-whitespace
Sharif Nassar [Sun, 8 Nov 2015 18:14:51 +0000 (10:14 -0800)]
M-x delete-trailing-whitespace

* yasnippet.el: delete-trailing-whitespace
* yasnippet-tests.el: delete-trailing-whitespace

Copyright-paperwork-exempt: yes (trivial)

8 years ago* CONTRIBUTING.md: Add note about changelog only messages.
Noam Postavsky [Sat, 7 Nov 2015 13:54:08 +0000 (08:54 -0500)]
* CONTRIBUTING.md: Add note about changelog only messages.

8 years agoFix #607; avoid Emacs bug #21824
Noam Postavsky [Wed, 4 Nov 2015 03:16:17 +0000 (22:16 -0500)]
Fix #607; avoid Emacs bug #21824

See also
- https://github.com/capitaomorte/yasnippet/issues/607
- http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21824

* yasnippet.el (yas--on-field-overlay-modification): Do nothing if
  yas--active-field-overlay is not an overlay.

8 years ago* README.mdown (Use `yas-minor-mode`): Reword.
Noam Postavsky [Sun, 1 Nov 2015 23:10:29 +0000 (18:10 -0500)]
* README.mdown (Use `yas-minor-mode`): Reword.

Close #623.

8 years agoActivate extra and major modes first
Noam Postavsky [Sat, 31 Oct 2015 19:54:33 +0000 (15:54 -0400)]
Activate extra and major modes first

This prevents snippets from a parent mode from overriding those of the
major-mode's (or yas--extra-modes).  Snippets of ancestor modes may
still override snippets of some other ancestor modes, but hopefully this
won't cause much trouble in practice.

See [1] and subsequent comments.

[1]: https://github.com/capitaomorte/yasnippet/issues/619#issuecomment-149127150

* yasnippet.el (yas--modes-to-activate): Reverse result, so that parents
  of yas--extra-modes and major are later in the list.
* yasnippet-tests.el (loading-with-cyclic-parenthood)
(extra-modes-parenthood): Test it.

Close #626.

8 years agoAvoid double snippet loading messages
Noam Postavsky [Sat, 31 Oct 2015 21:10:25 +0000 (17:10 -0400)]
Avoid double snippet loading messages

* yasnippet.el (yas--load-directory-1): Message about loading compiled
  snippets only after successfully doing so.

Close #627.

8 years agoFix #617; ensure point is visible before x prompt
Noam Postavsky [Wed, 21 Oct 2015 22:39:40 +0000 (18:39 -0400)]
Fix #617; ensure point is visible before x prompt

* yasnippet.el (yas-x-prompt): Call redisplay.

8 years agoSimplify string matching.
Noam Postavsky [Mon, 12 Oct 2015 01:23:36 +0000 (21:23 -0400)]
Simplify string matching.

* yasnippet.el (yas--field-parse-create): Use string-match-p to instead
  of save-match-data, anchor regexp with \` (start of string) to instead
  of (eq ... 0)

8 years agoFix #618; save match data in yas--scan-sexps
Noam Postavsky [Mon, 12 Oct 2015 01:18:52 +0000 (21:18 -0400)]
Fix #618; save match data in yas--scan-sexps

* yasnippet.el (yas--scan-sexps): Save match data.

8 years ago* yasnippet.el (yas--scan-sexps): Use ignore-errors.
Noam Postavsky [Mon, 12 Oct 2015 01:17:50 +0000 (21:17 -0400)]
* yasnippet.el (yas--scan-sexps): Use ignore-errors.

8 years agoMerge pull request #621 from npostavs/dfs-extra-modes2
Noam Postavsky [Sun, 11 Oct 2015 18:51:56 +0000 (14:51 -0400)]
Merge pull request #621 from npostavs/dfs-extra-modes2

find parents for extra-modes too (v2)

8 years agoFix #619; find parents for extra-modes too
Noam Postavsky [Sun, 11 Oct 2015 16:55:47 +0000 (12:55 -0400)]
Fix #619; find parents for extra-modes too

* yasnippet.el (yas--modes-to-activate): Call dfs on yas--extra-modes as
  well.

8 years agoBuild a single `explored' list.
Noam Postavsky [Sun, 11 Oct 2015 16:40:17 +0000 (12:40 -0400)]
Build a single `explored' list.

* yasnippet.el (yas--modes-to-activate): Make helper dfs function
  produce the list of modes only by updating a single `explored' list,
  instead of building up the list by value and having to remove
  duplicated after.

8 years agoAdd (failing) yas--modes-to-activate test
Noam Postavsky [Sun, 11 Oct 2015 16:25:20 +0000 (12:25 -0400)]
Add (failing) yas--modes-to-activate test

* yasnippet-tests.el (extra-modes-parenthood): New (failing) test.
(loading-with-cyclic-parenthood): Use equal + sort instead of set
operation + length.

8 years agoUpdate snippets module
George Balatsouras [Sun, 4 Oct 2015 23:57:27 +0000 (02:57 +0300)]
Update snippets module

8 years agoFix invalid yas-key-syntaxes element warning
Noam Postavsky [Mon, 28 Sep 2015 00:16:28 +0000 (20:16 -0400)]
Fix invalid yas-key-syntaxes element warning

* yasnippet.el (yas--templates-for-key-at-point): Fix infinite loop and
  remove redundant "Warning" in the bad element warning.

8 years ago* doc/snippet-organization.org (.yas-skip): Add info.
Noam Postavsky [Fri, 25 Sep 2015 01:12:30 +0000 (21:12 -0400)]
* doc/snippet-organization.org (.yas-skip): Add info.

8 years ago* yasnippet.el (yas--define-snippets-2): Use file-name-NONdirectory.
Noam Postavsky [Sat, 12 Sep 2015 20:30:01 +0000 (16:30 -0400)]
* yasnippet.el (yas--define-snippets-2): Use file-name-NONdirectory.

8 years ago* yasnippet-tests.el (string-suffix-p): Define for older Emacsen.
Noam Postavsky [Sat, 5 Sep 2015 20:20:04 +0000 (16:20 -0400)]
* yasnippet-tests.el (string-suffix-p): Define for older Emacsen.

8 years agoTest visiting compiled snippets
Noam Postavsky [Sat, 5 Sep 2015 19:13:09 +0000 (15:13 -0400)]
Test visiting compiled snippets

* yasnippet-tests.el (visiting-compiled-snippets): New Test.
* yasnippet.el (yas--lookup-snippet-1, yas-lookup-snippet): Split new
  function yas--lookup-snippet-1 from yas-lookup-snippet.

8 years agoAccept documented snippet list formats
Noam Postavsky [Sat, 5 Sep 2015 17:41:12 +0000 (13:41 -0400)]
Accept documented snippet list formats

yas-define-snippets was making assumptions that happended to be true for
its current calls, but could fail if given differently formatted snippet
lists that still meet the docstring description.

* yasnippet.el (yas-define-snippets): Handle incomplete snippet lists.

8 years agoFix #597; use SAVE-FILE to visit compiled snippets
Noam Postavsky [Sat, 5 Sep 2015 00:19:52 +0000 (20:19 -0400)]
Fix #597; use SAVE-FILE to visit compiled snippets

Rename the existing FILE field to LOAD-FILE, and add a new SAVE-FILE to
yas--template struct.  Normally they will be the same, but compiled
snippets have only SAVE-FILE because they are loaded by "compiled" code.

* yasnippet.el (yas--template): Remove field file, add load-file and
  save-file.
(yas--parse-template): Update snippet-definition list in docstrings.
(yas-define-snippets): Move LOAD-FILE value to SAVE-FILE when compiling.
(yas--template-get-file): New function.
(yas--visit-snippet-file-1, yas-load-snippet-buffer,
yas-load-snippet-buffer-and-close): Use yas--template-load-file,
yas--template-save-file, or yas--template-get-file, as appropriate.
* doc/snippet-organization.org (The =.yas-compiled-snippet.el= file):
  Remove caveat that is no longer relevant.

8 years agoReorganize snippet construction from list code
Noam Postavsky [Fri, 4 Sep 2015 22:33:44 +0000 (18:33 -0400)]
Reorganize snippet construction from list code

* yasnippet.el (yas--template): New yas--define-snippets-2 constructor
  with arguments matching yas-define-snippets format.
(yas--define-snippets-1): Use it.
(yas--update-template): Return TEMPLATE argument.

8 years agoCloses #601: updated snippets submodule
João Távora [Tue, 11 Aug 2015 19:22:10 +0000 (20:22 +0100)]
Closes #601: updated snippets submodule

8 years agoMerge pull request #599 from zmwangx/snippet-compilation-doc
João Távora [Tue, 4 Aug 2015 23:51:40 +0000 (00:51 +0100)]
Merge pull request #599 from zmwangx/snippet-compilation-doc

Add documentation for snippet compilation

8 years agoAdd documentation for snippet compilation
Zhiming Wang [Tue, 4 Aug 2015 21:39:36 +0000 (14:39 -0700)]
Add documentation for snippet compilation

Specifically, fill in the section about .yas-compiled-snippet.el, which
was previously labelled as TODO.

* doc/snippet-organization.org (The =.yas-compiled-snippet.el= file):
  Fill in section.

8 years agoSimplify some code
Noam Postavsky [Tue, 4 Aug 2015 18:20:29 +0000 (14:20 -0400)]
Simplify some code

* yasnippet.el (yas-define-snippets): Modify the list instead of
  reconstructing it.
  (yas-load-snippet-buffer-and-close): Replace listp and second with
  cdr-safe.  Use string-prefix-p rather than string-match-p.

8 years agoMerge pull request #596 from npostavs/lookup-snippet
João Távora [Mon, 3 Aug 2015 18:24:27 +0000 (19:24 +0100)]
Merge pull request #596 from npostavs/lookup-snippet

Add yas-lookup-snippet

8 years agoAdd new function yas-lookup-snippet
Noam Postavsky [Mon, 3 Aug 2015 14:36:46 +0000 (10:36 -0400)]
Add new function yas-lookup-snippet

* yasnippet.el (yas-lookup-snippet): New function.
(yas--get-snippet-tables, yas--modes-to-activate): Add optional mode
parameter.
* yasnippet-tests.el (snippet-lookup): New test for yas-lookup-snippet.
* doc/snippet-expansion.org (Expanding from emacs-lisp code): Mention
  yas-lookup-snippet.

8 years agoMinor doc fixes
Noam Postavsky [Mon, 3 Aug 2015 14:29:42 +0000 (10:29 -0400)]
Minor doc fixes

* doc/snippet-expansion.org (Expanding from emacs-lisp code): Fix typo.
* doc/snippet-menu.org (Controlling indenting, Prompting method): Remove
  incorrect whitespace.

8 years agoMerge pull request #578 from aluaces/patch-1
Noam Postavsky [Mon, 18 May 2015 17:12:18 +0000 (13:12 -0400)]
Merge pull request #578 from aluaces/patch-1

Fix "invalid function: quote"

8 years agoFix "invalid function: quote"
Alberto Luaces [Fri, 15 May 2015 21:30:37 +0000 (23:30 +0200)]
Fix "invalid function: quote"

On emacs24, Debian, HTML doc generation finishes with this error.

9 years agoCloses #549: Adjust `load' verbosity to `yas-verbosity'
João Távora [Wed, 15 Apr 2015 09:43:03 +0000 (10:43 +0100)]
Closes #549: Adjust `load' verbosity to `yas-verbosity'

* yasnippet.el (yas--load-yas-setup-file): Be verbose on `load'
according to `yas-verbosity'

9 years agoMerge pull request #571 from PhilHudson/master
João Távora [Mon, 13 Apr 2015 21:03:58 +0000 (22:03 +0100)]
Merge pull request #571 from PhilHudson/master

Replaced 'shadow' with 'override' throughout documentation