Re: selecting blocs of lines

2018-06-19 Thread Jean-Christophe Helary
:) Thank you Chris !

Jean-Christophe 

> On Jun 20, 2018, at 8:32, Christopher Stone  
> wrote:
> 
> On 06/10/2018, at 08:03, Jean-Christophe Helary  > 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
> "supp...@barebones.com" rather than posting to the group.
> Follow @bbedit on Twitter:  >
> --- 
> 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 

Re: selecting blocs of lines

2018-06-19 Thread Christopher Stone
On 06/10/2018, at 08:03, Jean-Christophe Helary mailto:brandel...@gmail.com>> 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
"supp...@barebones.com" rather than posting to the group.
Follow @bbedit on Twitter: 
--- 
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 bbedit+unsubscr...@googlegroups.com.
To post to this group, send email to bbedit@googlegroups.com.
Visit this group at https://groups.google.com/group/bbedit.