restored yasnippet

This commit is contained in:
Bozhidar Batsov 2012-02-17 22:12:32 +02:00
parent ac01f235cc
commit 103dbcd8d0
573 changed files with 71124 additions and 0 deletions

View file

@ -168,6 +168,10 @@
;; enabled auto-fill mode in text-mode and all related modes ;; enabled auto-fill mode in text-mode and all related modes
(add-hook 'text-mode-hook 'turn-on-auto-fill) (add-hook 'text-mode-hook 'turn-on-auto-fill)
;; load yasnippet
(require 'yasnippet)
(yas/initialize)
;; projectile is a project management mode ;; projectile is a project management mode
(require 'projectile) (require 'projectile)
(projectile-global-mode t) (projectile-global-mode t)

251
vendor/yasnippet/dropdown-list.el vendored Normal file
View file

@ -0,0 +1,251 @@
;;; dropdown-list.el --- Drop-down menu interface
;;
;; Filename: dropdown-list.el
;; Description: Drop-down menu interface
;; Author: Jaeyoun Chung [jay.chung@gmail.com]
;; Maintainer:
;; Copyright (C) 2008 Jaeyoun Chung
;; Created: Sun Mar 16 11:20:45 2008 (Pacific Daylight Time)
;; Version:
;; Last-Updated: Sun Mar 16 12:19:49 2008 (Pacific Daylight Time)
;; By: dradams
;; Update #: 43
;; URL: http://www.emacswiki.org/cgi-bin/wiki/dropdown-list.el
;; Keywords: convenience menu
;; Compatibility: GNU Emacs 21.x, GNU Emacs 22.x
;;
;; Features that might be required by this library:
;;
;; `cl'.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Commentary:
;;
;; According to Jaeyoun Chung, "overlay code stolen from company-mode.el."
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Change log:
;;
;; 2008/03/16 dadams
;; Clean-up - e.g. use char-to-string for control chars removed by email posting.
;; Moved example usage code (define-key*, command-selector) inside the library.
;; Require cl.el at byte-compile time.
;; Added GPL statement.
;; 2008/01/06 Jaeyoun Chung
;; Posted to gnu-emacs-sources@gnu.org at 9:10 p.m.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 3, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; see the file COPYING. If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
;; Floor, Boston, MA 02110-1301, USA.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Code:
(eval-when-compile (require 'cl)) ;; decf, fourth, incf, loop, mapcar*
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defface dropdown-list-face
'((t :inherit default :background "lightyellow" :foreground "black"))
"*Bla." :group 'dropdown-list)
(defface dropdown-list-selection-face
'((t :inherit dropdown-list-face :background "purple"))
"*Bla." :group 'dropdown-list)
(defvar dropdown-list-overlays nil)
(defun dropdown-list-hide ()
(while dropdown-list-overlays
(delete-overlay (pop dropdown-list-overlays))))
(defun dropdown-list-put-overlay (beg end &optional prop value prop2 value2)
(let ((ov (make-overlay beg end)))
(overlay-put ov 'window t)
(when prop
(overlay-put ov prop value)
(when prop2 (overlay-put ov prop2 value2)))
ov))
(defun dropdown-list-line (start replacement &optional no-insert)
;; start might be in the middle of a tab, which means we need to hide the
;; tab and add spaces
(let ((end (+ start (length replacement)))
beg-point end-point
before-string after-string)
(goto-char (point-at-eol))
(if (< (current-column) start)
(progn (setq before-string (make-string (- start (current-column)) ? ))
(setq beg-point (point)))
(goto-char (point-at-bol)) ;; Emacs bug, move-to-column is wrong otherwise
(move-to-column start)
(setq beg-point (point))
(when (> (current-column) start)
(goto-char (1- (point)))
(setq beg-point (point))
(setq before-string (make-string (- start (current-column)) ? ))))
(move-to-column end)
(setq end-point (point))
(let ((end-offset (- (current-column) end)))
(when (> end-offset 0) (setq after-string (make-string end-offset ?b))))
(when no-insert
;; prevent inheriting of faces
(setq before-string (when before-string (propertize before-string 'face 'default)))
(setq after-string (when after-string (propertize after-string 'face 'default))))
(let ((string (concat before-string replacement after-string)))
(if no-insert
string
(push (dropdown-list-put-overlay beg-point end-point 'invisible t
'after-string string)
dropdown-list-overlays)))))
(defun dropdown-list-start-column (display-width)
(let ((column (mod (current-column) (window-width)))
(width (window-width)))
(cond ((<= (+ column display-width) width) column)
((> column display-width) (- column display-width))
((>= width display-width) (- width display-width))
(t nil))))
(defun dropdown-list-move-to-start-line (candidate-count)
(decf candidate-count)
(let ((above-line-count (save-excursion (- (vertical-motion (- candidate-count)))))
(below-line-count (save-excursion (vertical-motion candidate-count))))
(cond ((= below-line-count candidate-count)
t)
((= above-line-count candidate-count)
(vertical-motion (- candidate-count))
t)
((>= (+ below-line-count above-line-count) candidate-count)
(vertical-motion (- (- candidate-count below-line-count)))
t)
(t nil))))
(defun dropdown-list-at-point (candidates &optional selidx)
(dropdown-list-hide)
(let* ((lengths (mapcar #'length candidates))
(max-length (apply #'max lengths))
(start (dropdown-list-start-column (+ max-length 3)))
(i -1)
(candidates (mapcar* (lambda (candidate length)
(let ((diff (- max-length length)))
(propertize
(concat (if (> diff 0)
(concat candidate (make-string diff ? ))
(substring candidate 0 max-length))
(format "%3d" (+ 2 i)))
'face (if (eql (incf i) selidx)
'dropdown-list-selection-face
'dropdown-list-face))))
candidates
lengths)))
(save-excursion
(and start
(dropdown-list-move-to-start-line (length candidates))
(loop initially (vertical-motion 0)
for candidate in candidates
do (dropdown-list-line (+ (current-column) start) candidate)
while (/= (vertical-motion 1) 0)
finally return t)))))
(defun dropdown-list (candidates)
(let ((selection)
(temp-buffer))
(save-window-excursion
(unwind-protect
(let ((candidate-count (length candidates))
done key (selidx 0))
(while (not done)
(unless (dropdown-list-at-point candidates selidx)
(switch-to-buffer (setq temp-buffer (get-buffer-create "*selection*"))
'norecord)
(delete-other-windows)
(delete-region (point-min) (point-max))
(insert (make-string (length candidates) ?\n))
(goto-char (point-min))
(dropdown-list-at-point candidates selidx))
(setq key (read-key-sequence ""))
(cond ((and (stringp key)
(>= (aref key 0) ?1)
(<= (aref key 0) (+ ?0 (min 9 candidate-count))))
(setq selection (- (aref key 0) ?1)
done t))
((member key `(,(char-to-string ?\C-p) [up] "p"))
(setq selidx (mod (+ candidate-count (1- (or selidx 0)))
candidate-count)))
((member key `(,(char-to-string ?\C-n) [down] "n"))
(setq selidx (mod (1+ (or selidx -1)) candidate-count)))
((member key `(,(char-to-string ?\f))))
((member key `(,(char-to-string ?\r) [return]))
(setq selection selidx
done t))
(t (setq done t)))))
(dropdown-list-hide)
(and temp-buffer (kill-buffer temp-buffer)))
;; (when selection
;; (message "your selection => %d: %s" selection (nth selection candidates))
;; (sit-for 1))
selection)))
(defun define-key* (keymap key command)
"Add COMMAND to the multiple-command binding of KEY in KEYMAP.
Use multiple times to bind different COMMANDs to the same KEY."
(define-key keymap key (combine-command command (lookup-key keymap key))))
(defun combine-command (command defs)
"$$$$$ FIXME - no doc string"
(cond ((null defs) command)
((and (listp defs)
(eq 'lambda (car defs))
(= (length defs) 4)
(listp (fourth defs))
(eq 'command-selector (car (fourth defs))))
(unless (member `',command (cdr (fourth defs)))
(setcdr (fourth defs) (nconc (cdr (fourth defs)) `(',command))))
defs)
(t
`(lambda () (interactive) (command-selector ',defs ',command)))))
(defvar command-selector-last-command nil "$$$$$ FIXME - no doc string")
(defun command-selector (&rest candidates)
"$$$$$ FIXME - no doc string"
(if (and (eq last-command this-command) command-selector-last-command)
(call-interactively command-selector-last-command)
(let* ((candidate-strings
(mapcar (lambda (candidate)
(format "%s" (if (symbolp candidate)
candidate
(let ((s (format "%s" candidate)))
(if (>= (length s) 7)
(concat (substring s 0 7) "...")
s)))))
candidates))
(selection (dropdown-list candidate-strings)))
(when selection
(let ((cmd (nth selection candidates)))
(call-interactively cmd)
(setq command-selector-last-command cmd))))))
;;;;;;;;;;;;;;;;;;;;
(provide 'dropdown-list)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; dropdown-list.el ends here

View file

@ -0,0 +1,690 @@
;; .yas-setup.el for html-mode
(defvar yas/html-default-tag "p")
(defvar yas/html-xhtml-attr "")
(defvar yas/html-just-like-tm nil
"Html-mode snippets behave as close to TextMate as possible.")
(defun yas/html-activate ()
(add-to-list (make-local-variable 'yas/mode-symbol) 'html-mode))
(add-hook 'nxml-mode-hook 'yas/html-activate)
(add-hook 'rhtml-mode-hook 'yas/html-activate)
(defun yas/html-remove-preceding-word ()
(interactive)
(let (word-begin
word-end
(line-beginning-position (line-beginning-position))
(orig-point (point))
retval)
(save-excursion
(when (and (forward-word -1)
(setq word-begin (point))
(forward-word 1)
(setq word-end (point))
(< word-begin orig-point)
(>= word-end orig-point)
(<= (line-beginning-position) word-begin)
;; (not (string-match "^[\s\t]+$" " "))
)
(setq retval
(cons
(buffer-substring-no-properties word-begin orig-point)
(buffer-substring-no-properties word-end orig-point)))
(delete-region word-begin word-end)
retval))))
(defun yas/html-first-word (string)
(replace-regexp-in-string "\\\W.*" "" string))
(defun yas/html-insert-tag-pair-snippet ()
(let* ((tag-and-suffix (or (and yas/selected-text
(cons yas/selected-text nil))
(yas/html-remove-preceding-word)))
(tag (car tag-and-suffix))
(suffix (or (cdr tag-and-suffix) ""))
(single-no-arg "\\(br\\|hr\\)")
(single "\\(img\\|meta\\|link\\|input\\|base\\|area\\|col\\|frame\\|param\\)"))
(cond ((null tag)
(yas/expand-snippet (format "<${1:%s}>%s</${1:$(yas/html-first-word yas/text)}>%s"
(or yas/html-default-tag
"p")
(if yas/html-just-like-tm "$2" "$0")
suffix)))
((string-match single-no-arg tag)
(insert (format "<%s%s/>%s" tag yas/html-xhtml-attr suffix)))
((string-match single tag)
(yas/expand-snippet (format "<%s $1%s/>%s" tag yas/html-xhtml-attr suffix)))
(t
(yas/expand-snippet (format "<%s>%s</%s>%s"
tag
(if yas/html-just-like-tm "$1" "$0")
(replace-regexp-in-string "\\\W.*" "" tag)
suffix))))))
(defun yas/html-wrap-each-line-in-openclose-tag ()
(let* ((mirror "${1:$(yas/html-first-word yas/text)}")
(yas/html-wrap-newline (when (string-match "\n" yas/selected-text) "\n"))
(template (concat (format "<${1:%s}>" (or yas/html-default-tag "p"))
yas/selected-text
"</" mirror ">")))
(setq template (replace-regexp-in-string "\n" (concat "</" mirror ">\n<$1>") template))
(yas/expand-snippet template)))
(defun yas/html-toggle-wrap (string wrap)
(or (and string
(string-match (format "<%s>\\(.*\\)</%s>" wrap wrap)
string)
(match-string 1 string))
(concat wrap string wrap)))
(defun yas/html-between-tag-pair-p ()
(save-excursion
(backward-word)
(looking-at "\\\w+></\\\w+>")))
(defun yas/html-id-from-string (string)
(replace-regexp-in-string " " "_" (downcase string)))
(defun yas/html-tidy ()
(interactive)
(let ((start (or (and mark-active
(region-beginning))
(point-min)))
(end (or (and mark-active
(region-end))
(point-max)))
(orig (point))
(orig-line (count-screen-lines (window-start) (line-beginning-position))))
(shell-command-on-region start end "tidy" (current-buffer) t (get-buffer-create "*tidy errors*") t)
(goto-char (min (point-max) orig))
(recenter (1- orig-line))))
(defun yas/html-tag-description ()
(interactive)
(let* ((tag-at-point (sgml-beginning-of-tag))
(fragment (and tag-at-point
(aget yas/html-tag-description-urls (upcase tag-at-point)))))
(if fragment
(browse-url (concat "http://www.w3.org/TR/html4/index/"
fragment))
(if tag-at-point
(message "No documentation for " tag-at-point)
(message "Not on a HTML tag.")))))
(defvar yas/html-tag-description-urls
'(("A" . "../struct/links.html#edef-A")
("ABBR" . "../struct/text.html#edef-ABBR")
("ACRONYM" . "../struct/text.html#edef-ACRONYM")
("ADDRESS" . "../struct/global.html#edef-ADDRESS")
("APPLET" . "../struct/objects.html#edef-APPLET")
("AREA" . "../struct/objects.html#edef-AREA")
("B" . "../present/graphics.html#edef-B")
("BASE" . "../struct/links.html#edef-BASE")
("BASEFONT" . "../present/graphics.html#edef-BASEFONT")
("BDO" . "../struct/dirlang.html#edef-BDO")
("BIG" . "../present/graphics.html#edef-BIG")
("BLOCKQUOTE" . "../struct/text.html#edef-BLOCKQUOTE")
("BODY" . "../struct/global.html#edef-BODY")
("BR" . "../struct/text.html#edef-BR")
("BUTTON" . "../interact/forms.html#edef-BUTTON")
("CAPTION" . "../struct/tables.html#edef-CAPTION")
("CENTER" . "../present/graphics.html#edef-CENTER")
("CITE" . "../struct/text.html#edef-CITE")
("CODE" . "../struct/text.html#edef-CODE")
("COL" . "../struct/tables.html#edef-COL")
("COLGROUP" . "../struct/tables.html#edef-COLGROUP")
("DD" . "../struct/lists.html#edef-DD")
("DEL" . "../struct/text.html#edef-del")
("DFN" . "../struct/text.html#edef-DFN")
("DIR" . "../struct/lists.html#edef-DIR")
("DIV" . "../struct/global.html#edef-DIV")
("DL" . "../struct/lists.html#edef-DL")
("DT" . "../struct/lists.html#edef-DT")
("EM" . "../struct/text.html#edef-EM")
("FIELDSET" . "../interact/forms.html#edef-FIELDSET")
("FONT" . "../present/graphics.html#edef-FONT")
("FORM" . "../interact/forms.html#edef-FORM")
("FRAME" . "../present/frames.html#edef-FRAME")
("FRAMESET" . "../present/frames.html#edef-FRAMESET")
("H1" . "../struct/global.html#edef-H1")
("H2" . "../struct/global.html#edef-H2")
("H3" . "../struct/global.html#edef-H3")
("H4" . "../struct/global.html#edef-H4")
("H5" . "../struct/global.html#edef-H5")
("H6" . "../struct/global.html#edef-H6")
("HEAD" . "../struct/global.html#edef-HEAD")
("HR" . "../present/graphics.html#edef-HR")
("HTML" . "../struct/global.html#edef-HTML")
("I" . "../present/graphics.html#edef-I")
("IFRAME" . "../present/frames.html#edef-IFRAME")
("IMG" . "../struct/objects.html#edef-IMG")
("INPUT" . "../interact/forms.html#edef-INPUT")
("INS" . "../struct/text.html#edef-ins")
("ISINDEX" . "../interact/forms.html#edef-ISINDEX")
("KBD" . "../struct/text.html#edef-KBD")
("LABEL" . "../interact/forms.html#edef-LABEL")
("LEGEND" . "../interact/forms.html#edef-LEGEND")
("LI" . "../struct/lists.html#edef-LI")
("LINK" . "../struct/links.html#edef-LINK")
("MAP" . "../struct/objects.html#edef-MAP")
("MENU" . "../struct/lists.html#edef-MENU")
("META" . "../struct/global.html#edef-META")
("NOFRAMES" . "../present/frames.html#edef-NOFRAMES")
("NOSCRIPT" . "../interact/scripts.html#edef-NOSCRIPT")
("OBJECT" . "../struct/objects.html#edef-OBJECT")
("OL" . "../struct/lists.html#edef-OL")
("OPTGROUP" . "../interact/forms.html#edef-OPTGROUP")
("OPTION" . "../interact/forms.html#edef-OPTION")
("P" . "../struct/text.html#edef-P")
("PARAM" . "../struct/objects.html#edef-PARAM")
("PRE" . "../struct/text.html#edef-PRE")
("Q" . "../struct/text.html#edef-Q")
("S" . "../present/graphics.html#edef-S")
("SAMP" . "../struct/text.html#edef-SAMP")
("SCRIPT" . "../interact/scripts.html#edef-SCRIPT")
("SELECT" . "../interact/forms.html#edef-SELECT")
("SMALL" . "../present/graphics.html#edef-SMALL")
("SPAN" . "../struct/global.html#edef-SPAN")
("STRIKE" . "../present/graphics.html#edef-STRIKE")
("STRONG" . "../struct/text.html#edef-STRONG")
("STYLE" . "../present/styles.html#edef-STYLE")
("SUB" . "../struct/text.html#edef-SUB")
("SUP" . "../struct/text.html#edef-SUP")
("TABLE" . "../struct/tables.html#edef-TABLE")
("TBODY" . "../struct/tables.html#edef-TBODY")
("TD" . "../struct/tables.html#edef-TD")
("TEXTAREA" . "../interact/forms.html#edef-TEXTAREA")
("TFOOT" . "../struct/tables.html#edef-TFOOT")
("TH" . "../struct/tables.html#edef-TH")
("THEAD" . "../struct/tables.html#edef-THEAD")
("TITLE" . "../struct/global.html#edef-TITLE")
("TR" . "../struct/tables.html#edef-TR")
("TT" . "../present/graphics.html#edef-TT")
("U" . "../present/graphics.html#edef-U")
("UL" . "../struct/lists.html#edef-UL")
("VAR" . "../struct/text.html#edef-VAR")))
;;
;;
;; Substitutions for: content
;; # as in Snippets/Emphasize.yasnippet
;; ${TM_SELECTED_TEXT/\A<em>(.*)<\/em>\z|.*/(?1:$1:<em>$0<\/em>)/m} =yyas> `(yas/html-toggle-wrap yas/selected-text "em")`
;; ${TM_SELECTED_TEXT/\A<strong>(.*)<\/strong>\z|.*/(?1:$1:<strong>$0<\/strong>)/m} =yyas> `(yas/html-toggle-wrap yas/selected-text "strong")`
;; ${1/\s.*//} =yyas> ${1:$(replace-regexp-in-string "[\s\t\n].*" "" yas/text)}
;; ${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g} =yyas> ${1:$(replace-regexp-in-string " " "_" (downcase yas/text))}
;; ${TM_XHTML} =yyas> `yas/html-xhtml-attr`
;; # as in Commands/Preview in All Active Browsers.yasnippet
;; 970EE6B4-A091-11D9-A5A2-000D93C8BE28 =yyas> (browse-url-of-buffer)
;; 637CEA2B-578C-429C-BB74-30E8D42BFA22 =yyas> (yas/html-tag-description)
;; 2ED44A32-C353-447F-BAE4-E3522DB6944D =yyas> (yas/html-insert-tag-pair-snippet)
;; 991E7EBD-F3F5-469A-BA01-DC30E04AD472 =yyas> (yas/html-wrap-each-line-in-openclose-tag)
;; Substitutions for: binding
;;
;; # as in Snippets/Strong.yasnippet
;; @b =yyas> s-b
;;
;; # as in Snippets/Emphasize.yasnippet
;; ^@i =yyas>
;; @i =yyas> s-i
;;
;; # as in Snippets/Wrap Selection In Tag.yasnippet
;; ^W =yyas> C-c M-w
;;
;; # as in Commands/Insert Tag Pair.yasnippet
;; ^< =yyas> C-<
;;
;; # as in Commands/Documentation for Tag.yasnippet
;; ^h =yyas> C-c M-h
;;
;; # as in Commands/Wrap Each Selected Line in OpenClose Tag.yasnippet
;; ^@W =yyas> C-c M-W
;;
;; # as in Snippets/XHTML &nbsp NonBreakingSpace.yasnippet
;; ~ =yyas> (yas/unknown)
;;
;; # as in Commands/Insert Entity.yasnippet
;; @& =yyas> (yas/unknown)
;;
;; # as in Commands/Refresh All Active Browsers.yasnippet
;; @r =yyas> (yas/unknown)
;;
;; # as in Commands/Persistent Include.yasnippet
;; ^@i =yyas> (yas/unknown)
;;
;; # as in Commands/CodeCompletion HTML Tags.yasnippet
;; ~ =yyas> (yas/unknown)
;;
;; # as in Commands/Update Includes.yasnippet
;; ^@u =yyas> (yas/unknown)
;;
;; # as in Macros/Delete whitespace between tags.yasnippet
;; ^~ =yyas> (yas/unknown)
;;
;; # as in Commands/Tidy.yasnippet
;; ^H =yyas> (yas/unknown)
;;
;;
;; --**--
;; Automatically generated code, do not edit this part
;;
;; Translated menu
;;
(yas/define-menu 'html-mode
'(;; Documentation for Tag
(yas/item "637CEA2B-578C-429C-BB74-30E8D42BFA22")
;; Ignoring Validate Syntax (W3C)
(yas/ignore-item "3F26240E-6E4A-11D9-B411-000D93589AF6")
;; Open Document in Running Browser(s)
(yas/item "970EE6B4-A091-11D9-A5A2-000D93C8BE28")
;; Ignoring Refresh Running Browser(s)
(yas/ignore-item "B8651C6E-A05E-11D9-86AC-000D93C8BE28")
(yas/submenu "Entities"
(;; Ignoring Convert Character / Selection to Entities
(yas/ignore-item "3DD8406C-A116-11D9-A5A2-000D93C8BE28")
;; Ignoring Convert Character / Selection to Entities Excl. Tags
(yas/ignore-item "43C9E8AE-3E53-4B82-A1AF-56697BB3EF09")
;; Ignoring Decode Entities in Line / Selection
(yas/ignore-item "C183920D-A126-11D9-A5A2-000D93C8BE28")
;; Non-Breaking Space
(yas/item "73B40BAE-A295-11D9-87F7-000D93C8BE28")
;; →
(yas/item "C70BB693-0954-4440-AEB4-F2ADD6D923F0")
;; ←
(yas/item "C0418A4A-7E42-4D49-8F86-6E339296CB84")
;; ⇤
(yas/item "7F102705-27D8-4029-BF61-2F042FB61E06")
;; ⌅
(yas/item "7062316B-4236-4793-AD35-05E4A6577393")
;; ⌃
(yas/item "B4987DA5-9C2F-4D2D-AC14-678115079205")
;; ⌦
(yas/item "44E448B6-37CE-4BFE-8611-C5113593B74B")
;; ↩
(yas/item "9B216475-D73D-4518-851F-CACD0066A909")
;; ⇥
(yas/item "ADC78A82-40C2-4AAC-8968-93AF0ED98DF0")
;; ⌫
(yas/item "38E50882-27AF-4246-A039-355C3E1A699E")
;; ⌘
(yas/item "7214ACD1-93D9-4D3F-A428-8A7302E0A35E")
;; ↓
(yas/item "35654B4E-2D76-4CD3-8FBB-2DA1F314BA19")
;; →
(yas/item "AC15621A-8A16-40DD-A671-EA4C37637215")
;; ↑
(yas/item "0E2F4A47-EADE-4A05-931E-FC874FA28FC3")
;; ⇧
(yas/item "1B8D58B9-D9DB-484C-AACD-5D5DF5385308")
;; ⎋
(yas/item "D7CC7C7C-CD01-4357-AF91-AEFFD914DF98")
;; ⌥
(yas/item "980A8D39-CA8B-4EC2-9739-DC36A262F28E")
(yas/separator)
;; Ignoring Insert Entity…
(yas/ignore-item "89E5CC0A-3EFF-4DEF-A299-2E9651DE6529")))
(yas/submenu "URL Escapes"
(;; Ignoring URL Escape Line / Selection
(yas/ignore-item "6B024865-6095-4CE3-8EDD-DC6F2230C2FF")
;; Ignoring URL Unescape Line / Selection
(yas/ignore-item "2C4C9673-B166-432A-8938-75A5CA622481")))
;; Ignoring Encrypt Line / Selection (ROT 13)
(yas/ignore-item "9B13543F-8356-443C-B6E7-D9259B604927")
;; Ignoring CodeCompletion HTML Attributes
(yas/ignore-item "CBD82CF3-74E9-4E7A-B3F6-9348754EB5AA")
;; Insert Open/Close Tag (With Current Word)
(yas/item "2ED44A32-C353-447F-BAE4-E3522DB6944D")
;; Ignoring Insert Close Tag
(yas/ignore-item "0658019F-3635-462E-AAC2-74E4FE508A9B")
(yas/submenu "Insert DocType"
(;; HTML — 4.01 Strict
(yas/item "944F1410-188C-4D70-8340-CECAA56FC7F2")
;; HTML — 4.01 Transitional
(yas/item "B2AAEE56-42D8-42C3-8F67-865473F50E8D")
(yas/separator)
;; XHTML — 1.0 Frameset
(yas/item "9ED6ABBE-A802-11D9-BFC8-000D93C8BE28")
;; XHTML — 1.0 Strict
(yas/item "C8B83564-A802-11D9-BFC8-000D93C8BE28")
;; XHTML — 1.0 Transitional
(yas/item "7D8C2F74-A802-11D9-BFC8-000D93C8BE28")
;; XHTML — 1.1
(yas/item "5CE8FC6E-A802-11D9-BFC8-000D93C8BE28")))
(yas/submenu "Insert Tag"
(;; Ignoring CodeCompletion HTML Tags
(yas/ignore-item "3463E85F-F500-49A0-8631-D78ED85F9D60")
;; Base
(yas/item "4462A6B8-A08A-11D9-A5A2-000D93C8BE28")
;; Body
(yas/item "4905D47B-A08B-11D9-A5A2-000D93C8BE28")
;; Br
(yas/item "3E008E42-A5C9-11D9-9BCD-000D93C8BE28")
;; Div
(yas/item "576036C0-A60E-11D9-ABD6-000D93C8BE28")
;; Embed QT Movie
(yas/item "42F15753-9B6D-4DD8-984C-807B94363277")
;; Fieldset
(yas/item "9BD2BE01-A854-4D55-B584-725D04C075C0")
;; Form
(yas/item "232C2E8B-A08E-11D9-A5A2-000D93C8BE28")
;; Head
(yas/item "9CF008C4-A086-11D9-A5A2-000D93C8BE28")
;; Heading
(yas/item "65BA66DC-A07F-11D9-A5A2-000D93C8BE28")
;; Input
(yas/item "44180979-A08E-11D9-A5A2-000D93C8BE28")
;; Input with Label
(yas/item "D8DCCC81-749A-4E2A-B4BC-D109D5799CAA")
;; Link
(yas/item "77BFD0C0-A08A-11D9-A5A2-000D93C8BE28")
;; Mail Anchor
(yas/item "81DA4C74-A530-11D9-9BCD-000D93C8BE28")
;; Meta
(yas/item "DA99AC44-A083-11D9-A5A2-000D93C8BE28")
;; Option
(yas/item "5820372E-A093-4F38-B25C-B0CCC50A0FC4")
;; Script
(yas/item "6592050A-A087-11D9-A5A2-000D93C8BE28")
;; Script With External Source
(yas/item "7D676C4C-A087-11D9-A5A2-000D93C8BE28")
;; Select Box
(yas/item "26023CFF-C73F-4EF5-9803-E4DBA2CBEADD")
;; Style
(yas/item "3C518074-A088-11D9-A5A2-000D93C8BE28")
;; Table
(yas/item "57176082-A12F-11D9-A5A2-000D93C8BE28")
;; Text Area
(yas/item "AAC9D7B8-A12C-11D9-A5A2-000D93C8BE28")
;; Title
(yas/item "B62ECABE-A086-11D9-A5A2-000D93C8BE28")))
(yas/submenu "Includes"
(;; Ignoring Add Persistent Include
(yas/ignore-item "0D814247-7A00-46EE-A2A4-45FBBF4B1181")
;; Ignoring Update Document
(yas/ignore-item "4400BCE9-20E3-426E-B1D7-2C0BCA53BCF8")
;; Ignoring Help: Persistent Includes
(yas/ignore-item "9AFDEB2C-D9F0-423E-8211-EBB089F51F0C")))
(yas/submenu "Format"
(;; Strong
(yas/item "4117D930-B6FA-4022-97E7-ECCAF4E70F63")
;; Emphasize
(yas/item "EBB98620-3292-4621-BA38-D8A9A65D9551")))
(yas/submenu "Conditional Comments"
(;; IE Conditional Comment: Internet Explorer
(yas/item "0ED6DA73-F38F-4A65-B18F-3379D2BA9387")
;; IE Conditional Comment: Internet Explorer 5.0 only
(yas/item "3A517A94-001E-464D-8184-1FE56D0D0D70")
;; IE Conditional Comment: Internet Explorer 5.5 only
(yas/item "E3F8984E-7269-4981-9D30-967AB56A6ACE")
;; IE Conditional Comment: Internet Explorer 5.x
(yas/item "F3512848-7889-45DA-993B-0547976C8E6D")
;; IE Conditional Comment: Internet Explorer 6 and below
(yas/item "32BBB9AB-8732-4F91-A587-354941A27B69")
;; IE Conditional Comment: Internet Explorer 6 only
(yas/item "48DF7485-52EA-49B3-88AF-3A41F933F325")
;; IE Conditional Comment: Internet Explorer 7 and above
(yas/item "CBC24AF4-88E0-498B-BE50-934B9CF29EC7")
;; IE Conditional Comment: NOT Internet Explorer
(yas/item "F00170EE-4A82-413F-A88B-85293E69A88B")))
;; Wrap Selection in Open/Close Tag
(yas/item "BC8B8AE2-5F16-11D9-B9C3-000D93589AF6")
;; Wrap Each Selected Line in Open/Close Tag
(yas/item "991E7EBD-F3F5-469A-BA01-DC30E04AD472")
;; Wrap in <?= … ?>
(yas/item "912906A0-9A29-434B-AE98-E9DFDE6E48B4")
(yas/separator)
;; Ignoring Strip HTML Tags from Document / Selection
(yas/ignore-item "20D760B5-A127-11D9-A5A2-000D93C8BE28")
;; Ignoring Tidy
(yas/ignore-item "45F92B81-6F0E-11D9-A1E4-000D9332809C"))
'("7B7E945E-A112-11D9-A5A2-000D93C8BE28"
"3C44EABE-8D6F-4B1B-AB91-F419FAD1A0AD"
"9AFDEB2C-D9F0-423E-8211-EBB089F51F0C"
"CBD82CF3-74E9-4E7A-B3F6-9348754EB5AA"
"3463E85F-F500-49A0-8631-D78ED85F9D60"
"9B13543F-8356-443C-B6E7-D9259B604927"
"0D814247-7A00-46EE-A2A4-45FBBF4B1181"
"4400BCE9-20E3-426E-B1D7-2C0BCA53BCF8"
"6B024865-6095-4CE3-8EDD-DC6F2230C2FF"
"3DD8406C-A116-11D9-A5A2-000D93C8BE28"
"43C9E8AE-3E53-4B82-A1AF-56697BB3EF09"
"C183920D-A126-11D9-A5A2-000D93C8BE28"
"2C4C9673-B166-432A-8938-75A5CA622481"
"0658019F-3635-462E-AAC2-74E4FE508A9B"
"89E5CC0A-3EFF-4DEF-A299-2E9651DE6529"
"B8651C6E-A05E-11D9-86AC-000D93C8BE28"
"20D760B5-A127-11D9-A5A2-000D93C8BE28"
"45F92B81-6F0E-11D9-A1E4-000D9332809C"
"3F26240E-6E4A-11D9-B411-000D93589AF6"
"B23D6E15-6B33-11D9-86C1-000D93589AF6"
"C8B717C2-6B33-11D9-BB47-000D93589AF6"
"CD6D2CC6-6B33-11D9-BDFD-000D93589AF6"
"7B7E945E-A112-11D9-A5A2-000D93C8BE28"
"04332FA8-8157-46C4-9854-8C190FFD96C6"
"E6F19171-F664-4B4F-92DA-3E15E6CAD35C"
"26068A55-4C84-409D-BA00-162B55AF6961"
"EBEE6B51-29C7-4362-818F-A190CACD5296"
"65D38039-6B0A-48E9-9E49-43832ECC4107"
"CDE8EFD6-9DE2-4E8C-BB6A-52E8CCD2E977"))
;; Unknown substitutions
;;
;; Substitutions for: content
;;
;; # as in Templates/XHTML 1.1/info.yasnippet
;; CDE8EFD6-9DE2-4E8C-BB6A-52E8CCD2E977 =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer ")` =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer 5_0 only.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer 5.0 only ")` =yyas> (yas/unknown)
;;
;; # as in Commands/CodeCompletion HTML Tags.yasnippet
;; 3463E85F-F500-49A0-8631-D78ED85F9D60 =yyas> (yas/unknown)
;;
;; # as in Snippets/Emphasize.yasnippet
;; `(yas/html-toggle-wrap yas/selected-text "em")` =yyas> (yas/unknown)
;;
;; # as in Templates/HTML 4.0 Transitional/info.yasnippet
;; E6F19171-F664-4B4F-92DA-3E15E6CAD35C =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML form.yasnippet
;; ${TM_FILENAME/(.*?)\..*/$1_submit/} =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML body.yasnippet
;; ${TM_FILENAME/(.*)\..*/\L$1/} =yyas> (yas/unknown)
;;
;; # as in Commands/Insert Entity.yasnippet
;; 89E5CC0A-3EFF-4DEF-A299-2E9651DE6529 =yyas> (yas/unknown)
;;
;; # as in Commands/Convert to HTML Entities.yasnippet
;; 3DD8406C-A116-11D9-A5A2-000D93C8BE28 =yyas> (yas/unknown)
;;
;; # as in Commands/Persistent Include.yasnippet
;; 0D814247-7A00-46EE-A2A4-45FBBF4B1181 =yyas> (yas/unknown)
;;
;; # as in Commands/Refresh All Active Browsers.yasnippet
;; B8651C6E-A05E-11D9-86AC-000D93C8BE28 =yyas> (yas/unknown)
;;
;; # as in Snippets/Strong.yasnippet
;; `(yas/html-toggle-wrap yas/selected-text "strong")` =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer 5_5 only.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer 5.5 only ")` =yyas> (yas/unknown)
;;
;; # as in DragCommands/CSS Link.yasnippet
;; C8B717C2-6B33-11D9-BB47-000D93589AF6 =yyas> (yas/unknown)
;;
;; # as in Commands/Insert Close Tag.yasnippet
;; 0658019F-3635-462E-AAC2-74E4FE508A9B =yyas> (yas/unknown)
;;
;; # as in Commands/Decode Numeric URL Escapes in Line Selection.yasnippet
;; 2C4C9673-B166-432A-8938-75A5CA622481 =yyas> (yas/unknown)
;;
;; # as in Commands/Convert to named entities excl tags.yasnippet
;; 43C9E8AE-3E53-4B82-A1AF-56697BB3EF09 =yyas> (yas/unknown)
;;
;; # as in Commands/About Persistent Includes.yasnippet
;; 9AFDEB2C-D9F0-423E-8211-EBB089F51F0C =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML meta.yasnippet
;; `yas/html-xhtml-attr` =yyas> (yas/unknown)
;;
;; # as in Templates/HTML 4.0 Strict/info.yasnippet
;; 04332FA8-8157-46C4-9854-8C190FFD96C6 =yyas> (yas/unknown)
;;
;; # as in Macros/Delete whitespace between tags.yasnippet
;; 7B7E945E-A112-11D9-A5A2-000D93C8BE28 =yyas> (yas/unknown)
;;
;; # as in DragCommands/Anchor Tag.yasnippet
;; B23D6E15-6B33-11D9-86C1-000D93589AF6 =yyas> (yas/unknown)
;;
;; # as in Templates/XHTML 1.0 Transitional/info.yasnippet
;; 65D38039-6B0A-48E9-9E49-43832ECC4107 =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML title.yasnippet
;; ${TM_FILENAME/((.+)\..*)?/(?2:$2:Page Title)/} =yyas> (yas/unknown)
;;
;; # as in Commands/Tidy.yasnippet
;; 45F92B81-6F0E-11D9-A1E4-000D9332809C =yyas> (yas/unknown)
;;
;; # as in Commands/Strip HTML tags.yasnippet
;; 20D760B5-A127-11D9-A5A2-000D93C8BE28 =yyas> (yas/unknown)
;;
;; # as in Commands/Encrypt Line Selection (ROT 13).yasnippet
;; 9B13543F-8356-443C-B6E7-D9259B604927 =yyas> (yas/unknown)
;;
;; # as in Templates/XHTML 1.0 Strict/info.yasnippet
;; EBEE6B51-29C7-4362-818F-A190CACD5296 =yyas> (yas/unknown)
;;
;; # as in Commands/W3C validation.yasnippet
;; 3F26240E-6E4A-11D9-B411-000D93589AF6 =yyas> (yas/unknown)
;;
;; # as in Commands/Convert Line Selection to URL Escapes.yasnippet
;; 6B024865-6095-4CE3-8EDD-DC6F2230C2FF =yyas> (yas/unknown)
;;
;; # as in Commands/Update Includes.yasnippet
;; 4400BCE9-20E3-426E-B1D7-2C0BCA53BCF8 =yyas> (yas/unknown)
;;
;; # as in Commands/CodeCompletion HTML Attributes.yasnippet
;; CBD82CF3-74E9-4E7A-B3F6-9348754EB5AA =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer 6 and below.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer 6 and below ")` =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer 5_x.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer 5.x ")` =yyas> (yas/unknown)
;;
;; # as in DragCommands/Image Tag.yasnippet
;; CD6D2CC6-6B33-11D9-BDFD-000D93589AF6 =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment NOT Internet Explorer.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: NOT Internet Explorer ")` =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML h1.yasnippet
;; `yas/selected-text` =yyas> (yas/unknown)
;;
;; # as in Templates/XHTML 1.0 Frameset/info.yasnippet
;; 26068A55-4C84-409D-BA00-162B55AF6961 =yyas> (yas/unknown)
;;
;; # as in Commands/Decode HTML Entities.yasnippet
;; C183920D-A126-11D9-A5A2-000D93C8BE28 =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer 7+.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer 7 and above ")` =yyas> (yas/unknown)
;;
;; # as in Snippets/IE Conditional Comment Internet Explorer 6 only.yasnippet
;; `(or (yas/selected-text) " IE Conditional Comment: Internet Explorer 6 only ")` =yyas> (yas/unknown)
;;
;;
;; Substitutions for: condition
;;
;; # as in Snippets/XHTML head.yasnippet
;; text.html - text.html source =yyas> (yas/unknown)
;;
;; # as in Commands/CodeCompletion HTML Attributes.yasnippet
;; text.html punctuation.definition.tag -source, text.html meta.tag -entity.other.attribute-name -source =yyas> (yas/unknown)
;;
;; # as in Snippets/Smart returnindent for tag pairs.yasnippet
;; meta.scope.between-tag-pair =yyas> (yas/unknown)
;;
;; # as in Commands/CodeCompletion HTML Tags.yasnippet
;; text.html -entity.other.attribute-name -string.quoted, invalid.illegal.incomplete.html =yyas> (yas/unknown)
;;
;; # as in Snippets/Wrap Selection In Tag.yasnippet
;; text.html, =yyas> (yas/unknown)
;;
;; # as in Commands/Refresh All Active Browsers.yasnippet
;; text.html, source.css =yyas> (yas/unknown)
;;
;; # as in Templates/XHTML 1.1/info.yasnippet
;; text.html =yyas> (yas/unknown)
;;
;; # as in Commands/Documentation for Tag.yasnippet
;; text.html, text.html entity.name.tag =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML title.yasnippet
;; text.html - text.blog =yyas> (yas/unknown)
;;
;; # as in Snippets/Wrap in =.yasnippet
;; text.html string =yyas> (yas/unknown)
;;
;;
;; Substitutions for: binding
;;
;; # as in Commands/Persistent Include.yasnippet
;; =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML &nbsp NonBreakingSpace.yasnippet
;; ~ =yyas> (yas/unknown)
;;
;; # as in Snippets/Smart returnindent for tag pairs.yasnippet
;; =yyas> (yas/unknown)
;;
;; # as in Commands/W3C validation.yasnippet
;; ^V =yyas> (yas/unknown)
;;
;; # as in Commands/Insert Close Tag.yasnippet
;; ~@. =yyas> (yas/unknown)
;;
;; # as in Snippets/XHTML br.yasnippet
;; ^ =yyas> (yas/unknown)
;;
;; # as in Commands/Insert Entity.yasnippet
;; @& =yyas> (yas/unknown)
;;
;; # as in Commands/Refresh All Active Browsers.yasnippet
;; @r =yyas> (yas/unknown)
;;
;; # as in Commands/CodeCompletion HTML Tags.yasnippet
;; ~ =yyas> (yas/unknown)
;;
;; # as in Commands/Update Includes.yasnippet
;; ^@u =yyas> (yas/unknown)
;;
;; # as in Macros/Delete whitespace between tags.yasnippet
;; ^~ =yyas> (yas/unknown)
;;
;; # as in Commands/Tidy.yasnippet
;; ^H =yyas> (yas/unknown)
;;
;;
;; .yas-setup.el for html-mode ends here

