While I don't have the script available at the moment, the "Smart New Line" script in the BBEdit Editor Actions Package I linked to a little earlier (http://www.ranea.org/bbedit_editoractions.html) may be something to look at. It handles bullets that are "-" or "*" at the start of a line and can continue the list, and handles the current indentation and expand tabs settings correctly.
It doesn't try to number lists as the one below does, but that might be something I could add for Markdown. -- Watts Martin Sent with Sparrow (http://www.sparrowmailapp.com/?sig) On Monday, March 26, 2012 at 13:45 , KG wrote: > Hey Christopher, > > Just a minor request to your existing script. This works fantastically if you > line starts with the bullet. Assuming you have some indentation like 4 tab > stops and then the bullet, the script stops. I made a couple of mods to the > script as follows: > > --------------------------------------------------------------------------------------- > tell application "BBEdit" > try > tell text of front text window > set lineOfInsertionPoint to line (startLine of selection) > set findReco to find "^\\d+\\." searching in > lineOfInsertionPoint options {search mode:grep} > if found of findReco = true then > set leadingNumber to text 1 thru -2 of (found text of > findReco) > set text of selection to return & (leadingNumber + 1) & > ". " > select insertion point after selection > else if found of findReco = false then > set findReco to find "^\\* " searching in > lineOfInsertionPoint options {search mode:grep} > if found of findReco = true then > set text of selection to return & "* " > select insertion point after selection > else > set findReco to find "^\\s*\\+" searching in > lineOfInsertionPoint options {search mode:grep} > if found of findReco = true then > > set text of selection to return & tab & "+ " > select insertion point after selection > end if > end if > end if > end tell > on error errMsg number errNum > set sep to "==============================" > set e to sep & return & "Error: " & errMsg & return & sep & > return ¬ > & "Error Number: " & errNum & return & sep > beep > display dialog e > end try > end tell > > --------------------------------------------------------------------------------------- > > > Essentially the \s* helps ignore white space at the beginning. There's just > one problem with my script. It inserts the new bullet point ignoring the > previous number of tab stops. Is there a way in applescript to get hold of > the number of tab stops and insert that at the beginning as well? > > Thanks again. > > > On Monday, August 8, 2011 7:04:04 AM UTC+3, Christopher Stone wrote: > > On Aug 07, 2011, at 21:35, oliver wrote: > > > I'm thinking it might have to be an AppleScript to select the line and > > > then call a Text Filter to handle finding the number/star and appending > > > the next one... but my kung fu is not strong enough to figure it out. > > > > > > ______________________________________________________________________ > > > > Hey Oliver, > > > > This is very quick and dirty, but it'll work with the numerical increment > > and the asterisk bullet. > > > > It's expecting the insertion point (cursor) to be at the end of the line, > > but it could easily be adjusted so that anywhere in the line would do. > > > > You can put it in the script menu and give it a keyboard shortcut and go to > > town. > > > > The logic is pretty straightforward, so you can add more characters like > > '•' to the mix if desired. > > > > -- > > Best Regards, > > Chris > > > > ______________________________________________________________________ > > > > > > tell application "BBEdit" > > try > > tell text of front text window > > set lineOfInsertionPoint to line (startLine of selection) > > set findReco to find "^\\d+\\." searching in lineOfInsertionPoint > > options {search mode:grep} > > if found of findReco = true then > > set leadingNumber to text 1 thru -2 of (found text of findReco) > > set text of selection to return & (leadingNumber + 1) & ". " > > select insertion point after selection > > else if found of findReco = false then > > set findReco to find "^\\* " searching in lineOfInsertionPoint > > options {search mode:grep} > > if found of findReco = true then > > set text of selection to return & "* " > > select insertion point after selection > > end if > > end if > > end tell > > on error errMsg number errNum > > set sep to "==============================" > > set e to sep & return & "Error: " & errMsg & return & sep & return ¬ > > & "Error Number: " & errNum & return & sep > > beep > > display dialog e > > end try > > end tell > > > > > > > > > > > > > > -- > 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 [email protected] > (mailto:[email protected]) > To unsubscribe from this group, send email to > [email protected] > (mailto:[email protected]) > 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 "[email protected] (mailto:[email protected])" rather > than posting to the group. > Follow @bbedit on Twitter: <http://www.twitter.com/bbedit> -- 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 [email protected] To unsubscribe from this group, send email to [email protected] 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 "[email protected]" rather than posting to the group. Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>
