minor tweaks to ruby-mode's .yas-setup.el

This commit is contained in:
capitaomorte 2010-05-16 09:11:59 +00:00
parent 503e105b3e
commit 0d3248fc67
2 changed files with 95 additions and 53 deletions

View File

@ -36,7 +36,7 @@
(unless (<= end start)
(substring x start (1+ end))))))
(defvar yas/ruby-block-start-regexp ".*[\s\t\n]\\(do\\)[\s\t\n]\\(|.*|\\)?")
(defvar yas/ruby-block-start-regexp "\\(^\\|[\s\t\n^]\\)\\(do\\)[\s\t\n]\\(|.*|\\)?")
(defun yas/ruby-toggle-single-multi-line-block ()
"Toggle \"do .. end\" blocks into \"{ .. }\" blocks back and forth."
@ -223,6 +223,48 @@
(recenter orig-line)
retval))
(put (intern "ruby-thing") 'bounds-of-thing-at-point 'yas/ri-ruby-thing-bounds)
(defun yas/ri-ruby-thing-bounds ()
(let ((start (point))
(end (point)))
(save-excursion
(while (not (and (zerop (skip-syntax-forward "\w\_"))
(zerop (skip-chars-forward "#:"))))
(setq end (point)))
(while (not (and (zerop (skip-syntax-backward "\w\_"))
(zerop (skip-chars-backward "#:"))))
(setq start (point))))
(unless (= start end)
(cons start end))))
(defvar yas/ri-history nil
"History of yas/ri queries.")
(require 'ansi-color)
(defun yas/ri (query)
(interactive (list (read-from-minibuffer "Ri query: "
(thing-at-point 'ruby-thing)
nil
nil
'ri-history)))
(with-current-buffer (get-buffer-create "*Ri*")
(setq buffer-read-only nil)
(shell-command (concat "ri -f ansi " query) "*Ri*")
(ansi-color-apply-on-region (point-min) (point-max))
(yas/ri-mode)
(display-buffer (current-buffer)))
t)
(defun yas/ri-mode ()
"Mode for viewing Ruby documentation."
(buffer-disable-undo)
(kill-all-local-variables)
(local-set-key (kbd "q") 'quit-window)
(local-set-key (kbd "RET") 'yas/ri)
(setq mode-name "ri")
(setq major-mode 'yas/ri-mode)
(setq buffer-read-only t)
(run-hooks 'yas/ri-mode-hook))
;; conditions
;;
(yas/define-condition-cache yas/ruby-in-interpolated-string-p (member (fourth (syntax-ppss)) (list ?\" ?\`)))
@ -273,7 +315,7 @@
;; 7990EE60-C850-4779-A8C0-7FD2C853B99B =yyas> (yas/ruby-toggle-single-multi-line-block)
;; 7E084412-80E6-4B70-8092-C03D1ECE4CD2 =yyas> (yas/ruby-require "eac")(yas/expand-uuid 'ruby-mode "FDD73070-6D32-4301-A86A-C55B77C3D8ED")
;; FBFC214F-B019-4967-95D2-028F374A3221 =yyas> (yas/ruby-pipe-through-xmpfilter)
;; 63F3B3B7-CBE2-426B-B551-657733F3868B =yyas> (or (and (featurep 'ri) (call-interactively 'ri)) (message "No ri found!"))
;; 63F3B3B7-CBE2-426B-B551-657733F3868B =yyas> (call-interactively (if (featurep 'ri) 'ri 'yas/ri))
;;
;; `[[ $TM_LINE_INDEX != 0 ]] && echo; echo` =yyas> `(concat (if (eq 0 current-line) "\n" "") "\n")`
@ -763,36 +805,36 @@
"835FAAC6-5431-436C-998B-241F7226B99B"
"A83F68A9-F751-4BB4-AE16-56812878C16A"
"47D203ED-EB9B-4653-A07B-A897800CEB76"
"35222962-C50D-4D58-A6AE-71E7AD980BE4"
"B3875596-723C-41EE-9E6F-F84930C3B568"
"8646378E-91F5-4771-AC7C-43FC49A93576"
"B297E4B8-A8FF-49CE-B9C4-6D4911724D43"
"2DDB6FE0-6111-4C40-A149-8E67E76F8272"
"569C9822-8C41-4907-94C7-1A8A0031B66D"
"835FAAC6-5431-436C-998B-241F7226B99B"
"47D203ED-EB9B-4653-A07B-A897800CEB76"
"E07FF68B-C87D-4332-8477-D026929FDADA"
"569C9822-8C41-4907-94C7-1A8A0031B66D"
"BF4CA9F1-51CD-48D4-8357-852234F59046"
"B3875596-723C-41EE-9E6F-F84930C3B568"
"B297E4B8-A8FF-49CE-B9C4-6D4911724D43"
"931DD73E-615E-476E-9B0D-8341023AE730"
"DAA69A0C-FC1E-4509-9931-DFFB38B4D6AE"
"47D203ED-EB9B-4653-A07B-A897800CEB76"
"2DDB6FE0-6111-4C40-A149-8E67E76F8272"
"35222962-C50D-4D58-A6AE-71E7AD980BE4"
"8646378E-91F5-4771-AC7C-43FC49A93576"
"E07FF68B-C87D-4332-8477-D026929FDADA"
"2C07D4E7-D74F-4AE4-82BE-B0BA82247AFA"
"E5158F94-CC52-4424-A495-14EF9272653F"
"58FDEA60-10AF-4C49-AA09-29B77030DB25"
"825B721D-4367-4DF7-98C0-F005695DF9E3"
"121B334B-2AA6-4E9A-A8B8-BF93B627982B"
"9460392B-C036-4A76-A5AE-1191F10E4B1B"
"E5158F94-CC52-4424-A495-14EF9272653F"
"2C07D4E7-D74F-4AE4-82BE-B0BA82247AFA"
"58FDEA60-10AF-4C49-AA09-29B77030DB25"
"EC73D5CC-5F05-46B9-A6F4-82037E4A38C9"
"BFB65D1C-62F1-485D-8A67-3E5A2E55107C"
"6519CB08-8326-4B77-A251-54722FFBFC1F"
"EC73D5CC-5F05-46B9-A6F4-82037E4A38C9"
"9460392B-C036-4A76-A5AE-1191F10E4B1B"
"1AD6A138-2E89-4D6A-AB3F-416BF9CE968D"
"EE5F1FB2-6C02-11D9-92BA-0011242E4184"
"9FB64639-F776-499B-BA6F-BB45F86F80FD"
"5289EE40-86B8-11D9-A8D4-000A95E13C98"
"7F79BC8D-8A4F-4570-973B-05DFEC25747F"
"EE5F19BA-6C02-11D9-92BA-0011242E4184"
"EE5F1FB2-6C02-11D9-92BA-0011242E4184"
"0275EF39-9357-408F-AF20-79E415CA9504"
"1AD6A138-2E89-4D6A-AB3F-416BF9CE968D"
"97054C4D-E4A3-45B1-9C00-B82DBCB30CAD"
"76FCF165-54CB-4213-BC55-BD60B9C6A3EC"
"0275EF39-9357-408F-AF20-79E415CA9504"
"5289EE40-86B8-11D9-A8D4-000A95E13C98"
"6519CB08-8326-4B77-A251-54722FFBFC1F"
"C649F945-DAB8-4DA2-B73C-2EFF9D7D34F3"
"5AE7CFB4-418E-4E00-AD76-06DB755EE876"
"A83F68A9-F751-4BB4-AE16-56812878C16A"
@ -820,44 +862,47 @@
;; # as in Snippets/class __ TestUnitTestCase with test_helper.yasnippet
;; (yas/multi-line-unknown 228CAB3A-E221-4727-B430-31E94F76C9D3) =yyas> (yas/unknown)
;;
;; # as in Macros/map_with_index { e, i .. } (mapwi).yasnippet
;; BFB65D1C-62F1-485D-8A67-3E5A2E55107C =yyas> (yas/unknown)
;;
;; # as in Macros/YAML.dump(.., file) (Yd).yasnippet
;; 9460392B-C036-4A76-A5AE-1191F10E4B1B =yyas> (yas/unknown)
;;
;; # as in Macros/map_with_index { e, i .. } (mapwi).yasnippet
;; BFB65D1C-62F1-485D-8A67-3E5A2E55107C =yyas> (yas/unknown)
;;
;; # as in Macros/each_slice(..) { group .. } (eas).yasnippet
;; 825B721D-4367-4DF7-98C0-F005695DF9E3 =yyas> (yas/unknown)
;;
;; # as in Commands/Enclose in _ (RDoc comments).yasnippet
;; DAA69A0C-FC1E-4509-9931-DFFB38B4D6AE =yyas> (yas/unknown)
;;
;; # as in Commands/Run.yasnippet
;; 35222962-C50D-4D58-A6AE-71E7AD980BE4 =yyas> (yas/unknown)
;;
;; # as in Commands/Enclose in _ (RDoc comments).yasnippet
;; DAA69A0C-FC1E-4509-9931-DFFB38B4D6AE =yyas> (yas/unknown)
;;
;; # as in Commands/Omit from RDoc.yasnippet
;; BF4CA9F1-51CD-48D4-8357-852234F59046 =yyas> (yas/unknown)
;;
;; # as in Snippets/assert_respond_to(..) (asrt).yasnippet
;; # as in Snippets/assert_not_nil(..) (asnn).yasnippet
;; `yas/ruby-snippet-close-paren` =yyas> (yas/unknown)
;;
;; # as in Macros/YAML.load(file) (Yl).yasnippet
;; 2C07D4E7-D74F-4AE4-82BE-B0BA82247AFA =yyas> (yas/unknown)
;;
;; # as in Commands/Run Rake Task.yasnippet
;; 569C9822-8C41-4907-94C7-1A8A0031B66D =yyas> (yas/unknown)
;;
;; # as in Commands/Toggle StringSymbol.yasnippet
;; B297E4B8-A8FF-49CE-B9C4-6D4911724D43 =yyas> (yas/unknown)
;;
;; # as in Commands/Run Rake Task.yasnippet
;; 569C9822-8C41-4907-94C7-1A8A0031B66D =yyas> (yas/unknown)
;;
;; # as in Macros/Benchmark_bmbm(__) do __ end.yasnippet
;; C649F945-DAB8-4DA2-B73C-2EFF9D7D34F3 =yyas> (yas/unknown)
;;
;; # as in Commands/Toggle Quote Style.yasnippet
;; 6519CB08-8326-4B77-A251-54722FFBFC1F =yyas> (yas/unknown)
;;
;; # as in Commands/word_wrap() (worw).yasnippet
;; 97054C4D-E4A3-45B1-9C00-B82DBCB30CAD =yyas> (yas/unknown)
;;
;; # as in Commands/Toggle Quote Style.yasnippet
;; 6519CB08-8326-4B77-A251-54722FFBFC1F =yyas> (yas/unknown)
;; # as in Snippets/class .. TestUnitTestCase .. end (tc).yasnippet
;; (yas/multi-line-unknown 31D1F145-33AB-4441-BA11-4D1C46928C4C) =yyas> (yas/unknown)
;;
;; # as in Commands/Make Destructive Call.yasnippet
;; 7F79BC8D-8A4F-4570-973B-05DFEC25747F =yyas> (yas/unknown)
@ -868,22 +913,19 @@
;; # as in Macros/extend Forwardable (Forw).yasnippet
;; 58FDEA60-10AF-4C49-AA09-29B77030DB25 =yyas> (yas/unknown)
;;
;; # as in Snippets/class .. TestUnitTestCase .. end (tc).yasnippet
;; (yas/multi-line-unknown 31D1F145-33AB-4441-BA11-4D1C46928C4C) =yyas> (yas/unknown)
;;
;; # as in Commands/RakeSake task using file path.yasnippet
;; E07FF68B-C87D-4332-8477-D026929FDADA =yyas> (yas/unknown)
;;
;; # as in Commands/Completion Ruby (rcodetools).yasnippet
;; 47D203ED-EB9B-4653-A07B-A897800CEB76 =yyas> (yas/unknown)
;;
;; # as in Commands/Toggle ERb Tags.yasnippet
;; 835FAAC6-5431-436C-998B-241F7226B99B =yyas> (yas/unknown)
;;
;; # as in Commands/gsub - remove whitespace from front of line.yasnippet
;; B3875596-723C-41EE-9E6F-F84930C3B568 =yyas> (yas/unknown)
;;
;; # as in Snippets/assert_respond_to(..) (asrt).yasnippet
;; # as in Commands/Toggle ERb Tags.yasnippet
;; 835FAAC6-5431-436C-998B-241F7226B99B =yyas> (yas/unknown)
;;
;; # as in Snippets/assert_not_nil(..) (asnn).yasnippet
;; `yas/ruby-snippet-open-paren` =yyas> (yas/unknown)
;;
;; # as in Commands/New Method.yasnippet
@ -898,18 +940,18 @@
;; # as in Macros/PStore_new( __ ).yasnippet
;; 5AE7CFB4-418E-4E00-AD76-06DB755EE876 =yyas> (yas/unknown)
;;
;; # as in Commands/Show RDoc for this file.yasnippet
;; 1AD6A138-2E89-4D6A-AB3F-416BF9CE968D =yyas> (yas/unknown)
;;
;; # as in Commands/Run focused unit test.yasnippet
;; 5289EE40-86B8-11D9-A8D4-000A95E13C98 =yyas> (yas/unknown)
;;
;; # as in Commands/Show RDoc for this file.yasnippet
;; 1AD6A138-2E89-4D6A-AB3F-416BF9CE968D =yyas> (yas/unknown)
;;
;; # as in Snippets/module .. end.yasnippet
;; `(yas/ruby-infer-class-name)` =yyas> (yas/unknown)
;;
;; # as in Commands/Check ERB Syntax.yasnippet
;; 76FCF165-54CB-4213-BC55-BD60B9C6A3EC =yyas> (yas/unknown)
;;
;; # as in Snippets/class .. end (cla).yasnippet
;; `(yas/ruby-infer-class-name)` =yyas> (yas/unknown)
;;
;; # as in Snippets/embed string variable.yasnippet
;; `yas/selected-text` =yyas> (yas/unknown)
;;
@ -919,12 +961,12 @@
;; # as in Macros/each_cons(..) { group .. } (eac).yasnippet
;; EC73D5CC-5F05-46B9-A6F4-82037E4A38C9 =yyas> (yas/unknown)
;;
;; # as in Commands/Enclose in (RDoc comments).yasnippet
;; 931DD73E-615E-476E-9B0D-8341023AE730 =yyas> (yas/unknown)
;;
;; # as in Commands/Open Require.yasnippet
;; 8646378E-91F5-4771-AC7C-43FC49A93576 =yyas> (yas/unknown)
;;
;; # as in Commands/Enclose in (RDoc comments).yasnippet
;; 931DD73E-615E-476E-9B0D-8341023AE730 =yyas> (yas/unknown)
;;
;;
;; Substitutions for: condition
@ -948,12 +990,12 @@
;; # as in Commands/Omit from RDoc.yasnippet
;; ^@O =yyas> (yas/unknown)
;;
;; # as in Commands/Make Destructive Call.yasnippet
;; ^! =yyas> (yas/unknown)
;;
;; # as in Snippets/hash pointer.yasnippet
;; ^l =yyas> (yas/unknown)
;;
;; # as in Commands/Make Destructive Call.yasnippet
;; ^! =yyas> (yas/unknown)
;;
;; # as in Commands/Toggle Quote Style.yasnippet
;; ^" =yyas> (yas/unknown)
;;

View File

@ -17,8 +17,8 @@
require 'rubygems'
require 'plist'
require 'choice'
require 'FileUtils'
require 'Shellwords' # String#shellescape
require 'fileutils'
require 'shellwords' # String#shellescape
require 'ruby-debug' if $DEBUG
Choice.options do