textmate bundle scaffolding

db4
Sam Anklesaria 2009-08-04 16:01:40 -05:00
parent bc0711cbe5
commit 70428241bd
27 changed files with 77 additions and 271 deletions

View File

@ -1,10 +1,9 @@
USING: definitions io.launcher kernel math math.parser parser
namespaces prettyprint editors make vocabs.loader ;
namespaces prettyprint editors make ;
IN: editors.textmate
: textmate ( file line -- )
[ "mate" , "-a" , "-l" , number>string , , ] { } make
run-detached drop ;
[ textmate ] edit-hook set-global
"get-using" require
[ textmate ] edit-hook set-global

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>bundleUUID</key>
<string>8061D2F3-B603-411D-AFFE-61784A07906D</string>
<key>command</key>
<string>res=$(CocoaDialog inputbox --title "Scaffold Setup" \
--informative-text "Vocab Name:" \
--button1 "Okay" --button2 "Cancel")
[[ $(head -n1 &lt;&lt;&lt;"$res") == "2" ]] &amp;&amp; exit_discard
res=$(tail -n1 &lt;&lt;&lt;"$res")
"$TM_BUNDLE_SUPPORT/lib/do_scaffolding.rb" res</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>none</string>
<key>keyEquivalent</key>
<string>@N</string>
<key>name</key>
<string>Create New Vocabulary</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>0CDA009F-8518-4C45-AB0E-D11B281131BF</string>
</dict>
</plist>

View File

