Sorry... My bad for not giving context... I very frequently need to do 
this.  I need to eventually get this as a keyboard command just like
in Jetbrains Clion or PyCharm where you do a ctrl + shift + J to join 
lines.  

I don't want a regex to memorize and enter. I do not want to highlight any 
lines...Just place the cursor anywhere on a line and run the script or 
other solution to perform all the steps between that line and the following 
line

On Wednesday, October 30, 2024 at 10:39:38 AM UTC-7 James Reynolds wrote:

> search: ^\s*(.*[^\s])\s*$
> replace: \1
>
> search: (.*)\r(.*)\n
> replace: \1 \2\n
>
> James Reynolds
> https://magnusviri.com
>
> > On Oct 30, 2024, at 11:33, Andrew Ward <[email protected]> wrote:
> > 
> > Any suggestions on how to join two lines, deleting all trailing and 
> leading whitespace replacing with a single space?
> > 
> > I've tried various script suggestions by chatGPT, Gemini(useless) and 
> Perplexity (Almost works except does not remove leading whitespace from the 
> line to be concatenated). Here is the almost working .scpt
> > 
> > tell application "BBEdit"
> > tell front text window
> > if (count of characters of selection) is 0 then
> > select line (get startLine of selection)
> > end if
> > set oldText to contents of selection
> > log "Old text: " & oldText -- Debug output
> > set newText to my joinLines(oldText)
> > log "New text: " & newText -- Debug output
> > set contents of selection to newText
> > end tell
> > end tell
> > 
> > on joinLines(theText)
> > set AppleScript's text item delimiters to {return, linefeed, character 
> id 8233, character id 8232}
> > set theLines to text items of theText
> > if (count of theLines) > 1 then
> > -- Trim trailing whitespace and add a single space to the first line
> > set firstLine to do shell script "echo " & quoted form of (item 1 of 
> theLines) & " | sed 's/[[:space:]]*$/ /'"
> > 
> > -- Remove all leading whitespace from the second line
> > set secondLine to do shell script "echo " & quoted form of (item 2 of 
> theLines) & " | sed 's/^[[:space:]]*//'"
> > 
> > -- Combine the modified first and second lines
> > set combinedLines to firstLine & secondLine
> > 
> > -- Add any remaining lines unchanged
> > if (count of theLines) > 2 then
> > set AppleScript's text item delimiters to return
> > set remainingLines to (items 3 thru -1 of theLines) as text
> > set combinedLines to combinedLines & return & remainingLines
> > end if
> > 
> > return combinedLines
> > else
> > return theText
> > end if
> > end joinLines
> > 
> > 
> > 
> > -- 
> > This is the BBEdit Talk public discussion group. If you have a feature 
> request or believe that the application isn't working correctly, please 
> email "[email protected]" rather than posting here. Follow @bbedit on 
> Mastodon: <https://mastodon.social/@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 view this discussion visit 
> https://groups.google.com/d/msgid/bbedit/2b22def4-0b67-42c0-a2de-a45080b3f5a3n%40googlegroups.com
> .
>
>

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or believe that the application isn't working correctly, please email 
"[email protected]" rather than posting here. Follow @bbedit on Mastodon: 
<https://mastodon.social/@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 view this discussion visit 
https://groups.google.com/d/msgid/bbedit/f23c85d2-3ab9-4042-acde-7a0f8ad62329n%40googlegroups.com.

Reply via email to