On 06/10/2018, at 08:03, Jean-Christophe Helary <[email protected] 
<mailto:[email protected]>> wrote:
> If there was a way to separate point and mark. I could leave the mark where I 
> want, jump to some place in the document and I would have a selection.
> 
> I guess that's a valid feature request ?


Hey Jean-Christophe,

You can do that with two scripts.  (Appended.)

A script that records the current insertion location.

And a script that will select from the recorded “marker” to the current cursor 
location in the front document.

Save them as compiled scripts using the Script Editor.app.

Give them relevant keyboard shortcuts.

Go-to-town.

This line in script 2 is vitally important:

set scriptFile to alias ((path to application support from user domain as text) 
& "BBEdit:Scripts:Mark_01.scpt")

The script name MUST be correct.

The script will function correctly when moving either forward or backward in 
the document.

Once again I've provided no error-checking.  I added a very generic 
error-handler to script 2 as an example.

I have not provided multiple document support.

Presently the marker is stored in the Marker_01 script and has no specific 
linkage to the document, so it is very perishable.

If I was going to move beyond proof-of-concept I'd consider storing the marker 
in a text file on a per-document basis using the document name and character 
offset of the insertion location.  Reading, writing, and maintaining this would 
be a trivial exercise with `sed` and would be very fast.

--
Take Care,
Chris


The Mark Script


----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2018/06/10 22:19
# dMod: 2018/06/10 22:19 
# Appl: BBEdit
# Task: Create Marker 01 for use in other scripts.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @BBEdit, @Create, @Marker
----------------------------------------------------------------

property insertionLocation : ""

tell application "BBEdit"
    tell front text window
        set insertionLocation to selection
    end tell
end tell

----------------------------------------------------------------



The Select-from-Cursor-Location-to-Marker Script


----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2018/06/10 22:19
# dMod: 2018/06/10 22:19 
# Appl: BBEdit
# Task: Select from Marker 01 to current cursor location.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @BBEdit, @Select, @Marker, @Current, @Cursor, 
@Location
----------------------------------------------------------------

try
    
    set scriptFile to alias ((path to application support from user domain as 
text) & "BBEdit:Scripts:Mark_01.scpt")
    set markScript to load script scriptFile
    
    tell application "BBEdit"
        tell front text window
            set markedInsertionLocation to markScript's insertionLocation
            set insertionLocation to selection
            
            set markedCharacterOffset to (characterOffset of 
markedInsertionLocation)
            set currentCharacterOffset to (characterOffset of insertionLocation)
            
            if markedCharacterOffset < currentCharacterOffset then
                set startChar to markedCharacterOffset
                set endChar to currentCharacterOffset - 1
            else
                set startChar to currentCharacterOffset
                set endChar to markedCharacterOffset - 1
            end if
            
            select (characters startChar thru endChar)
            
        end tell
    end tell
    
on error e number n
    set e to e & return & return & "Num: " & n
    if n ≠ -128 then
        try
            tell application (path to frontmost application as text) to set 
ddButton to button returned of ¬
                (display dialog e with title "ERROR!" buttons {"Copy Error 
Message", "Cancel", "OK"} ¬
                    default button "OK" giving up after 30)
            if ddButton = "Copy Error Message" then set the clipboard to e
        end try
    end if
end try

----------------------------------------------------------------



-- 
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].
Visit this group at https://groups.google.com/group/bbedit.

Reply via email to