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.