Select Next Word Script for BBEdit
Continuing the riff on BBEdit, here's a script that uses the grep match for a single word. It's an AppleScript that I bound to the shift-cmd-right arrow combo. If there is no word selected, it selects the closest next word. If there is a word already selected, it selects the next whole word. It's a take on John Gruber's original Select+Word script with the additional benefit of being able to walk the selection down a line one word at a time.
Of course the secret was figuring out the magic words to get BBEdit to do what i wanted. Thankfully, Chris Stone on the BBEdit groups was happy to provide his considerable expertise.
:::AppleScript
try
tell application "BBEdit"
tell text of front text document
set current_offset to characterOffset of selection
set current_line to startDisplayLine of selection
if length of selection = 0 then
select (last word of display_line current_line whose characterOffset ≤ current_offset)
else
set results to find "\\b\\S+\\b" options {search mode:grep, showing results:false, returning results:true} with selecting match
end if
end tell
end tell
on error errMsg number errNum
set {cr, sep} to {return, "------------------------------------------"}
set e to sep & cr & "Error: " & errMsg & cr & sep & cr & "Error Number: " & errNum & cr & sep
beep
display dialog e
end try