mirror of
https://github.com/joaotavora/yasnippet.git
synced 2025-10-13 21:13:04 +00:00
future-proof against obsoleting of `flet'
flet will be marked obsolete starting in Emacs 24.3
This commit is contained in:
parent
42ed181f4a
commit
32e56098fb
116
yasnippet.el
116
yasnippet.el
@ -136,6 +136,12 @@
|
||||
(require 'easymenu)
|
||||
(require 'help-mode)
|
||||
|
||||
(eval-and-compile
|
||||
(unless (fboundp 'cl-flet)
|
||||
(defalias 'cl-flet 'flet)
|
||||
(put 'cl-flet 'lisp-indent-function 1)
|
||||
(put 'cl-flet 'edebug-form-spec '((&rest (defun*)) cl-declarations body))))
|
||||
|
||||
|
||||
;;; User customizable variables
|
||||
|
||||
@ -1843,48 +1849,48 @@ foo\"bar\\! -> \"foo\\\"bar\\\\!\""
|
||||
This works by stubbing a few functions, then calling
|
||||
`yas-load-directory'."
|
||||
(interactive "DTop level snippet directory?")
|
||||
(flet ((yas--load-yas-setup-file
|
||||
(file)
|
||||
(let ((elfile (concat file ".el")))
|
||||
(when (file-exists-p elfile)
|
||||
(insert ";;; .yas-setup.el support file if any:\n;;;\n")
|
||||
(insert-file-contents elfile)
|
||||
(end-of-buffer)
|
||||
)))
|
||||
(yas-define-snippets
|
||||
(mode snippets)
|
||||
(insert ";;; Snippet definitions:\n;;;\n")
|
||||
(let ((literal-snippets (list))
|
||||
(print-length nil))
|
||||
(dolist (snippet snippets)
|
||||
(let ((key (first snippet))
|
||||
(template-content (second snippet))
|
||||
(name (third snippet))
|
||||
(condition (fourth snippet))
|
||||
(group (fifth snippet))
|
||||
(expand-env (sixth snippet))
|
||||
(file nil) ;; (seventh snippet)) ;; omit on purpose
|
||||
(binding (eighth snippet))
|
||||
(uuid (ninth snippet)))
|
||||
(push `(,key
|
||||
,template-content
|
||||
,name
|
||||
,condition
|
||||
,group
|
||||
,expand-env
|
||||
,file
|
||||
,binding
|
||||
,uuid)
|
||||
literal-snippets)))
|
||||
(insert (pp-to-string `(yas-define-snippets ',mode ',literal-snippets)))
|
||||
(insert "\n\n")))
|
||||
(yas--load-directory-1
|
||||
(dir mode parents &rest ignore)
|
||||
(let ((output-file (concat (file-name-as-directory dir) ".yas-compiled-snippets.el")))
|
||||
(with-temp-file output-file
|
||||
(insert (format ";;; Compiled snippets and support files for `%s'\n" mode))
|
||||
(yas--load-directory-2 dir mode)
|
||||
(insert (format ";;; Do not edit! File generated at %s\n" (current-time-string)))))))
|
||||
(cl-flet ((yas--load-yas-setup-file
|
||||
(file)
|
||||
(let ((elfile (concat file ".el")))
|
||||
(when (file-exists-p elfile)
|
||||
(insert ";;; .yas-setup.el support file if any:\n;;;\n")
|
||||
(insert-file-contents elfile)
|
||||
(end-of-buffer)
|
||||
)))
|
||||
(yas-define-snippets
|
||||
(mode snippets)
|
||||
(insert ";;; Snippet definitions:\n;;;\n")
|
||||
(let ((literal-snippets (list))
|
||||
(print-length nil))
|
||||
(dolist (snippet snippets)
|
||||
(let ((key (first snippet))
|
||||
(template-content (second snippet))
|
||||
(name (third snippet))
|
||||
(condition (fourth snippet))
|
||||
(group (fifth snippet))
|
||||
(expand-env (sixth snippet))
|
||||
(file nil) ;; (seventh snippet)) ;; omit on purpose
|
||||
(binding (eighth snippet))
|
||||
(uuid (ninth snippet)))
|
||||
(push `(,key
|
||||
,template-content
|
||||
,name
|
||||
,condition
|
||||
,group
|
||||
,expand-env
|
||||
,file
|
||||
,binding
|
||||
,uuid)
|
||||
literal-snippets)))
|
||||
(insert (pp-to-string `(yas-define-snippets ',mode ',literal-snippets)))
|
||||
(insert "\n\n")))
|
||||
(yas--load-directory-1
|
||||
(dir mode parents &rest ignore)
|
||||
(let ((output-file (concat (file-name-as-directory dir) ".yas-compiled-snippets.el")))
|
||||
(with-temp-file output-file
|
||||
(insert (format ";;; Compiled snippets and support files for `%s'\n" mode))
|
||||
(yas--load-directory-2 dir mode)
|
||||
(insert (format ";;; Do not edit! File generated at %s\n" (current-time-string)))))))
|
||||
(yas-load-directory top-level-dir nil)))
|
||||
|
||||
(defun yas-recompile-all ()
|
||||
@ -3685,19 +3691,19 @@ Returns the newly created snippet."
|
||||
|
||||
This is according to their relative positions in the buffer, and
|
||||
has to be called before the $-constructs are deleted."
|
||||
(flet ((yas--fom-set-next-fom (fom nextfom)
|
||||
(cond ((yas--field-p fom)
|
||||
(setf (yas--field-next fom) nextfom))
|
||||
((yas--mirror-p fom)
|
||||
(setf (yas--mirror-next fom) nextfom))
|
||||
(t
|
||||
(setf (yas--exit-next fom) nextfom))))
|
||||
(yas--compare-fom-begs (fom1 fom2)
|
||||
(if (= (yas--fom-start fom2) (yas--fom-start fom1))
|
||||
(yas--mirror-p fom2)
|
||||
(>= (yas--fom-start fom2) (yas--fom-start fom1))))
|
||||
(yas--link-foms (fom1 fom2)
|
||||
(yas--fom-set-next-fom fom1 fom2)))
|
||||
(cl-flet ((yas--fom-set-next-fom (fom nextfom)
|
||||
(cond ((yas--field-p fom)
|
||||
(setf (yas--field-next fom) nextfom))
|
||||
((yas--mirror-p fom)
|
||||
(setf (yas--mirror-next fom) nextfom))
|
||||
(t
|
||||
(setf (yas--exit-next fom) nextfom))))
|
||||
(yas--compare-fom-begs (fom1 fom2)
|
||||
(if (= (yas--fom-start fom2) (yas--fom-start fom1))
|
||||
(yas--mirror-p fom2)
|
||||
(>= (yas--fom-start fom2) (yas--fom-start fom1))))
|
||||
(yas--link-foms (fom1 fom2)
|
||||
(yas--fom-set-next-fom fom1 fom2)))
|
||||
;; make some yas--field, yas--mirror and yas--exit soup
|
||||
(let ((soup))
|
||||
(when (yas--snippet-exit snippet)
|
||||
|
Loading…
x
Reference in New Issue
Block a user