From 57c150b42dcad94764dc7863dc4d45311f3acb3e Mon Sep 17 00:00:00 2001 From: capitaomorte Date: Thu, 15 Oct 2009 14:08:17 +0000 Subject: [PATCH] * Finished commiting Rob Christie's patches to the ruby snippets (add setup.el, delete the # => snippet) * Tweaked some ruby snippets * Disabled bindings for some TextMate text-mode snippets --- .../ruby-mode/Add '# =>' Marker.yasnippet | 6 ----- .../Wrap in Begin … Rescue … End.yasnippet | 11 +++++--- .../ruby-mode/embed string variable.yasnippet | 7 ++--- extras/imported/ruby-mode/setup.el | 27 +++++++++++++++++++ .../text-mode/Conitnue bullet.yasnippet | 2 +- .../text-mode/Conitnue light bullet.yasnippet | 2 +- .../text-mode/Conitnue star bullet.yasnippet | 2 +- yasnippet.el | 5 ++++ 8 files changed, 47 insertions(+), 15 deletions(-) delete mode 100644 extras/imported/ruby-mode/Add '# =>' Marker.yasnippet create mode 100644 extras/imported/ruby-mode/setup.el diff --git a/extras/imported/ruby-mode/Add '# =>' Marker.yasnippet b/extras/imported/ruby-mode/Add '# =>' Marker.yasnippet deleted file mode 100644 index a385161..0000000 --- a/extras/imported/ruby-mode/Add '# =>' Marker.yasnippet +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# key: # -# contributor: Translated from TextMate Snippet -# name: Add ‘# =>’ Marker -# -- -# => \ No newline at end of file diff --git a/extras/imported/ruby-mode/Declarations/Wrap in Begin … Rescue … End.yasnippet b/extras/imported/ruby-mode/Declarations/Wrap in Begin … Rescue … End.yasnippet index fcb9c70..f1e185f 100644 --- a/extras/imported/ruby-mode/Declarations/Wrap in Begin … Rescue … End.yasnippet +++ b/extras/imported/ruby-mode/Declarations/Wrap in Begin … Rescue … End.yasnippet @@ -2,11 +2,16 @@ # key: begin # contributor: Translated from TextMate Snippet # name: begin … rescue … end -## binding: "^W" -## condition: "source.ruby - comment" +## binding: "C-c C-w" +# condition: (not (yas/ruby-in-comment-p)) # -- begin - `(or yas/selected-text (car kill-ring))`$3 + `(or yas/selected-text + (and cua-mode + (prog1 + (get-register ?0) + (set-register ?0 nil))) + (car kill-ring))`$3 rescue ${1:Exception}${2:$(if (string= yas/text "") "" " => ")}${2:e} $0 end diff --git a/extras/imported/ruby-mode/embed string variable.yasnippet b/extras/imported/ruby-mode/embed string variable.yasnippet index adc3db7..4baf927 100644 --- a/extras/imported/ruby-mode/embed string variable.yasnippet +++ b/extras/imported/ruby-mode/embed string variable.yasnippet @@ -1,7 +1,8 @@ # -*- mode: snippet -*- # contributor: Translated from TextMate Snippet # name: Embedded Code — #{…} -## binding: "C-#" -## condition: "(string.quoted.double.ruby|string.interpolated.ruby) - string source" +# binding: "#" +# condition: (yas/ruby-in-interpolated-string-p) +# expand-env: ((yas/wrap-around-region t)) # -- -{${1:`yas/selected-text`}} \ No newline at end of file +#{$0} \ No newline at end of file diff --git a/extras/imported/ruby-mode/setup.el b/extras/imported/ruby-mode/setup.el new file mode 100644 index 0000000..7ef5312 --- /dev/null +++ b/extras/imported/ruby-mode/setup.el @@ -0,0 +1,27 @@ +(defvar yas/ruby-snippet-open-paren " " + "The open parenthesis used in ruby-mode snippets. Normally blank but could be (") +(defvar yas/ruby-snippet-close-paren " " + "The close parenthesis used in ruby-mode snippets. Normally blank but could be )") +(defun yas/ruby-snippet-paren (&optional arg) + "Defaults to returning the open paren. If arg equals t then shows close paren." + (if arg + yas/ruby-snippet-close-paren + yas/ruby-snippet-open-paren)) + +(defun yas/ruby-infer-class-name () + "Infer the class name from the buffer. Thanks to hitesh " + (let ((fn (capitalize (file-name-nondirectory + (file-name-sans-extension + (buffer-file-name)))))) + (cond + ((string-match "_" fn) (replace-match "" nil nil fn)) + (t fn)))) + +(defun yas/ruby-in-interpolated-string-p () + (eq (fourth (syntax-ppss)) + ?\")) + +(defun yas/ruby-in-comment-p () + (fifth (syntax-ppss))) + + diff --git a/extras/imported/text-mode/Conitnue bullet.yasnippet b/extras/imported/text-mode/Conitnue bullet.yasnippet index 2943d95..24c6dad 100644 --- a/extras/imported/text-mode/Conitnue bullet.yasnippet +++ b/extras/imported/text-mode/Conitnue bullet.yasnippet @@ -1,7 +1,7 @@ # -*- mode: snippet -*- # contributor: Translated from TextMate Snippet # name: Continue Bullet -# binding: "" +## binding: "" # -- • \ No newline at end of file diff --git a/extras/imported/text-mode/Conitnue light bullet.yasnippet b/extras/imported/text-mode/Conitnue light bullet.yasnippet index e336fcd..ba8f9f6 100644 --- a/extras/imported/text-mode/Conitnue light bullet.yasnippet +++ b/extras/imported/text-mode/Conitnue light bullet.yasnippet @@ -1,7 +1,7 @@ # -*- mode: snippet -*- # contributor: Translated from TextMate Snippet # name: Continue Light Bullet -# binding: "" +## binding: "" # -- · \ No newline at end of file diff --git a/extras/imported/text-mode/Conitnue star bullet.yasnippet b/extras/imported/text-mode/Conitnue star bullet.yasnippet index d45ae58..23e4981 100644 --- a/extras/imported/text-mode/Conitnue star bullet.yasnippet +++ b/extras/imported/text-mode/Conitnue star bullet.yasnippet @@ -1,7 +1,7 @@ # -*- mode: snippet -*- # contributor: Translated from TextMate Snippet # name: Continue Star Bullet -# binding: "" +## binding: "" # -- * \ No newline at end of file diff --git a/yasnippet.el b/yasnippet.el index 7f16747..a997d3b 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -1449,6 +1449,11 @@ TEMPLATES is a list of `yas/template'." (defun yas/load-directory-1 (directory &optional parents no-hierarchy-parents making-groups-sym) "Recursively load snippet templates from DIRECTORY." ;; TODO: Rewrite this horrible, horrible monster I created + ;; TODO: Temp hack, load a setup.el file if its exists + (let ((file (concat directory "/" "setup.el"))) + (when (file-exists-p file) + (load file))) + (unless (file-exists-p (concat directory "/" ".yas-skip")) (let* ((major-mode-and-parents (unless making-groups-sym (yas/compute-major-mode-and-parents (concat directory "/dummy")