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
\ No newline at end of file
+++ /dev/null
-<?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 <<<"$res") == "2" ]] && exit_discard
-res=$(tail -n1 <<<"$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>
<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] << 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>
--- /dev/null
+<?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: editors\n "#{word}" edit-vocab))</string>
+ <key>fallbackInput</key>
+ <string>word</string>
+ <key>input</key>
+ <string>document</string>
+ <key>keyEquivalent</key>
+ <string>@V</string>
+ <key>name</key>
+ <string>Edit Vocab</string>
+ <key>output</key>
+ <string>discard</string>
+ <key>scope</key>
+ <string>source.factor</string>
+ <key>uuid</key>
+ <string>0034EC1C-DAD1-498F-82FD-BEF7015F84EE</string>
+</dict>
+</plist>
+++ /dev/null
-<?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: editors\n \\ #{word} edit))</string>
- <key>fallbackInput</key>
- <string>word</string>
- <key>input</key>
- <string>document</string>
- <key>keyEquivalent</key>
- <string>@E</string>
- <key>name</key>
- <string>Edit</string>
- <key>output</key>
- <string>discard</string>
- <key>scope</key>
- <string>source.factor</string>
- <key>uuid</key>
- <string>C573487C-DD7D-497F-A728-52D7962D95E2</string>
-</dict>
-</plist>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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 <<<"$res") == "2" ]] && exit_discard
-res=$(tail -n1 <<<"$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>
<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>
<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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
</dict>
</array>
<key>keyEquivalent</key>
- <string>@E</string>
+ <string>@W</string>
<key>name</key>
<string>Extract as New Word</string>
<key>scope</key>
<key>settings</key>
<dict>
<key>increaseIndentPattern</key>
- <string>^:.*$</string>
+ <string>^:</string>
<key>shellVariables</key>
<array>
<dict>
<dict>
<key>content</key>
<string>[
- $0
-] </string>
+ $TM_SELECTED_TEXT$0
+]</string>
<key>keyEquivalent</key>
<string>~[</string>
<key>name</key>
<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>
<key>content</key>
<string>
[ $1 ]
- [ $2 ] bi </string>
+ [ $2 ] bi</string>
<key>name</key>
<string>bi</string>
<key>scope</key>
[ $2 ]
[ $3 ]
[ $4 ]
-} cleave </string>
+} cleave</string>
<key>name</key>
<string>cleave</string>
<key>scope</key>
$4
WHERE
$0
-;FUNCTOR</string>
+;FUNCTOR
+</string>
<key>name</key>
<string>functor</string>
<key>scope</key>
<key>content</key>
<string>
[ $1 ]
- [ $2 ] if </string>
+ [ $2 ] if</string>
<key>name</key>
<string>if</string>
<key>scope</key>
<string>
[let | $1 [ $2 ] $3|
$0
- ] </string>
+ ]</string>
<key>name</key>
<string>let</string>
<key>scope</key>
[ $2 ]
[ $3 ]
[ $4 ]
-} spread </string>
+} spread</string>
<key>name</key>
<string>spread</string>
<key>scope</key>
<string>
[ $1 ]
[ $2 ]
- [ $3 ] tri </string>
+ [ $3 ] tri</string>
<key>name</key>
<string>tri</string>
<key>scope</key>
<dict>
<key>content</key>
<string>{
- $0
-} </string>
+ $TM_SELECTED_TEXT$0
+}</string>
<key>keyEquivalent</key>
<string>~{</string>
<key>name</key>
<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>
+++ /dev/null
-#!/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}))
\ No newline at end of file
--- /dev/null
+<?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 => "Scaffold Setup", :prompt =>
+"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-" << 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>
<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>
<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>
<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>
<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>
<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>
<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>