* Now byte compiles correctly and with no warnings

* added :compile task to Rakefile
   (reported by Christoph Conrad)
This commit is contained in:
capitaomorte 2009-07-26 22:11:04 +00:00
parent 1aadcfae8a
commit b104c6b5ff
2 changed files with 104 additions and 88 deletions

View File

@ -50,11 +50,6 @@ desc "Generate document"
task :doc => FileList['doc/*.rst'].ext('html')
namespace :doc do
task :upload do
sh "rsync -avz --exclude '.svn' doc " +
"pluskid.lifegoo.com:~/public_html/upload/project/yasnippet/"
end
task :archive do
release_dir = "pkg/yasnippet-#{$version}"
FileUtils.mkdir_p(release_dir)
@ -63,4 +58,11 @@ namespace :doc do
end
end
desc "Compile yasnippet.el into yasnippet.elc"
rule '.elc' => '.el' do |t|
sh "emacs --batch -L . --eval \"(byte-compile-file \\\"#{t.source}\\\")\""
end
task :compile => FileList["yasnippet.el", "dropdown-list.el"].ext('elc')
task :default => :doc

View File

@ -297,10 +297,9 @@ An error string \"[yas] error\" is returned instead."
(dolist (key keys)
(define-key keymap (read-kbd-macro key) definition))))
(eval-when-compile
(yas/define-some-keys yas/next-field-key yas/keymap 'yas/next-field-or-maybe-expand)
(yas/define-some-keys yas/prev-field-key yas/keymap 'yas/prev-field)
(yas/define-some-keys yas/skip-and-clear-key yas/keymap 'yas/skip-and-clear-or-delete-char))
(yas/define-some-keys yas/next-field-key yas/keymap 'yas/next-field-or-maybe-expand)
(yas/define-some-keys yas/prev-field-key yas/keymap 'yas/prev-field)
(yas/define-some-keys yas/skip-and-clear-key yas/keymap 'yas/skip-and-clear-or-delete-char)
(defvar yas/key-syntaxes (list "w" "w_" "w_." "^ ")
"A list of syntax of a key. This list is tried in the order
@ -465,8 +464,7 @@ Here's an example:
(list "Reload-all-snippets" 'yas/reload-all)
(list "Load snippets..." 'yas/load-directory))))))
(eval-when-compile
(yas/init-keymap-and-menu))
(yas/init-keymap-and-menu)
(define-minor-mode yas/minor-mode
"Toggle YASnippet mode.
@ -881,6 +879,7 @@ TEMPLATES is a list of `yas/template'."
(when chosen
(nth (position chosen formatted-choices) choices)))))
(eval-when-compile (require 'dropdown-list nil t))
(defun yas/dropdown-prompt (prompt choices &optional display-fn)
(when (featurep 'dropdown-list)
(let* ((formatted-choices (or (and display-fn
@ -1050,7 +1049,7 @@ Here's the default value for all the parameters:
(insert "(defun yas/initialize-bundle ()\n"
" \"Initialize YASnippet and load snippets in the bundle.\""
" (yas/global-mode 1)\n")
(flet ((yas/define-snippets
(labels ((yas/define-snippets
(mode snippets &optional parent directory)
(with-current-buffer bundle-buffer
(insert ";;; snippets for " (symbol-name mode) "\n")
@ -1455,12 +1454,21 @@ With optional prefix argument KILL quit the window and buffer."
(when debug
(add-hook 'post-command-hook 'yas/debug-some-vars 't 'local))))
(t
(message "[yas] Coulnd not parse template!")))))
(message "[yas] Cannot test snippet for unknown major mode")))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; User convenience functions, for using in snippet definitions
;;;
(defvar yas/modified-p nil
"Non-nil if field has been modified by user or transformation.")
(defvar yas/moving-away-p nil
"Non-nil if user is about to exit field.")
(defvar yas/text nil
"Contains current field text.")
(defun yas/substr (str pattern &optional subexp)
"Search PATTERN in STR and return SUBEXPth match.
@ -1582,9 +1590,9 @@ for this field, apply it. Otherwise, returned nil."
"Replace all occurance from FROM to TO.
With optional string TEXT do it in that string."
(goto-char (point-min))
(if text
(replace-regexp-in-string from to text t t)
(replace-regexp-in-string (regexp-quote from) to text t t)
(goto-char (point-min))
(while (search-forward from nil t)
(replace-match to t t text))))
@ -1778,7 +1786,7 @@ NO-HOOKS means don't run the `yas/after-exit-snippet-hook' hooks."
(when yas/active-field-overlay
(delete-overlay yas/active-field-overlay))
(when yas/field-protection-overlays
(mapcar #'delete-overlay yas/field-protection-overlays)))
(mapc #'delete-overlay yas/field-protection-overlays)))
;; stacked expansion: if the original expansion took place from a
;; field, make sure we advance it here at least to
@ -1846,31 +1854,6 @@ snippet, if so cleans up the whole snippet up."
(and (>= point (yas/field-start field))
(<= point (yas/field-end field)))))
(defun yas/pre-command-handler () )
(defun yas/post-command-handler ()
"Handles various yasnippet conditions after each command."
(cond (yas/protection-violation
(goto-char yas/protection-violation)
(setq yas/protection-violation nil))
((eq 'undo this-command)
;;
;; After undo revival the correct field is sometimes not
;; restored correctly, this condition handles that
;;
(let* ((snippet (car (yas/snippets-at-point)))
(target-field (and snippet
(find-if-not #'(lambda (field)
(yas/field-probably-deleted-p snippet field))
(remove nil
(cons (yas/snippet-active-field snippet)
(yas/snippet-fields snippet)))))))
(when target-field
(yas/move-to-field snippet target-field))))
((not (yas/undo-in-progress))
;; When not in an undo, check if we must commit the snippet (use exited it).
(yas/check-commit-snippet))))
(defun yas/field-text-for-display (field)
"Return the propertized display text for field FIELD. "
(buffer-substring (yas/field-start field) (yas/field-end field)))
@ -2245,7 +2228,7 @@ Meant to be called in a narrowed buffer, does various passes"
(let ((parse-start (point)))
;; protect quote and backquote escapes
;;
(yas/protect-escapes '(?` ?'))
(yas/protect-escapes nil '(?` ?'))
;; replace all backquoted expressions
;;
(goto-char parse-start)
@ -2290,7 +2273,7 @@ Meant to be called in a narrowed buffer, does various passes"
(let* ((indent (if indent-tabs-mode
(concat (make-string (/ column tab-width) ?\t)
(make-string (% column tab-width) ?\ ))
(make-string (current-colum) ?\ ))))
(make-string (current-column) ?\ ))))
(goto-char (point-min))
(while (and (zerop (forward-line))
(= (current-column) 0))
@ -2361,17 +2344,24 @@ Meant to be called in a narrowed buffer, does various passes"
(defun yas/escape-string (escaped)
(concat "YASESCAPE" (format "%d" escaped) "PROTECTGUARD"))
(defun yas/protect-escapes (&optional escaped)
"Protect all escaped characters with their numeric ASCII value."
(mapc #'(lambda (escaped)
(yas/replace-all (concat "\\" (char-to-string escaped))
(yas/escape-string escaped)))
(or escaped yas/escaped-characters)))
(defun yas/protect-escapes (&optional text escaped)
"Protect all escaped characters with their numeric ASCII value.
(defun yas/restore-escapes (&optional text)
With optional string TEXT do it in string instead of buffer."
(let ((changed-text text)
(text-provided-p text))
(mapc #'(lambda (escaped)
(setq changed-text
(yas/replace-all (concat "\\" (char-to-string escaped))
(yas/escape-string escaped)
(when text-provided-p changed-text))))
(or escaped yas/escaped-characters))
changed-text))
(defun yas/restore-escapes (&optional text escaped)
"Restore all escaped characters from their numeric ASCII value.
With optional string TEXT do it in string instead"
With optional string TEXT do it in string instead of the buffer."
(let ((changed-text text)
(text-provided-p text))
(mapc #'(lambda (escaped)
@ -2379,7 +2369,7 @@ With optional string TEXT do it in string instead"
(yas/replace-all (yas/escape-string escaped)
(char-to-string escaped)
(when text-provided-p changed-text))))
yas/escaped-characters)
(or escaped yas/escaped-characters))
changed-text))
(defun yas/replace-backquotes ()
@ -2538,6 +2528,34 @@ When multiple expressions are found, only the last one counts."
(set-marker (yas/field-end field) (point)))
t))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Pre- and post-command hooks
;;
(defun yas/pre-command-handler () )
(defun yas/post-command-handler ()
"Handles various yasnippet conditions after each command."
(cond (yas/protection-violation
(goto-char yas/protection-violation)
(setq yas/protection-violation nil))
((eq 'undo this-command)
;;
;; After undo revival the correct field is sometimes not
;; restored correctly, this condition handles that
;;
(let* ((snippet (car (yas/snippets-at-point)))
(target-field (and snippet
(find-if-not #'(lambda (field)
(yas/field-probably-deleted-p snippet field))
(remove nil
(cons (yas/snippet-active-field snippet)
(yas/snippet-fields snippet)))))))
(when target-field
(yas/move-to-field snippet target-field))))
((not (yas/undo-in-progress))
;; When not in an undo, check if we must commit the snippet (use exited it).
(yas/check-commit-snippet))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Debug functions. Use (or change) at will whenever needed.
;;
@ -2603,18 +2621,14 @@ When multiple expressions are found, only the last one counts."
(first yas/root-directory))
yas/root-directory
"~/Source/yasnippet/snippets/"))
;;(kill-buffer (get-buffer "*YAS TEST*"))
(set-buffer (switch-to-buffer "*YAS TEST*"))
(mapcar #'yas/commit-snippet (yas/snippets-at-point 'all-snippets))
(mapc #'yas/commit-snippet (yas/snippets-at-point 'all-snippets))
(erase-buffer)
(setq buffer-undo-list nil)
(setq undo-in-progress nil)
(snippet-mode)
(yas/minor-mode 1)
(let ((abbrev))
;; (if (require 'ido nil t)
;; (setq abbrev (ido-completing-read "Snippet abbrev: " '("crazy" "prip" "prop")))
;; (setq abbrev "prop"))
(setq abbrev "$f")
(insert abbrev))
(unless quiet