(Sorry if this posted twice)

Not sure if Matt is still around, but I continued working on the script I 
started and got it working pretty well. It works for both relative and 
absolute file paths. When multiple matches are found, it will display them 
in a numbered list and allow you to pick one to put into the document.

I've placed the script on my site for improved visibility. Hope it's useful 
for someone. I had fun getting it to work even though I don't really need 
it.

http://www.angelwatt.com/coding/bbedit-autocomplete-filename.php

-Kendall

On Wednesday, September 26, 2012 11:46:32 PM UTC-4, Kendall Conrad wrote:
>
> There's nothing builtin for that kind of functionality and is much easier 
> said than done. I did write up an AppleScript that works decently well from 
> my mild testing. There's a bit that could be cleaned up from it and likely 
> simplified. If someone wants to improve upon go ahead.
>
> Essentially, it tries determine any file path in front of the text cursor 
> (e.g., ../images/tes), then splits it out into directory and partial file 
> name. It also has to find out what directory the currently edited file 
> exists. Parsing out all of this it builds a command in the form of,
>
> ls -A1 <relative directory> | grep "partialFileName"
>
> If one result comes back, it replaces the partial file name with it. If 
> more than one is found it displays a message that more than one match was 
> found. If a file path couldn't be found it doesn't do anything. This works 
> for the current directory as well, whether you give ./ or just the start of 
> the name.
>
> Just copy and paste the script below into AppleScript Editor and save it 
> the BBEdit's script folder. Then you can assign a keyboard shortcut to it 
> if you want quick access. Again, the code it a little dirty and not well 
> tested, but seems to work OK, just don't try and trick it.
>
> ------------------------------------
> tell application "BBEdit"
>     activate
>     set lineNum to startLine of selection
>     set aaa to (characterOffset of line (startLine of selection)) of front 
> window
>     set zzz to (characterOffset of selection)
>     set cursorPos to zzz - aaa
>     set linestr to characters 1 thru cursorPos of line lineNum of front 
> window
>     
>     set theResult to find "([\\w\\.\\-\\/_]+)" options {search mode:grep, 
> backwards:true} searching in linestr
>     set startstr to ""
>     if found of theResult then
>         set startstr to found text of theResult
>     end if
>     
>     set pre to ""
>     set partial to startstr
>     
>     if startstr contains "/" then
>         set delim to AppleScript's text item delimiters
>         set AppleScript's text item delimiters to "/"
>         set partial to last text item of startstr
>         set idx to 1
>         repeat (count text item of startstr) - 1 times
>             if idx > 1 then set pre to pre & "/"
>             set pre to pre & text item idx of startstr
>             set idx to idx + 1
>         end repeat
>         set AppleScript's text item delimiters to delim
>     end if
>     -- no partial filename, give up
>     if partial = "" then return
>     
>     -- find pwd of document
>     set fp to (POSIX path of (file of front window as string))
>     set fpchars to characters of fp
>     set fprev to reverse of fpchars
>     set fpdir to characters 1 thru ((length of fp) - (offset of "/" in 
> (fprev as string))) of fp
>     
>     set cmd to "cd " & (quoted form of (fpdir as string)) & "; ls -A1 " & 
> pre & " | grep \"" & partial & "\""
>     --display dialog cmd
>     set cmdR to ""
>     try
>         set cmdR to do shell script cmd
>     on error theErr
>         display dialog theErr
>         return
>     end try
>     
>     if cmdR contains return then
>         -- More than one file/folder matches
>         display dialog "Multiple matches"
>         return
>     end if
>     
>     set startPartial to cursorPos - (length of partial) + 1
>     set characters startPartial thru cursorPos of line lineNum of front 
> window to cmdR
>     
> end tell
> ------------------------------------
>
> -Kendall
>
> On Wednesday, September 26, 2012 10:26:35 AM UTC-4, Matt Karikomi wrote:
>>
>> hi all this is my first post in the group.  im just using bbedit for the 
>> first time and love it.  i didnt get anything obvious in a search so here 
>> goes.  id like to implement tab-completion for relative urls.  like if 
>> there was an attribute "url(../images/a..)" and id like to just hit the tab 
>> key to get  "url(../images/armored_flamingos.jpg)" 
>>
>> thanks in advance!
>>
>

-- 
-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem, 
please email "supp...@barebones.com" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>



Reply via email to