emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 14819c9 28/63: Make yas-buffer-local-condition into a defc


From: Noam Postavsky
Subject: [elpa] master 14819c9 28/63: Make yas-buffer-local-condition into a defcustom
Date: Mon, 17 Jul 2017 22:54:14 -0400 (EDT)

branch: master
commit 14819c931f35aaa8d6ee0e60431801a7709ad93e
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    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.
---
 doc/snippet-expansion.org |  5 +++--
 yasnippet.el              | 22 ++++++++++++++++++++--
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/doc/snippet-expansion.org b/doc/snippet-expansion.org
index 9b9f45b..3ee0adf 100644
--- a/doc/snippet-expansion.org
+++ b/doc/snippet-expansion.org
@@ -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>>
diff --git a/yasnippet.el b/yasnippet.el
index 933f4ac..7b871b9 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]