[TxMt] open Safari Source in TM

Simon Gregory simon at helvector.org
Thu Mar 3 23:10:32 UTC 2005


I played around a while ago and came up with these:

http://www.helvector.org/code/applescript/

Essentially they map the dot.local domain to the file system then open  
the file, or project in TextMate.

I never quite got round finishing them properly but they might come in  
useful for anyone who's web developing and using using their local  
machine for testing (if not they'll probably work but with more  
hacking). The only issue I have is having to use the script menu to  
execute them. Unfortunately I couldn't get them to work using  
OnMyCommand - for some reason sub functions didn't fire and I haven't  
had chance to look into why.

If you want syntax colouring via the Safari source window then I'd  
recommend SafariSource which you'll find on versiontracker.

Simon

On 3 Mar 2005, at 6:33 pm, Fred B. wrote:

> Hi,
>
> I made a script that opens the source of the frontmost Safari document  
> in TextMate, with syntax-coloring.
> I used a similar one for BBEdit a long time ago. (or was it only 5  
> months? ;)
>
> With Applescript, it always look quite easy when you start, then you  
> end up spending hours to get it to work properly.
> AS is as easy to read as it's hard to write. But it works!
> You can see I'm a little AS challenged, so advices are welcome.
>
> Basically, it takes the source and the title of the frontmost Safari  
> window (warns you if there is none, or if it's blank),
> remove "http://" and replace any "/" in the title with ":", makes a  
> file in /tmp with the title as name (adding ".html" if it's not  
> already there) and opens it in TM.
>
> Should I put it on the wiki or in the repository?
>
> Hope this can be useful to someone.
>
> --
> Fred
>
> Download it here: http://osxgeek.org/tm/Source2TM.zip or copy/paste it  
> Script Editor.
>
> ======================================================================= 
> ==
> tell application "Safari"
> 	if not (exists document 1) then
> 		display dialog "You need to open a web location first!" buttons  
> {"OK"} default button 1
> 		return
> 	end if
> 	set mySource to the source of front document as text
> 	if (length of mySource is 0) then
> 		display dialog "You need to open a web location first!" buttons  
> {"OK"} default button 1
> 		return
> 	end if
> 	set myName to name of front document as text
> end tell
>
> try
> 	tell application "TextMate" to activate
> 	
> 	set myName to replace_chars(myName, "http://", "")
> 	set myName to replace_chars(myName, "/", ":")
> 	
> 	if (myName ends with ".html") or (myName ends with ".htm") then
> 		set myPath to "/tmp/" & myName
> 	else
> 		set myPath to "/tmp/" & myName & ".html"
> 	end if
> 	
> 	do shell script "rm -f " & quoted form of myPath
> 	do shell script "echo " & quoted form of mySource & " >> " & quoted  
> form of myPath
> 	do shell script "open -a TextMate " & quoted form of myPath
> end try
>
> on replace_chars(this_text, search_string, replacement_string)
> 	set AppleScript's text item delimiters to the search_string
> 	set the item_list to every text item of this_text
> 	set AppleScript's text item delimiters to the replacement_string
> 	set this_text to the item_list as string
> 	set AppleScript's text item delimiters to ""
> 	return this_text
> end replace_chars
> ======================================================================= 
> ==
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate
>




More information about the textmate mailing list