Make yas-buffer-local-condition into a defcustom

* yasnippet.el (yas-not-string-or-comment-condition): New constant,
holding the previous default value of `yas-buffer-local-condition'.
(yas-buffer-local-condition): Make into defcustom.
This commit is contained in:
Noam Postavsky 2017-02-08 22:04:29 -05:00
parent 4f37afd493
commit 14819c931f
2 changed files with 23 additions and 4 deletions

View File

@ -181,8 +181,9 @@ In particular, the following things matter:
- Buffer-local [[sym:yas-buffer-local-condition][=yas-buffer-local-condition=]] variable
This variable provides finer grained control over what snippets can
be expanded in the current buffer. You could disable snippet
expansion inside comments or string literals for example. See [[condition-system][the
be expanded in the current buffer. For example, the constant
[[sym:yas-not-string-or-comment-condition][=yas-not-string-or-comment-condition=]] has a value that disables
snippet expansion inside comments or string literals. See [[condition-system][the
condition system]] for more info.
** The condition system <<condition-system>>

View File

@ -456,7 +456,17 @@ Attention: These hooks are not run when exiting nested/stacked snippet expansion
'()
"Hooks to run just before expanding a snippet.")
(defvar yas-buffer-local-condition t
(defconst yas-not-string-or-comment-condition
'(if (and (let ((ppss (syntax-ppss)))
(or (nth 3 ppss) (nth 4 ppss)))
(memq this-command '(yas-expand yas-expand-from-trigger-key
yas-expand-from-keymap)))
'(require-snippet-condition . force-in-comment)
t)
"Disables snippet expansion in strings and comments.
To use, set `yas-buffer-local-condition' to this value.")
(defcustom yas-buffer-local-condition t
"Snippet expanding condition.
This variable is a Lisp form which is evaluated every time a
@ -503,7 +513,15 @@ conditions.
(setq yas-buffer-local-condition
\\='(if (python-syntax-comment-or-string-p)
\\='(require-snippet-condition . force-in-comment)
t))))")
t))))"
:type
`(choice
(const :tag "Disable snippet expansion inside strings and comments"
,yas-not-string-or-comment-condition)
(const :tag "Expand all snippets regardless of conditions" always)
(const :tag "Expand snippets unless their condition is nil" t)
(const :tag "Disable all snippet expansion" nil)
sexp))
;;; Internal variables