Try setting the keyboard shortcut from within BBEdit and not using keyboard
maestro. I don't use that program so not sure what side effects it could be
causing. You can also try running the script from Script Editor. It may
provide some output if it is hitting any errors. You can also add log
messages in the script to see if values are being set correctly e.g., log
"wleng = " & wleng
I'm using BBEdit 11.1.4.
It also works in TextWrangler 5.0.2.
On Saturday, January 23, 2016 at 10:36:33 AM UTC-5, Vlad Ghitulescu wrote:
>
> Hello again,
>
>
> and sorry for being not clear enough!
> I try to improve :-) below…
>
> On 23 Jan 2016, at 16:01, Kendall Conrad wrote:
>
> > I know the old script doesn't work and isn't suppose to for what you
> > wanted, which is why I wrote the new one, which works very
> > differently.
>
> Yes, I understood this.
> I thought initially that the new script will be an extended version of
> the old one, that's why I expected that the old functions will continue
> to work as usual.
>
>
> > You didn't describe what happened with the new script so I can't say
> > what
> > happened.
>
> With the new script the old KBM-trigger (CMD-Return) doesn't triggers
> any visible change in the editor.
>
> Please see the attached short screenrecord (ca. 26 seconds long and ca.
> 3.8 MB big).
> You'll see the old, disabled KBM-macro (for the Smart New Line) and the
> new one (for Smart Quote), using the same trigger (CMD-Return) and doing
> nothing (when you see that in the final the BBEdit-window doesn't change
> at all I'm actually pressing CMD-Return repeatedly).
>
>
> > You'll need to give more information and try messing with the
> > script. Can't magically know what's wrong.
>
> :-)
> I realize this, sorry once again
>
>
> > ~aw
>
>
> Regards,
> Vlad
>
>
>
> >
> >
> >
> >
> > On Saturday, January 23, 2016 at 8:11:55 AM UTC-5, Vlad Ghitulescu
> > wrote:
> >>
> >> Hello
> >>
> >>
> >> and thanks for the quick reply **BUT** it doesn't work.
> >>
> >> I had this script of yours:
> >>
> >> --
> >> (*
> >> Author: Kendall Conrad of Angelwatt.com
> >> Name: Smart Newline
> >> Created: 2010-01-23
> >> Updated: 2012-04-21
> >> Description: Based on the current line it will generate different
> >> text for the context. It knows about indentation, code doc syntax,
> >> function starts, lists, HTML li
> >> *)
> >> tell application "BBEdit" to tell front window
> >> activate
> >> set lineNum to startLine of selection
> >> set leng to length of line lineNum
> >> -- Move cursor to end of line
> >> if leng > 0 then
> >> select insertion point after (character (leng) of line
> >> lineNum)
> >> end if
> >>
> >> -- Find leading whitespace
> >> set theResult to find "(^[\\s]*)" options {search mode:grep}
> >> searching
> >> in line (lineNum)
> >> -- Set text to the white space found
> >> set white to ""
> >> if found of theResult then
> >> set white to found text of theResult
> >> end if
> >> set wleng to length of white
> >>
> >> -- Define a tab based on user settings
> >> set aTab to tab
> >> if expand tabs then
> >> set spaceTab to ""
> >> repeat tab width times
> >> set spaceTab to spaceTab & space
> >> end repeat
> >> set aTab to spaceTab
> >> end if
> >>
> >> -- Are we starting a code doc?
> >> if (leng - wleng) ≥ 3 then
> >> if (characters (wleng + 1) through (wleng + 3) of line
> >> lineNum as
> >> string) is equal to "/**" then
> >> set selection to return & white & " * " & return
> >> &
> >> white & " */"
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >> end if
> >>
> >> -- Are we starting a code doc?
> >> if (leng - wleng) ≥ 2 then
> >> if (characters (wleng + 1) through (wleng + 2) of line
> >> lineNum as
> >> string) is equal to "/*" then
> >> set selection to return & white & " * " & return
> >> &
> >> white & " */"
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >> end if
> >>
> >> -- Check for lists
> >> set theResult to find "^\\s*[\\*#>\\+\\-]+([\\w ]*)" options
> >> {search
> >> mode:grep} searching in (line lineNum)
> >> if found of theResult then
> >> set preFind to find "[\\*#>\\+\\-]+" options {search
> >> mode:grep}
> >> searching in (line lineNum)
> >> set _char to found text of preFind
> >> set selection to return & white & _char & " "
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >>
> >> -- Check for numbered list: (1. goes to 2.), (2.5 goes to 2.6)
> >> set theResult to find "^\\s*([\\d]+\\.)" options {search
> >> mode:grep}
> >> searching in (line lineNum)
> >> if found of theResult then
> >> set preNum to ""
> >> set preNumResult to find "([\\d]+\\.)+\\d" options
> >> {search
> >> mode:grep}
> >> searching in (line lineNum)
> >> if found of preNumResult then
> >> set preNum to characters 1 thru -2 of (found text
> >> of preNumResult)
> >> end if
> >> set numResult to find "[\\d]+\\. " options {search
> >> mode:grep}
> >> searching in (line lineNum)
> >> if found of numResult then
> >> set nextNum to ((characters 1 thru -3 of (found
> >> text of numResult))
> >> as text) + 1
> >> set selection to return & white & preNum &
> >> nextNum
> >> & ". "
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >> end if
> >>
> >> -- Check for <li
> >> if (leng - wleng) > 2 and (characters (wleng + 1) through (wleng
> >> +
> >> 3)
> >> of line lineNum as string) is equal to "<li" then
> >> -- Capture the whole li tag including attributes
> >> set liResult to find "<li[^>]*>" options {search
> >> mode:grep} searching
> >> in (line lineNum)
> >> if found of liResult then
> >> set selection to return & white & (found text of
> >> liResult) & "</li>"
> >> else
> >> -- just use a plain li tag
> >> set selection to return & white & "<li></li>"
> >> end if
> >> select (insertion point before character -5 of line
> >> (lineNum + 1))
> >> return
> >> end if
> >>
> >> -- Check for code block ({});
> >> if (leng - wleng) > 1 and (characters -2 thru -1 of line lineNum
> >> as
> >> string) is equal to "({" then
> >> set selection to return & white & aTab & return & white &
> >> "});"
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >>
> >> -- Check for code block {}
> >> if (leng - wleng) ≥ 1 and (character -1 of line lineNum as
> >> string)
> >> is
> >> equal to "{" then
> >> set selection to return & white & aTab & return & white &
> >> "}"
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >>
> >> -- Check for code block ();
> >> if (leng - wleng) ≥ 1 and (character -1 of line lineNum as
> >> string)
> >> is
> >> equal to "(" then
> >> set selection to return & white & aTab & return & white &
> >> ");"
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >>
> >> -- Check for code block : (Python)
> >> if (leng - wleng) ≥ 1 and (character -1 of line lineNum as
> >> string)
> >> is
> >> equal to ":" then
> >> set selection to return & white & aTab
> >> select insertion point after line (lineNum + 1)
> >> return
> >> end if
> >>
> >> -- Default: Insert a return plus the white space
> >> set selection to return & white
> >> select insertion point after selection
> >> end tell
> >> --
> >>
> >> that I've started with a KeyboardMaestro-macro (living in the
> >> KBM-Macros
> >> for BBEdit) triggered by CMD-Return.
> >>
> >> I replaced the above script with the new one and… nothing worked
> >> anymore: nor the previous *Smart Newline*, neither the new *Smart
> >> Prefixed Newline*.
> >>
> >> What went wrong?
> >>
> >>
> >> Regards,
> >> Vlad
> >>
> >>
> >>
> >>
> >> On 23 Jan 2016, at 0:20, Kendall Conrad wrote:
> >>
> >>> What you wanted was a bit different than what Smart Newlines was
> >>> for,
> >>> but
> >>> it was easy enough to create a modified version. I only did a small
> >>> amount
> >>> of testing, but seemed OK.
> >>>
> >>> (*
> >>> Author: Kendall Conrad of Angelwatt.com
> >>> Name: Smart Prefixed Newline
> >>> Created: 2016-01-22
> >>> Updated: 2016-01-22
> >>> Description: Starts new line with the same line prefix as the
> >>> current
> >>> line and keeps the text
> >>> from the current cursor position to the end of the line
> >>> *)
> >>> tell application "BBEdit" to tell front window
> >>> activate
> >>> set lineNum to startLine of selection
> >>> set leng to length of line lineNum
> >>> -- Find leading whitespace
> >>> set theResult to find "(^[\\s]*)" options {search mode:grep}
> >>> searching
> >>> in line (lineNum)
> >>> -- Set text to the white space found
> >>> set white to ""
> >>> if found of theResult then
> >>> set white to found text of theResult
> >>> end if
> >>> set wleng to length of white
> >>>
> >>> -- Define a tab based on user settings
> >>> set aTab to tab
> >>> if expand tabs then
> >>> set spaceTab to ""
> >>> repeat tab width times
> >>> set spaceTab to spaceTab & space
> >>> end repeat
> >>> set aTab to spaceTab
> >>> end if
> >>>
> >>> -- Check for list style lines
> >>> set theResult to find "^\\s*[\\*#>\\+\\-]+([\\w ]*)" options {search
> >>> mode:grep} searching in (line lineNum)
> >>> if found of theResult then
> >>> set preFind to find "[\\*#>\\+\\-]+" options {search mode:grep}
> >>> searching in (line lineNum)
> >>> set _char to found text of preFind
> >>> set selection to return & white & _char
> >>> select insertion point after selection
> >>> return
> >>> end if
> >>>
> >>> -- Default: Insert a return plus the white space
> >>> set selection to return & white
> >>> select insertion point after selection
> >>> end tell
> >>>
> >>>
> >>> ~aw
> >>>
> >>>
> >>>
> >>>
> >>> On Tuesday, January 19, 2016 at 8:58:34 AM UTC-5, Vlad Ghitulescu
> >>> wrote:
> >>>>
> >>>> Hello!
> >>>>
> >>>>
> >>>> While testing MailMate as an alternative to Apple's Mail.app I edit
> >>>> my
> >>>> mails now in BBEdit.
> >>>> That brings all the joy BBEdit makes :-)… and a question.
> >>>>
> >>>> Replying to an email generates first text like this:
> >>>>
> >>>> ---
> >>>>> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
> >>>>> nonumy eirmod
> >>>>> tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
> >>>> ---
> >>>>
> >>>> When I put the cursor let's say in the first line, between *(…)
> >>>> amet,*
> >>>> and * consetetur (…)* and press ENTER, the cited text looks like
> >>>> this:
> >>>>
> >>>> ---
> >>>>> Lorem ipsum dolor sit amet,
> >>>> consetetur sadipscing elitr, sed diam nonumy
> >>>>> eirmod
> >>>>> tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
> >>>> ---
> >>>>
> >>>> instead of what I would like:
> >>>>
> >>>> ---
> >>>>> Lorem ipsum dolor sit amet,
> >>>>> consetetur sadipscing elitr, sed diam nonumy
> >>>>> eirmod
> >>>>> tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
> >>>> ---
> >>>>
> >>>> that is, the citation mark *> * is not continued.
> >>>>
> >>>> I'm using already the Smart Newline - script
> >>>> (
> >>
> http://www.angelwatt.com/words/2011/04/11/bbedit-smart-newline-open-line/),
>
> >>
> >>>>
> >>>> but it doesn't do it's magic here.
> >>>>
> >>>> Do you have an idea, how could I convince the citation mark to
> >>>> *jump*
> >>>> on
> >>>> the next line when inserting something in the middle of a line?
> >>>>
> >>>> Thanks!
> >>>>
> >>>>
> >>>> Regards,
> >>>> Vlad
> >>>>
> >>>>
> >>>>
> >>>
> >>> --
> >>> This is the BBEdit Talk public discussion group. If you have a
> >>> feature request or would like to report a problem, please email
> >>> "[email protected] <javascript:>" 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 Google
> >>> Groups "BBEdit Talk" group.
> >>> To unsubscribe from this group and stop receiving emails from it,
> >>> send
> >>> an email to [email protected] <javascript:>.
> >>> To post to this group, send email to [email protected]
> >> <javascript:>.
> >>
> >
> > --
> > This is the BBEdit Talk public discussion group. If you have a
> > feature request or would like to report a problem, please email
> > "[email protected] <javascript:>" 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 Google
> > Groups "BBEdit Talk" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> > an email to [email protected] <javascript:>.
> > To post to this group, send email to [email protected]
> <javascript:>.
>
--
This is the BBEdit Talk public discussion group. 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>
---
You received this message because you are subscribed to the Google Groups
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].