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.

Reply via email to