View file

@ -0,0 +1,88 @@
(defun yas/objc-docset-query (query)
)
(defvar yas/objc-method-names (make-vector 1023 0))
(defvar yas/objc-class-names (make-vector 1023 0))
(defvar yas/objc-languages (list))
(defvar yas/objc-defkinds (list))
(defun yas/objc-extract-super-list ()
(interactive)
(setq yas/objc-method-names (make-vector 1023 0)
yas/objc-class-names (make-vector 1023 0)
yas/objc-languages (list)
yas/objc-defkinds (list))
(with-temp-buffer
(shell-command
"/Developer/usr/bin/docsetutil dump -skip-text /Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset/"
(current-buffer))
(goto-char (point-min))
(search-forward-regexp "API index contains .* tokens")
(while (search-forward-regexp "^\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)$" nil 'noerror)
(intern (match-string 3) yas/objc-class-names)
(intern (match-string 4) yas/objc-method-names)
(add-to-list 'yas/objc-languages (match-string 1))
(add-to-list 'yas/objc-defkinds (match-string 2)))))
;; (put (intern-soft (setq chosen (completing-read "Method: " yas/objc-method-names)) yas/objc-method-names)
;; 'someshit
;; 'someday)
;; (completing-read "Class: " yas/objc-class-names)
;; (get (intern-soft (setq chosen (completing-read "hey: " yas/objc-method-names)) yas/objc-method-names)
;; 'someshit)
(defun yas/objc-current-method-signature ()
(let ((orig-point (point))
(start-point nil)
sig
orig-ppss
ppss)
(save-excursion
(condition-case nil
(while (not (eq (point) (point-min))) (backward-sexp))
(error nil))
(when (eq (preceding-char) ?\[)
(setq orig-ppss (syntax-ppss))
(forward-sexp)
(skip-chars-forward " \t\n")
(setq ppss (syntax-ppss))
(while (and (>= (car ppss) (car orig-ppss))
(search-forward-regexp "[[:alpha:]]+:" nil 'noerror))
(setq ppss (syntax-ppss))
(when (eq (car ppss) (car orig-ppss))
(setq sig
(concat (or sig "") (match-string-no-properties 0)))))
sig))))
(defun yas/objc-current-method-signature ()
(let ((orig-point (point))
(start-point nil)
sig
orig-ppss
ppss)
(save-excursion
(condition-case nil
(while (not (eq (point) (point-max))) (backward-sexp))
(error ))
(when (eq (preceding-char) ?\[)
(setq orig-ppss (syntax-ppss))
(forward-sexp)
(skip-chars-forward " \t\n")
(setq ppss (syntax-ppss))
(condition-case nil
(while (and (>= (car ppss) (car orig-ppss))
(search-forward-regexp "[[:alpha:]]+:" orig-point 'noerror))
(setq ppss (syntax-ppss))
(when (eq (car ppss) (car orig-ppss))
(setq sig
(concat (or sig "") (match-string-no-properties 0))))
(forward-sexp))
(error nil))
(save-excursion
(backward-word)
(concat sig (buffer-substring-no-properties (point) orig-point)))
sig))))

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

467
vendor/yasnippet/extras/textmate_import.rb vendored Executable file
View file

@ -0,0 +1,467 @@
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
# textmate_import.rb --- import textmate snippets
#
# Copyright (C) 2009 Rob Christie, 2010 João Távora
#
# This is a quick script to generate YASnippets from TextMate Snippets.
#
# I based the script off of a python script of a similar nature by
# Jeff Wheeler: http://nokrev.com
# http://code.nokrev.com/?p=snippet-copier.git;a=blob_plain;f=snippet_copier.py
#
# Use textmate_import.rb --help to get usage information.
require 'rubygems'
require 'plist'
require 'trollop'
require 'fileutils'
require 'shellwords' # String#shellescape
require 'ruby-debug' if $DEBUG
opts = Trollop::options do
opt :bundle_dir, "TextMate bundle directory", :short => '-d', :type => :string
opt :output_dir, "Output directory", :short => '-o', :type => :string
opt :glob, "Specific snippet file (or glob) inside <bundle_dir>", :short => '-g', :default => '*.{tmSnippet,tmCommand,plist,tmMacro}'
opt :pretty, 'Pretty prints multiple snippets when printing to standard out', :short => '-p'
opt :quiet, "Be quiet", :short => '-q'
opt :plist_file, "Use a specific plist file to derive menu information from", :type => :string
end
Trollop::die :bundle_dir, "must be provided" unless opts.bundle_dir
Trollop::die :bundle_dir, "must exist" unless File.directory? opts.bundle_dir
Trollop::die :output_dir, "must be provided" unless opts.output_dir
Trollop::die :output_dir, "must exist" unless File.directory? opts.output_dir
Trollop::die :plist_file, "must exist" if opts.plist_file && File.directory?(opts.plist_file)
# Represents and is capable of outputting the representation of a
# TextMate menu in terms of `yas/define-menu'
#
class TmSubmenu
@@excluded_items = [];
def self.excluded_items; @@excluded_items; end
attr_reader :items, :name
def initialize(name, hash)
@items = hash["items"]
@name = name
end
def to_lisp(allsubmenus,
deleteditems,
indent = 0,
thingy = ["(", ")"])
first = true;
string = ""
separator_useless = true;
items.each do |uuid|
if deleteditems && deleteditems.index(uuid)
$stderr.puts "#{uuid} has been deleted!"
next
end
string += "\n"
string += " " * indent
string += (first ? thingy[0] : (" " * thingy[0].length))
submenu = allsubmenus[uuid]
snippet = TmSnippet::snippets_by_uid[uuid]
unimplemented = TmSnippet::unknown_substitutions["content"][uuid]
if submenu
str = "(yas/submenu "
string += str + "\"" + submenu.name + "\""
string += submenu.to_lisp(allsubmenus, deleteditems,
indent + str.length + thingy[0].length)
elsif snippet and not unimplemented
string += ";; " + snippet.name + "\n"
string += " " * (indent + thingy[0].length)
string += "(yas/item \"" + uuid + "\")"
separator_useless = false;
elsif snippet and unimplemented
string += ";; Ignoring " + snippet.name + "\n"
string += " " * (indent + thingy[0].length)
string += "(yas/ignore-item \"" + uuid + "\")"
separator_useless = true;
elsif (uuid =~ /---------------------/)
string += "(yas/separator)" unless separator_useless
end
first = false;
end
string += ")"
string += thingy[1]
return string
end
def self.main_menu_to_lisp (parsed_plist, modename)
mainmenu = parsed_plist["mainMenu"]
deleted = parsed_plist["deleted"]
root = TmSubmenu.new("__main_menu__", mainmenu)
all = {}
mainmenu["submenus"].each_pair do |k,v|
all[k] = TmSubmenu.new(v["name"], v)
end
excluded = (mainmenu["excludedItems"] || []) + TmSubmenu::excluded_items
closing = "\n '("
closing+= excluded.collect do |uuid|
"\"" + uuid + "\""
end.join( "\n ") + "))"
str = "(yas/define-menu "
return str + "'#{modename}" + root.to_lisp(all,
deleted,
str.length,
["'(" , closing])
end
end
# Represents a textmate snippet
#
# - @file is the .tmsnippet/.plist file path relative to cwd
#
# - optional @info is a Plist.parsed info.plist found in the bundle dir
#
# - @@snippets_by_uid is where one can find all the snippets parsed so
# far.
#
#
class SkipSnippet < RuntimeError; end
class TmSnippet
@@known_substitutions = {
"content" => {
"${TM_RAILS_TEMPLATE_START_RUBY_EXPR}" => "<%= ",
"${TM_RAILS_TEMPLATE_END_RUBY_EXPR}" => " %>",
"${TM_RAILS_TEMPLATE_START_RUBY_INLINE}" => "<% ",
"${TM_RAILS_TEMPLATE_END_RUBY_INLINE}" => " -%>",
"${TM_RAILS_TEMPLATE_END_RUBY_BLOCK}" => "end" ,
"${0:$TM_SELECTED_TEXT}" => "${0:`yas/selected-text`}",
/\$\{(\d+)\}/ => "$\\1",
"${1:$TM_SELECTED_TEXT}" => "${1:`yas/selected-text`}",
"${2:$TM_SELECTED_TEXT}" => "${2:`yas/selected-text`}",
'$TM_SELECTED_TEXT' => "`yas/selected-text`",
%r'\$\{TM_SELECTED_TEXT:([^\}]*)\}' => "`(or (yas/selected-text) \"\\1\")`",
%r'`[^`]+\n[^`]`' => Proc.new {|uuid, match| "(yas/multi-line-unknown " + uuid + ")"}},
"condition" => {
/^source\..*$/ => "" },
"binding" => {},
"type" => {}
}
def self.extra_substitutions; @@extra_substitutions; end
@@extra_substitutions = {
"content" => {},
"condition" => {},
"binding" => {},
"type" => {}
}
def self.unknown_substitutions; @@unknown_substitutions; end
@@unknown_substitutions = {
"content" => {},
"condition" => {},
"binding" => {},
"type" => {}
}
@@snippets_by_uid={}
def self.snippets_by_uid; @@snippets_by_uid; end
def initialize(file,info=nil)
@file = file
@info = info
@snippet = TmSnippet::read_plist(file)
@@snippets_by_uid[self.uuid] = self;
raise SkipSnippet.new "not a snippet/command/macro." unless (@snippet["scope"] || @snippet["command"])
raise SkipSnippet.new "looks like preferences."if @file =~ /Preferences\//
raise RuntimeError.new("Cannot convert this snippet #{file}!") unless @snippet;
end
def name
@snippet["name"]
end
def uuid
@snippet["uuid"]
end
def key
@snippet["tabTrigger"]
end
def condition
yas_directive "condition"
end
def type
override = yas_directive "type"
if override
return override
else
return "# type: command\n" if @file =~ /(Commands\/|Macros\/)/
end
end
def binding
yas_directive "binding"
end
def content
known = @@known_substitutions["content"]
extra = @@extra_substitutions["content"]
if direct = extra[uuid]
return direct
else
ct = @snippet["content"]
if ct
known.each_pair do |k,v|
if v.respond_to? :call
ct.gsub!(k) {|match| v.call(uuid, match)}
else
ct.gsub!(k,v)
end
end
extra.each_pair do |k,v|
ct.gsub!(k,v)
end
# the remaining stuff is an unknown substitution
#
[ %r'\$\{ [^/\}\{:]* / [^/]* / [^/]* / [^\}]*\}'x ,
%r'\$\{[^\d][^}]+\}',
%r'`[^`]+`',
%r'\$TM_[\w_]+',
%r'\(yas/multi-line-unknown [^\)]*\)'
].each do |reg|
ct.scan(reg) do |match|
@@unknown_substitutions["content"][match] = self
end
end
return ct
else
@@unknown_substitutions["content"][uuid] = self
TmSubmenu::excluded_items.push(uuid)
return "(yas/unimplemented)"
end
end
end
def to_yas
doc = "# -*- mode: snippet -*-\n"
doc << (self.type || "")
doc << "# uuid: #{self.uuid}\n"
doc << "# key: #{self.key}\n" if self.key
doc << "# contributor: Translated from textmate snippet by PROGRAM_NAME\n"
doc << "# name: #{self.name}\n"
doc << (self.binding || "")
doc << (self.condition || "")
doc << "# --\n"
doc << (self.content || "(yas/unimplemented)")
doc
end
def self.canonicalize(filename)
invalid_char = /[^ a-z_0-9.+=~(){}\/'`&#,-]/i
filename.
gsub(invalid_char, ''). # remove invalid characters
gsub(/ {2,}/,' '). # squeeze repeated spaces into a single one
rstrip # remove trailing whitespaces
end
def yas_file()
File.join(TmSnippet::canonicalize(@file[0, @file.length-File.extname(@file).length]) + ".yasnippet")
end
def self.read_plist(xml_or_binary)
begin
parsed = Plist::parse_xml(xml_or_binary)
return parsed if parsed
raise ArgumentError.new "Probably in binary format and parse_xml is very quiet..."
rescue StandardError => e
if (system "plutil -convert xml1 #{xml_or_binary.shellescape} -o /tmp/textmate_import.tmpxml")
return Plist::parse_xml("/tmp/textmate_import.tmpxml")
else
raise RuntimeError.new "plutil failed miserably, check if you have it..."
end
end
end
private
@@yas_to_tm_directives = {"condition" => "scope", "binding" => "keyEquivalent", "key" => "tabTrigger"}
def yas_directive(yas_directive)
#
# Merge "known" hardcoded substitution with "extra" substitutions
# provided in the .yas-setup.el file.
#
merged = @@known_substitutions[yas_directive].
merge(@@extra_substitutions[yas_directive])
#
# First look for an uuid-based direct substitution for this
# directive.
#
if direct = merged[uuid]
return "# #{yas_directive}: "+ direct + "\n" unless direct.empty?
else
tm_directive = @@yas_to_tm_directives[yas_directive]
val = tm_directive && @snippet[tm_directive]
if val and !val.delete(" ").empty? then
#
# Sort merged substitutions by length (bigger ones first,
# regexps last), and apply them to the value gotten for plist.
#
allsubs = merged.sort_by do |what, with|
if what.respond_to? :length then -what.length else 0 end
end
allsubs.each do |sub|
if val.gsub!(sub[0],sub[1])
# puts "SUBBED #{sub[0]} for #{sub[1]}"
return "# #{yas_directive}: "+ val + "\n" unless val.empty?
end
end
#
# If we get here, no substitution matched, so mark this an
# unknown substitution.
#
@@unknown_substitutions[yas_directive][val] = self
return "## #{yas_directive}: \""+ val + "\n"
end
end
end
end
if __FILE__ == $PROGRAM_NAME
# Read the the bundle's info.plist if can find it/guess it
#
info_plist_file = opts.plist_file || File.join(opts.bundle_dir,"info.plist")
info_plist = TmSnippet::read_plist(info_plist_file) if info_plist_file and File.readable? info_plist_file;
# Calculate the mode name
#
modename = File.basename opts.output_dir || "major-mode-name"
# Read in .yas-setup.el looking for the separator between auto-generated
#
original_dir = Dir.pwd
yas_setup_el_file = File.join(original_dir, opts.output_dir, ".yas-setup.el")
separator = ";; --**--"
whole, head , tail = "", "", ""
if File::exists? yas_setup_el_file
File.open yas_setup_el_file, 'r' do |file|
whole = file.read
head , tail = whole.split(separator)
end
else
head = ";; .yas-setup.el for #{modename}\n" + ";; \n"
end
# Now iterate the tail part to find extra substitutions
#
tail ||= ""
head ||= ""
directive = nil
# puts "get this head #{head}"
head.each_line do |line|
case line
when /^;; Substitutions for:(.*)$/
directive = $~[1].strip
# puts "found the directove #{directive}"
when /^;;(.*)[ ]+=yyas>(.*)$/
replacewith = $~[2].strip
lookfor = $~[1]
lookfor.gsub!(/^[ ]*/, "")
lookfor.gsub!(/[ ]*$/, "")
# puts "found this wonderful substitution for #{directive} which is #{lookfor} => #{replacewith}"
unless !directive or replacewith =~ /yas\/unknown/ then
TmSnippet.extra_substitutions[directive][lookfor] = replacewith
end
end
end
# Glob snippets into snippet_files, going into subdirs
#
Dir.chdir opts.bundle_dir
snippet_files_glob = File.join("**", opts.glob)
snippet_files = Dir.glob(snippet_files_glob)
# Attempt to convert each snippet files in snippet_files
#
puts "Will try to convert #{snippet_files.length} snippets...\n" unless opts.quiet
# Iterate the globbed files
#
snippet_files.each do |file|
begin
$stdout.print "Processing \"#{File.join(opts.bundle_dir,file)}\"..." unless opts.quiet
snippet = TmSnippet.new(file,info_plist)
file_to_create = File.join(original_dir, opts.output_dir, snippet.yas_file)
FileUtils.mkdir_p(File.dirname(file_to_create))
File.open(file_to_create, 'w') do |f|
f.write(snippet.to_yas)
end
$stdout.print "done\n" unless opts.quiet
rescue SkipSnippet => e
$stdout.print "skipped! #{e.message}\n" unless opts.quiet
rescue RuntimeError => e
$stderr.print "failed! #{e.message}\n"
$strerr.print "#{e.backtrace.join("\n")}" unless opts.quiet
end
end
# Attempt to decypher the menu
#
menustr = TmSubmenu::main_menu_to_lisp(info_plist, modename) if info_plist
puts menustr if $DEBUG
# Write some basic .yas-* files
#
if opts.output_dir
FileUtils.mkdir_p opts.output_dir
FileUtils.touch File.join(original_dir, opts.output_dir, ".yas-make-groups") unless menustr
# Now, output head + a new tail in (possibly new) .yas-setup.el
# file
#
File.open yas_setup_el_file, 'w' do |file|
file.puts head
file.puts separator
file.puts ";; Automatically generated code, do not edit this part"
file.puts ";; "
file.puts ";; Translated menu"
file.puts ";; "
file.puts menustr
file.puts
file.puts ";; Unknown substitutions"
file.puts ";; "
["content", "condition", "binding"].each do |type|
file.puts ";; Substitutions for: #{type}"
file.puts ";; "
# TmSnippet::extra_substitutions[type].
# each_pair do |k,v|
# file.puts ";; " + k + "" + (" " * [1, 90-k.length].max) + " =yyas> " + v
# end
unknown = TmSnippet::unknown_substitutions[type];
unknown.keys.uniq.each do |k|
file.puts ";; # as in " + unknown[k].yas_file
file.puts ";; " + k + "" + (" " * [1, 90-k.length].max) + " =yyas> (yas/unknown)"
file.puts ";; "
end
file.puts ";; "
file.puts
end
file.puts ";; .yas-setup.el for #{modename} ends here"
end
end
end

View file

@ -0,0 +1 @@
cc-mode

View file

@ -0,0 +1,4 @@
# name: v.begin(), v.end()
# key: beginend
# --
${1:v}.begin(), $1.end

View file

@ -0,0 +1,9 @@
# name: class ... { ... }
# key: class
# --
class ${1:Name}
{
public:
${1:$(yas/substr text "[^: ]*")}($2);
virtual ~${1:$(yas/substr text "[^: ]*")}();
};

4
vendor/yasnippet/snippets/c++-mode/ns vendored Normal file
View file

@ -0,0 +1,4 @@
# name: namespace ...
# key: ns
# --
namespace

View file

@ -0,0 +1,4 @@
# name: template <typename ...>
# key: template
# --
template <typename ${T}>

View file

@ -0,0 +1,5 @@
# name: using namespace ...
# key: using
# --
using namespace ${std};
$0

View file

@ -0,0 +1 @@
cc-mode

View file

@ -0,0 +1,4 @@
# name: FILE *fp = fopen(..., ...);
# key: fopen
# --
FILE *${fp} = fopen(${"file"}, "${r}");

View file

@ -0,0 +1,7 @@
# -*- mode: snippet -*-
# name: printf
# contributor: joaotavora
# key: printf
# --
printf ("${1:%s}\\n"${1:$(if (string-match "%" text) "," "\);")
}$2${1:$(if (string-match "%" text) "\);" "")}

View file

@ -0,0 +1 @@
text-mode

7
vendor/yasnippet/snippets/cc-mode/do vendored Normal file
View file

@ -0,0 +1,7 @@
# name: do { ... } while (...)
# key: do
# --
do
{
$0
} while (${1:condition});

7
vendor/yasnippet/snippets/cc-mode/for vendored Normal file
View file

@ -0,0 +1,7 @@
# name: for (...; ...; ...) { ... }
# key: for
# --
for (${1:int i = 0}; ${2:i < N}; ${3:++i})
{
$0
}

7
vendor/yasnippet/snippets/cc-mode/if vendored Normal file
View file

@ -0,0 +1,7 @@
# name: if (...) { ... }
# key: if
# --
if (${1:condition})
{
$0
}

4
vendor/yasnippet/snippets/cc-mode/inc vendored Normal file
View file

@ -0,0 +1,4 @@
# name: #include "..."
# key: inc
# --
#include "$1"

View file

@ -0,0 +1,4 @@
# name: #include <...>
# key: inc
# --
#include <$1>

View file

@ -0,0 +1,8 @@
# name: int main(argc, argv) { ... }
# key: main
# --
int main(int argc, char *argv[])
{
$0
return 0;
}

View file

@ -0,0 +1,9 @@
# name: #ifndef XXX; #define XXX; #endif
# key: once
# --
#ifndef ${1:_`(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`_H_}
#define $1
$0
#endif /* $1 */

View file

@ -0,0 +1,7 @@
# name: struct ... { ... }
# key: struct
# --
struct ${1:name}
{
$0
};

View file

@ -0,0 +1 @@
perl-mode

View file

@ -0,0 +1 @@
cc-mode

View file

@ -0,0 +1,8 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: private attribute ....;
# key: attrib
# --
/// <summary>
/// $3
/// </summary>
private $1 $2;

View file

@ -0,0 +1,22 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: private attribute ....; public property ... ... { ... }
# key: attrib
# --
/// <summary>
/// $3
/// </summary>
private $1 $2;
/// <summary>
/// $4
/// </summary>
/// <value>$5</value>
public $1 $2
{
get {
return this.$2;
}
set {
this.$2 = value;
}
}

View file

@ -0,0 +1,22 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: private _attribute ....; public Property ... ... { ... }
# key: attrib
# --
/// <summary>
/// $3
/// </summary>
private $1 ${2:$(if (> (length text) 0) (format "_%s%s" (downcase (substring text 0 1)) (substring text 1 (length text))) "")};
/// <summary>
/// ${3:Description}
/// </summary>
/// <value><c>$1</c></value>
public ${1:Type} ${2:Name}
{
get {
return this.${2:$(if (> (length text) 0) (format "_%s%s" (downcase (substring text 0 1)) (substring text 1 (length text))) "")};
}
set {
this.${2:$(if (> (length text) 0) (format "_%s%s" (downcase (substring text 0 1)) (substring text 1 (length text))) "")} = value;
}
}

View file

@ -0,0 +1,22 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: class ... { ... }
# key: class
# --
${5:public} class ${1:Name}
{
#region Ctor & Destructor
/// <summary>
/// ${3:Standard Constructor}
/// </summary>
public $1($2)
{
}
/// <summary>
/// ${4:Default Destructor}
/// </summary>
public ~$1()
{
}
#endregion
}

View file

@ -0,0 +1,7 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: /// <summary> ... </summary>
# key: comment
# --
/// <summary>
/// $1
/// </summary>

View file

@ -0,0 +1,5 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: /// <param name="..."> ... </param>
# key: comment
# --
/// <param name="$1">$2</param>

View file

@ -0,0 +1,5 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: /// <param name="..."> ... </param>
# key: comment
# --
/// <returns>$1</returns>

View file

@ -0,0 +1,5 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: /// <exception cref="..."> ... </exception>
# key: comment
# --
/// <exception cref="$1">$2</exception>

View file

@ -0,0 +1,11 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: public void Method { ... }
# key: method
# --
/// <summary>
/// ${5:Description}
/// </summary>${2:$(if (string= (upcase text) "VOID") "" (format "%s%s%s" "\n/// <returns><c>" text "</c></returns>"))}
${1:public} ${2:void} ${3:MethodName}($4)
{
$0
}

View file

@ -0,0 +1,8 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: namespace .. { ... }
# key: namespace
# --
namespace $1
{
$0
}

View file

@ -0,0 +1,17 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: property ... ... { ... }
# key: prop
# --
/// <summary>
/// $5
/// </summary>
/// <value>$6</value>
$1 $2 $3
{
get {
return this.$4;
}
set {
this.$4 = value;
}
}

View file

@ -0,0 +1,7 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: #region ... #endregion
# key: region
# --
#region $1
$0
#endregion

View file

@ -0,0 +1,5 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: using ...;
# key: using
# --
using $1;

View file

@ -0,0 +1,5 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: using System;
# key: using
# --
using System;

View file

@ -0,0 +1,5 @@
# contributor: Alejandro Espinoza Esparza <aespinoza@structum.com.mx>
# name: using System....;
# key: using
# --
using System.$1;

View file

@ -0,0 +1 @@
text-mode

4
vendor/yasnippet/snippets/css-mode/bg vendored Normal file
View file

@ -0,0 +1,4 @@
# name: background-color: ...
# key: bg
# --
background-color: #${1:DDD};

View file

@ -0,0 +1,4 @@
# name: background-image: ...
# key: bg
# --
background-image: url($1);

View file

@ -0,0 +1,4 @@
# name: border size style color
# key: bor
# --
border: ${1:1px} ${2:solid} #${3:999};

5
vendor/yasnippet/snippets/css-mode/cl vendored Normal file
View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: clear: ...
# key: cl
# --
clear: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: display: block
# key: disp
# --
display: block;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: display: inline
# key: disp
# --
display: inline;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: display: none
# key: disp
# --
display: none;

5
vendor/yasnippet/snippets/css-mode/ff vendored Normal file
View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: font-family: ...
# key: ff
# --
font-family: $1;

5
vendor/yasnippet/snippets/css-mode/fs vendored Normal file
View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: font-size: ...
# key: fs
# --
font-size: ${12px};

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: margin-bottom: ...
# key: mar
# --
margin-bottom: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: margin-left: ...
# key: mar
# --
margin-left: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: margin: ...
# key: mar
# --
margin: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: margin top right bottom left
# key: mar
# --
margin: ${top} ${right} ${bottom} ${left};

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: margin-right: ...
# key: mar
# --
margin-right: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: margin-top: ...
# key: mar
# --
margin-top: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: padding-bottom: ...
# key: pad
# --
padding-bottom: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: padding-left: ...
# key: pad
# --
padding-left: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: padding: ...
# key: pad
# --
padding: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: padding: top right bottom left
# key: pad
# --
padding: ${top} ${right} ${bottom} ${left};

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: padding-right: ...
# key: pad
# --
padding-right: $1;

View file

@ -0,0 +1,5 @@
# contributor: rejeep <johan.rejeep@gmail.com>
# name: padding-top: ...
# key: pad
# --
padding-top: $1;

View file

@ -0,0 +1,7 @@
-*- coding: utf-8 -*-
Originally started by Xah Lee (xahlee.org) on 2009-02-22
Released under GPL 3.
Feel free to add missing ones or modify existing ones to improve.
Those starting with “x-” are supposed to be idiom templates. Not sure it's very useful. They might start with “i-” or "id-" in the future.

View file

@ -0,0 +1 @@
text-mode

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: add-hook
# key: add-hook
# key: ah
# --
(add-hook HOOK$0 FUNCTION)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: and
# key: and
# key: a
# --
(and $0)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: append
# key: append
# --
(append $0 )

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: apply
# key: apply
# --
(apply $0 )

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: aref
# key: aref
# --
(aref ARRAY$0 INDEX)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: aset
# key: aset
# --
(aset ARRAY$0 IDX NEWELT)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: assq
# key: assq
# --
(assq KEY$0 LIST)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: autoload
# key: autoload
# --
(autoload 'FUNCNAME$0 "FILENAME" &optional "DOCSTRING" INTERACTIVE TYPE)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: backward-char
# key: backward-char
# key: bc
# --
(backward-char $0)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: beginning-of-line
# key: beginning-of-line
# key: bol
# --
(beginning-of-line)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: bounds-of-thing-at-point
# key: bounds-of-thing-at-point
# key: botap
# --
(bounds-of-thing-at-point '$0) ; symbol, list, sexp, defun, filename, url, email, word, sentence, whitespace, line, page ...

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: buffer-file-name
# key: buffer-file-name
# key: bfn
# --
(buffer-file-name)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: buffer-modified-p
# key: buffer-modified-p
# key: bmp
# --
(buffer-modified-p $0)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: buffer-substring-no-properties
# key: buffer-substring-no-properties
# key: bsnp
# --
(buffer-substring-no-properties START$0 END)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: buffer-substring
# key: buffer-substring
# key: bs
# --
(buffer-substring START$0 END)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: car
# key: car
# --
(car $0)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: cdr
# key: cdr
# --
(cdr $0)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: concat
# key: concat
# --
(concat $0)

View file

@ -0,0 +1,8 @@
# contributor: Xah Lee (XahLee.org)
# name: cond
# key: cond
# --
(cond
(CONDITION$0 BODY)
(CONDITION BODY)
)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: condition-case
# key: condition-case
# key: cc
# --
(condition-case $0 )

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: cons
# key: cons
# --
(cons $0)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: consp
# key: consp
# --
(consp $0 )

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: copy-directory
# key: copy-directory
# key: cd
# --
(copy-directory $0 NEWNAME &optional KEEP-TIME PARENTS)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: copy-file
# key: copy-file
# key: cf
# --
(copy-file FILE$0 NEWNAME &optional OK-IF-ALREADY-EXISTS KEEP-TIME PRESERVE-UID-GID)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: current-buffer
# key: current-buffer
# key: cb
# --
(current-buffer)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: custom-autoload
# key: custom-autoload
# key: ca
# --
(custom-autoload$0 SYMBOL LOAD &optional NOSET)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: defalias
# key: defalias
# --
(defalias 'SYMBOL$0 'DEFINITION &optional DOCSTRING)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: defcustom
# key: defcustom
# --
(defcustom $0 VALUE "DOC" &optional ARGS)

View file

@ -0,0 +1,6 @@
# contributor: Xah Lee (XahLee.org)
# name: define-key
# key: define-key
# key: dk
# --
(define-key KEYMAPNAME$0 (kbd "M-b") 'FUNCNAME)

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: defsubst
# key: defsubst
# --
(defsubst $0 )

View file

@ -0,0 +1,12 @@
# contributor: Xah Lee (XahLee.org)
# name: defun
# key: defun
# key: d
# --
(defun $1 ()
"DOCSTRING"
(interactive)
(let (var1)
(setq var1 some)
$0
))

View file

@ -0,0 +1,5 @@
# contributor: Xah Lee (XahLee.org)
# name: defvar
# key: defvar
# --
(defvar $0 &optional INITVALUE "DOCSTRING")

Some files were not shown because too many files have changed in this diff Show more