@ -7,19 +7,23 @@
<key>bundleUUID</key>
<string>8061D2F3-B603-411D-AFFE-61784A07906D</string>
<key>command</key>
<string>#! /Applications/factor/factor
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
"TM_FILEPATH" os-env [ parent-directory ] [ file-name dup ] bi {
{ [ dup "docs.factor" tail? ] [ drop 11 tail* "tests.factor" append append ] }
{ [ "-tests.factor" tail? ] [ 13 tail* ".factor" append append ] }
[ 7 tail* [ "-docs.factor" append append ] keep over exists? [ drop ] [ scaffold-help ] if ]
} cond 0 textmate</string>
x = ENV["TM_FILEPATH"][/\/([^\/]+\.factor)/,1]
y = x.sub("-tests","").sub("docs", "tests")
if x == y then
z = x.sub(".factor","")
factor_eval(%Q(USING: tools.scaffold #{z} ;\n"#{z}" scaffold-help))
y = x.sub(".factor", "-docs.factor")
end
exec "mate #{ENV["TM_FILEPATH"][/(.*\/)[^\/]+\.factor/,1] &lt;&lt; y}"</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>none</string>
<key>keyEquivalent</key>
<string>^@ </string>
<string>^@`</string>
<key>name</key>
<string>Cycle Vocabs/Docs/Tests</string>
<key>output</key>

View File

@ -13,20 +13,20 @@ require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
doc = STDIN.read
word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
puts factor_eval(%Q(#{doc_using_statements(doc)} USE: editors\n \\ #{word} edit))</string>
puts factor_eval(%Q(#{doc_using_statements(doc)} USE: editors\n "#{word}" edit-vocab))</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>document</string>
<key>keyEquivalent</key>
<string>@E</string>
<string>@V</string>
<key>name</key>
<string>Edit</string>
<string>Edit Vocab</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>C573487C-DD7D-497F-A728-52D7962D95E2</string>
<string>0034EC1C-DAD1-498F-82FD-BEF7015F84EE</string>
</dict>
</plist>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>bundleUUID</key>
<string>8061D2F3-B603-411D-AFFE-61784A07906D</string>
<key>command</key>
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
doc = STDIN.read
word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
puts factor_run(%Q(#{doc_using_statements(doc)} USE: editors\n \\ #{word} fix))</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>document</string>
<key>keyEquivalent</key>
<string>@F</string>
<key>name</key>
<string>Fix</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>D02D9D74-E073-48AE-A78E-B40FFFA519D5</string>
</dict>
</plist>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>command</key>
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
doc = STDIN.read
factor_run(%Q(USE: vocabs.loader\n "#{doc[/\bIN:\s(\S+)/, 1]}" reload))</string>
<key>input</key>
<string>document</string>
<key>keyEquivalent</key>
<string>^r</string>
<key>name</key>
<string>Reload</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>8088D204-FFD7-4384-8FDD-A01536FFD0E7</string>
</dict>
</plist>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>bundleUUID</key>
<string>8061D2F3-B603-411D-AFFE-61784A07906D</string>
<key>command</key>
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
doc = STDIN.read
word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
puts factor_eval(%Q(#{doc_using_statements(doc)} USE: tools.annotations\n \\ #{word} reset))</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>document</string>
<key>keyEquivalent</key>
<string>^~r</string>
<key>name</key>
<string>Reset</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>71F08D9B-3D24-4E78-84C9-82CA736554D1</string>
</dict>
</plist>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>bundleUUID</key>
<string>8061D2F3-B603-411D-AFFE-61784A07906D</string>
<key>command</key>
<string>res=$(CocoaDialog inputbox --title "Scaffold Setup" \
--informative-text "Vocab Name:" \
--button1 "Okay" --button2 "Cancel")
[[ $(head -n1 &lt;&lt;&lt;"$res") == "2" ]] &amp;&amp; exit_discard
res=$(tail -n1 &lt;&lt;&lt;"$res")
"$TM_BUNDLE_SUPPORT/lib/do_scaffolding.rb" res</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>none</string>
<key>keyEquivalent</key>
<string>@N</string>
<key>name</key>
<string>Scaffold</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>0CDA009F-8518-4C45-AB0E-D11B281131BF</string>
</dict>
</plist>

View File

@ -5,10 +5,12 @@
<key>beforeRunningCommand</key>
<string>nop</string>
<key>command</key>
<string>#! /Applications/factor/factor
USE: modules.using
USING*: environment localhost::get-using io ;
"TM_FILEPATH" os-env get-using write</string>
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
factor_run(%Q(USING: namespaces parser ;
auto-use? t set "#{ENV["TM_FILEPATH"]}" run-file auto-use? f set))</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
@ -18,10 +20,10 @@ USING*: environment localhost::get-using io ;
<key>name</key>
<string>Show Using</string>
<key>output</key>
<string>showAsTooltip</string>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>86DD4385-4029-4EFE-B546-1EC8EB5EB932</string>
<string>93AF1721-C14D-428A-B5A0-34CEFAA3B3C5</string>
</dict>
</plist>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>command</key>
<string>#! /Applications/factor/factor
USE: modules.using
USING*: environment localhost::get-using io ;
"TM_FILEPATH" os-env get-using write</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>none</string>
<key>keyEquivalent</key>
<string>^u</string>
<key>name</key>
<string>Update Using</string>
<key>output</key>
<string>showAsTooltip</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>86DD4385-4029-4EFE-B546-1EC8EB5EB932</string>
</dict>
</plist>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>beforeRunningCommand</key>
<string>nop</string>
<key>bundleUUID</key>
<string>8061D2F3-B603-411D-AFFE-61784A07906D</string>
<key>command</key>
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
doc = STDIN.read
word = line_current_word(ENV["TM_CURRENT_LINE"], ENV["TM_LINE_INDEX"].to_i)
puts factor_eval(%Q(#{doc_using_statements(doc)} USE: tools.annotations\n \\ #{word} watch))</string>
<key>fallbackInput</key>
<string>word</string>
<key>input</key>
<string>document</string>
<key>keyEquivalent</key>
<string>^~w</string>
<key>name</key>
<string>Watch</string>
<key>output</key>
<string>discard</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>1C86869F-1030-4F74-B242-6357A080E127</string>
</dict>
</plist>

View File

@ -232,7 +232,7 @@ puts factor_eval(%Q(#{doc_using_statements(doc)} USE: stack-checker\n [ #{ENV["T
</dict>
</array>
<key>keyEquivalent</key>
<string>@E</string>
<string>@W</string>
<key>name</key>
<string>Extract as New Word</string>
<key>scope</key>

View File

@ -9,7 +9,7 @@
<key>settings</key>
<dict>
<key>increaseIndentPattern</key>
<string>^:.*$</string>
<string>^:</string>
<key>shellVariables</key>
<array>
<dict>

View File

@ -4,8 +4,8 @@
<dict>
<key>content</key>
<string>[
$0
] </string>
$TM_SELECTED_TEXT$0
]</string>
<key>keyEquivalent</key>
<string>~[</string>
<key>name</key>

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>content</key>
<string>[ $TM_SELECTED_TEXT$0 ] </string>
<string>[ $TM_SELECTED_TEXT$0 ]</string>
<key>keyEquivalent</key>
<string>[</string>
<key>name</key>

View File

@ -5,7 +5,7 @@
<key>content</key>
<string>
[ $1 ]
[ $2 ] bi </string>
[ $2 ] bi</string>
<key>name</key>
<string>bi</string>
<key>scope</key>

View File

@ -8,7 +8,7 @@
[ $2 ]
[ $3 ]
[ $4 ]
} cleave </string>
} cleave</string>
<key>name</key>
<string>cleave</string>
<key>scope</key>

View File

@ -8,7 +8,8 @@ FUNCTOR: $1 ( $2 -- $3 )
$4
WHERE
$0
;FUNCTOR</string>
;FUNCTOR
</string>
<key>name</key>
<string>functor</string>
<key>scope</key>

View File

@ -5,7 +5,7 @@
<key>content</key>
<string>
[ $1 ]
[ $2 ] if </string>
[ $2 ] if</string>
<key>name</key>
<string>if</string>
<key>scope</key>

View File

@ -6,7 +6,7 @@
<string>
[let | $1 [ $2 ] $3|
$0
] </string>
]</string>
<key>name</key>
<string>let</string>
<key>scope</key>

View File

@ -8,7 +8,7 @@
[ $2 ]
[ $3 ]
[ $4 ]
} spread </string>
} spread</string>
<key>name</key>
<string>spread</string>
<key>scope</key>

View File

@ -6,7 +6,7 @@
<string>
[ $1 ]
[ $2 ]
[ $3 ] tri </string>
[ $3 ] tri</string>
<key>name</key>
<string>tri</string>
<key>scope</key>

View File

@ -4,8 +4,8 @@
<dict>
<key>content</key>
<string>{
$0
} </string>
$TM_SELECTED_TEXT$0
}</string>
<key>keyEquivalent</key>
<string>~{</string>
<key>name</key>

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>content</key>
<string>{ $TM_SELECTED_TEXT$0 } </string>
<string>{ $TM_SELECTED_TEXT$0 }</string>
<key>keyEquivalent</key>
<string>{</string>
<key>name</key>

View File

@ -1,16 +0,0 @@
#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
path = ENV["TM_FILEPATH"]
if path.include?("factor/work") then
s = "scaffold-work"
elsif path.include?("factor/basis") then
s = "scaffold-basis"
elsif path.include?("factor/core") then
s = "scaffold-core"
else
s = "scaffold-extra"
end
puts factor_eval(%Q(USE: tools.scaffold\n "#{ARGV.first}" #{s}))

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>command</key>
<string>#!/usr/bin/env ruby
require "#{ENV["TM_BUNDLE_SUPPORT"]}/lib/tm_factor"
require ENV['TM_SUPPORT_PATH'] + '/lib/ui'
a = TextMate::UI.request_string(:title =&gt; "Scaffold Setup", :prompt =&gt;
"Vocab Name:")
b = ENV["TM_FILEPATH"]
if b then c = b[/\/factor\/([^\/]+)\//,1]
else c = "work"
end
factor_eval(%Q(USING: kernel editors tools.scaffold ; "#{a}" dup #{"scaffold-" &lt;&lt; c} edit-vocab))</string>
<key>extension</key>
<string>factor</string>
<key>keyEquivalent</key>
<string>@N</string>
<key>name</key>
<string>Vocabulary</string>
<key>scope</key>
<string>source.factor</string>
<key>uuid</key>
<string>B6D1D91E-3EF3-4112-97DF-BFCABEBAA1C9</string>
</dict>
</plist>

View File

@ -3,9 +3,7 @@
<plist version="1.0">
<dict>
<key>deleted</key>
<array>
<string>4D090AD9-76F9-4A0B-B3F2-7428B7C15FBA</string>
</array>
<array/>
<key>mainMenu</key>
<dict>
<key>excludedItems</key>
@ -23,20 +21,21 @@
<string>B9DA0999-D710-4693-8056-9E4B8BDAC7E9</string>
<string>7903894E-CB75-43ED-8635-C0E65F94DEBB</string>
<string>9A96D386-F7B9-47DC-9CAE-E4BAD1F81748</string>
<string>F771F82B-6B2B-4DAE-9A2A-E1042D3B08AD</string>
<string>275EA395-6026-481A-81C5-1F71D8026972</string>
</array>
<key>items</key>
<array>
<string>0CDA009F-8518-4C45-AB0E-D11B281131BF</string>
<string>8088D204-FFD7-4384-8FDD-A01536FFD0E7</string>
<string>CAD3BB10-C480-4C0E-9518-94D61F7A0C0B</string>
<string>82E740D1-8D20-48AF-8470-C85C251D4870</string>
<string>D348BE40-6F51-4471-B300-DDDA70ED8C8C</string>
<string>86DD4385-4029-4EFE-B546-1EC8EB5EB932</string>
<string>9D99C141-EC9D-4C9E-9C08-0CA4EAEA2F3E</string>
<string>1C72489C-15A1-4B44-BCDF-438962D4F3EB</string>
<string>9E5EC5B6-AABD-4657-A663-D3C558051216</string>
<string>219C4AB2-742E-48FE-92E1-CB2EC19C8A24</string>
<string>D25BF2AE-0595-44AE-B97A-9F20D4E28173</string>
<string>93AF1721-C14D-428A-B5A0-34CEFAA3B3C5</string>
</array>
<key>submenus</key>
<dict>
@ -70,6 +69,7 @@
<string>D02D9D74-E073-48AE-A78E-B40FFFA519D5</string>
<string>C573487C-DD7D-497F-A728-52D7962D95E2</string>
<string>D95A617C-E1C6-44DA-9126-04171CB21299</string>
<string>0034EC1C-DAD1-498F-82FD-BEF7015F84EE</string>
</array>
<key>name</key>
<string>Edit</string>
@ -106,6 +106,7 @@
<string>3C9C9C2A-314A-475B-A4E4-A68BAAF3F36E</string>
<string>D60675B0-9BF4-4CCF-9066-CA14FE836981</string>
<string>141517D7-73E0-4475-A481-71102575A175</string>
<string>B6D1D91E-3EF3-4112-97DF-BFCABEBAA1C9</string>
<string>CAD3BB10-C480-4C0E-9518-94D61F7A0C0B</string>
<string>8088D204-FFD7-4384-8FDD-A01536FFD0E7</string>
<string>15A984BD-BC65-43E8-878A-267788C8DA70</string>
@ -114,7 +115,7 @@
<string>BC5BE120-734B-40DF-8B6B-5D3243614B27</string>
<string>B619FCC0-2DF2-4657-82A8-0E5676A10254</string>
<string>DBC0A0CA-5368-43A7-864B-7B9C4034AD08</string>
<string>86DD4385-4029-4EFE-B546-1EC8EB5EB932</string>
<string>93AF1721-C14D-428A-B5A0-34CEFAA3B3C5</string>
<string>3043A033-A113-4283-BCBB-3DE2CCC8F63E</string>
<string>B1F81321-B760-474F-875D-78FB52752E1B</string>
<string>BC3E2E39-3B79-460C-B05E-BD00BAACB90E</string>
@ -124,10 +125,10 @@
<string>E4614756-DF2E-433A-8935-197159C67AB8</string>
<string>D02D9D74-E073-48AE-A78E-B40FFFA519D5</string>
<string>C573487C-DD7D-497F-A728-52D7962D95E2</string>
<string>0034EC1C-DAD1-498F-82FD-BEF7015F84EE</string>
<string>D95A617C-E1C6-44DA-9126-04171CB21299</string>
<string>71F08D9B-3D24-4E78-84C9-82CA736554D1</string>
<string>7FF52332-CA5B-4D46-99EF-DAE0659DB478</string>
<string>0CDA009F-8518-4C45-AB0E-D11B281131BF</string>
<string>D348BE40-6F51-4471-B300-DDDA70ED8C8C</string>
<string>1B3CF04D-B23D-4D9A-A648-7191315CDF96</string>
<string>3F17AF0F-4DE0-4A86-A649-CB65907F0DA5</string>