Re: How to get Balance Tags to include the tags

2011-08-27 Thread Dave Hein
OK, with help from Roland Küffner and Christopher Stone, I've been able to 
create the script I need. More on that in a bit.

There have been a number of suggestions that using find/replace with grep 
should work. That only works well if there are no nested spans (with inner 
spans that I want to keep ... i.e. spans with class attributes as opposed to 
span elements with no attributes). And matching beginning and closing tags is 
difficult in a nested element scenario. So, a script seems like the safest 
approach.

So here is what I did. First, I started with the script from Roland that 
selected the outer tags of a balanced tag selection. I'll repeat that original 
script here:

tell application "BBEdit"
if (balance tags) then
set x to characterOffset of selection
set y to x + (length of selection)
inside tag start range (x - 2) end range (x - 2)
set tagLength to (end_offset of tag of result) - (start_offset 
of tag of result)
set x to x - tagLength - 1
inside tag start range (y + 1) end range (y + 1)
set tagLength to (end_offset of tag of result) - (start_offset 
of tag of result)
set y to y + tagLength
select characters x thru y of window 1
else
beep -- script beeps if it could not create an initial balance
end if
end tell

Then I modified it to remove the outer tags:

tell application "BBEdit"
if (balance tags) then
set x to characterOffset of selection
set y to x + (length of selection)
inside tag start range (x - 2) end range (x - 2)
set tagLength to (end_offset of tag of result) - (start_offset 
of tag of result)
set xOpen to x - tagLength - 1
set lenOpen to tagLength
set yOpen to xOpen + lenOpen
inside tag start range (y + 1) end range (y + 1)
set tagLength to (end_offset of tag of result) - (start_offset 
of tag of result)
set xClose to y
set lenClose to tagLength
set yClose to xClose + lenClose
-- set insertion point before character xClose
tell window 1 to select (characters xClose thru yClose)
tell window 1 to delete selection
tell window 1 to select (characters xOpen thru yOpen)
tell window 1 to delete selection
else
beep -- script beeps if it could not create an initial balance
end if
end tell

Then I made it specific to a  element:

tell application "BBEdit"
set origInsPt to characterOffset of selection
if (balance tags) then
set x to characterOffset of selection
set y to x + (length of selection)
inside tag start range (x - 2) end range (x - 2)
set t to tag of result
if ("span" is equal to name of t) then
set tagLength to (end_offset of t) - (start_offset of t)
set xOpen to x - tagLength - 1
set lenOpen to tagLength
set yOpen to xOpen + lenOpen
inside tag start range (y + 1) end range (y + 1)
set tagLength to (end_offset of tag of result) - 
(start_offset of tag of result)
set xClose to y
set lenClose to tagLength
set yClose to xClose + lenClose
-- set insertion point before character xClose
tell window 1 to select (characters xClose thru yClose)
tell window 1 to delete selection
tell window 1 to select (characters xOpen thru yOpen)
tell window 1 to delete selection
else
tell window 1 to select (insertion point before 
character origInsPt)
beep -- script beeps if it outer element is not 
end if
else
beep -- script beeps if it could not create an initial balance
end if
end tell

Then I used a script from Chris to create the wrapper code to find an empty 
span element and do some processing with it; I added a loop that repeated until 
there were no more empty  elements remaining:

tell application "BBEdit"
set keepGoing to true
repeat while keepGoing = true
tell text of window 1
set fndRsltStart to find "" options ¬
{search mode:grep, case sensitive:false, 
starting at top:true} with selecting match
end tell
set keepGoing to found of fndRsltStart
if keepGoing = true then
set z to characterOffset of selection
   

Opening Files in Project Feature Suggestion

2011-08-27 Thread Alex Popescu
I've been reading this group for a while and played a bit more with
the Open File by Name feature (the closest to what other editors
provide). While it is definitely not on par with other solutions (Cmd
+T in TextMate, PeepCode, etc.) it could be good enough if:

1. it would use some filters to ignore files and searching

While using it with a versioned project, a search will also look
under .svn or .git folders. This is very annoying as I'd never really
want to look into those files. In case some advanced users would
actually need to access those files, then there could be a checkbox to
disable global filters.

The set of global filters would probably have to include:

- versioning files
- temporary files
- binary/compilation result files

2. in some next version, the open file by name would perform a fuzzy
live search: having feedback when performing an operation is so
present these days, that it looks odd that a desktop application is
not able to provide any feedback until clicking OK.

I hope you'll consider these features for the next versions of
BBEdit.

Alex://

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: 


Re: Opening Files in Project Feature Suggestion

2011-08-27 Thread Rich Siegel
On Saturday, August 27, 2011, Alex Popescu  wrote:

> I've been reading this group for a while and played a bit more with
> the Open File by Name feature (the closest to what other editors
> provide). While it is definitely not on par with other solutions (Cmd
> +T in TextMate, PeepCode, etc.) it could be good enough if:



R.
-- 
Rich Siegel Bare Bones Software, Inc.
  

Someday I'll look back on all this and laugh... until they sedate me.

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: 


Re: Assigning Keystroke to Scratchpad

2011-08-27 Thread gary
Thanks Chris! I got it working almost immediately. Works perfectly.

The only weird thing is that I have one project, and the Scratchpad
integrated into the project doesn't jive with the generic Scratchpad I
get with other files and by using the keystroke. Do projects have
there own Scratchpad separate from a generic Scratchpad.

I looked at the manual but saw nothing about this. Anyone have a clue?



On Aug 26, 10:06 pm, Christopher Stone 
wrote:
> On Aug 26, 2011, at 11:42, gary wrote:
>
> > Ahh, that's what I want, the ability to call it up even if it's not
> > the front most app. I actually have a license for keyboard maestro.
>
> __
>
> Hey Gary,
>
> Run this from an Applescript action in Keyboard Maestro.
>
> --
> Best Regards,
> Chris
>
> __
>
> tell application "BBEdit"
>   try
>     activate
>     open scratchpad window
>   on error errMsg number errNum
>     set sep to "=="
>     set e to sep & return & "Error: " & errMsg & return & sep & return ¬
>       & "Error Number: " & errNum & return & sep
>     beep
>     display dialog e
>   end try
> end tell

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: 


Re: Assigning Keystroke to Scratchpad

2011-08-27 Thread gary
Okay, after fumbling around here's what I've found out. I apologize if
I'm stating the obvious but I've just started using bbedit and have
never done anything with applescript.

The Scratchpad file that is called up when I use Keyboard Maestro
lives here:

/library/application support/bbedit

There is one strange thing about it. It doesn't show an extension, but
info says it's a text file. I can see what I've written on it with
quick view. However, if I click on it to open it the apple script
editor opens it. I get an error that says "a identifier can't go after
this identifier".

I have two projects, and when I click "show package contents" they
both have a Scratchpad file inside. Each maintains it's own info. And
unlike the global scratchpad in application support, they do show
a .txt extension, and when clicked, are opened by bbedit.

If I open either project scratchpad their name is scratchpad.txt. But
when I open the global Scratchpad with my keyboard shortcut, it only
says Scratchpad, without the .txt extension, in the title bar. Which,
I assume, is because of what I mentioned earlier (though it's a text
file it's set to open with the apple script editor).

So to sum up, what I see is one scratchpad not attached to any
project, and a scratchpad for each project I create. That's the only
way it makes sense to me. Am I correct?

And secondly, should I be concerned that the global Scratchpad in
bbedit application support shows no extension, and is set to be opened
with the apple script editor? I thought this might simply be because
the file was created with an apple script, and I also thought I could
just go to info and change what the file is associated with from the
apple script editor to bbedit, but I thought I might screw something
up.

Sorry this is so long and for any confusion.

gary



On Aug 27, 3:22 pm, Christopher Stone 
wrote:
> Hey Gary,
>
> On Aug 27, 2011, at 14:33, gary wrote:
>
> > Thanks Chris! I got it working almost immediately. Works perfectly.
>
> Good.
>
> > The only weird thing is that I have one project, and the Scratchpad 
> > integrated into the project doesn't jive with the generic Scratchpad I get 
> > with other files and by using the keystroke. Do projects have there own 
> > Scratchpad separate from a generic Scratchpad.
>
> That IS weird.  As far as I know you cannot open *the* Scratchpad in a 
> project window.
>
> Is there a 'Last Saved' date and 'File Path' associated with the one in the 
> project?
>
> Could *you* have create your own 'Scratchpad' file and associated it with the 
> project?
>
> What happens if you Command-Click on the menu bar icon one the one in the 
> project?
>
> --
> Best Regards,
> Chris

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: 


Re: Assigning Keystroke to Scratchpad

2011-08-27 Thread Christopher Stone
Hey Gary,

Thanks for taking the time to suss this out.

On Aug 27, 2011, at 18:15, gary wrote:
> The Scratchpad file that is called up when I use Keyboard Maestro lives here:
> /library/application support/bbedit

Right.  There lives the global Scratchpad file.
> There is one strange thing about it. It doesn't show an extension, but info 
> says it's a text file. I can see what I've written on it with quick view. 
> However, if I click on it to open it the apple script editor opens it. I get 
> an error that says "a identifier can't go after this identifier".

Don't worry about that.  It IS odd that it would be associated with the 
Applescript Editor on your machine rather than TextEdit but not terribly.

You can change it in the Finder if you want to.

The error is caused by the Applescript Editor trying to compile it into 
Applescript.
> I have two projects, and when I click "show package contents" they both have 
> a Scratchpad file inside. Each maintains it's own info. And unlike the global 
> scratchpad in application support, they do show a .txt extension, and when 
> clicked, are opened by bbedit.

Okay.  I had noticed the 'Scratchpad' and 'Unix Worksheet' items associated 
with the project, but I never access them in the file pane and didn't realize 
they were part of the project rather than the global files.

Learn something new and all that...
> And secondly, should I be concerned that the global Scratchpad in bbedit 
> application support shows no extension, and is set to be opened with the 
> apple script editor?

No.

> I thought this might simply be because the file was created with an apple 
> script

The file is not created with Applescript.  The script simply calls the global 
Scratchpad window.

> and I also thought I could just go to info and change what the file is 
> associated with from the apple script editor to bbedit, but I thought I might 
> screw something up.

This should not cause any problems.

--

>From the BBEdit 10 Release Notes:

◦ There's a new command on the Window menu: "Show Unix Worksheet". This will 
open a worksheet document that is application-wide, and backed by a worksheet 
file saved in your Application Support/BBEdit folder. Like the Scratchpad, 
changes here are saved automatically.


There's also a "Unix worksheet window" application property available to the 
scripting interface.

(* Repeated for the Scratchpad)

--

◦ Project windows grow a couple of new lists:
◦ Recently Used: Shows documents recently opened into this project's window.
◦ Scratchpad & Worksheet: Every project document carries its own scratch pad 
and worksheet document. This is shared for all users of the project, so if you 
wish you can use the scratchpad to make notes for other users; or store handy 
commands in the worksheet.
◦ These can be collapsed or hidden, if desired.

--


NOW - Back to your original issue:

Are you wanting to open the GLOBAL Scratchpad or the one LOCAL to your project 
file?

--
Best Regards,
Chris

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: 


CSS format preference

2011-08-27 Thread Rick Yentzer
In 10.0.2 I can't seem to find the preferences for the CSS format
options. Such as when a declaration contains only one attribute I
could keep it to one line verses individual lines for the braces.

While I"m at it, is there a way to adjust the format for CSS or JS
with the SourceFormat.profile?

Thanks.

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: 


Re: Assigning Keystroke to Scratchpad

2011-08-27 Thread gary
Chris,

Thanks for all the info and help. The global Scratchpad is what I
want. In fact, this works much better for me now that I realize each
project has it's own Scratchpad. I'd rather keep them separate. If I
have something on a global Scratchpad I want to use in a Project I'll
just copy it over.

The only thing I'm really curious about is why the document called up
by the apple script doesn't have a .txt extension. But as long is
doesn't cause problems I'll just ask no questions :)

Again, thanks for your help and patience. I really do appreciate it.

cheers,
gary

On Aug 27, 8:21 pm, Christopher Stone 
wrote:
> Hey Gary,
>
> Thanks for taking the time to suss this out.
>
> On Aug 27, 2011, at 18:15, gary wrote:
>
> > The Scratchpad file that is called up when I use Keyboard Maestro lives 
> > here:
> > /library/application support/bbedit
>
> Right.  There lives the global Scratchpad file.
>
> > There is one strange thing about it. It doesn't show an extension, but info 
> > says it's a text file. I can see what I've written on it with quick view. 
> > However, if I click on it to open it the apple script editor opens it. I 
> > get an error that says "a identifier can't go after this identifier".
>
> Don't worry about that.  It IS odd that it would be associated with the 
> Applescript Editor on your machine rather than TextEdit but not terribly.
>
> You can change it in the Finder if you want to.
>
> The error is caused by the Applescript Editor trying to compile it into 
> Applescript.
>
> > I have two projects, and when I click "show package contents" they both 
> > have a Scratchpad file inside. Each maintains it's own info. And unlike the 
> > global scratchpad in application support, they do show a .txt extension, 
> > and when clicked, are opened by bbedit.
>
> Okay.  I had noticed the 'Scratchpad' and 'Unix Worksheet' items associated 
> with the project, but I never access them in the file pane and didn't realize 
> they were part of the project rather than the global files.
>
> Learn something new and all that...
>
> > And secondly, should I be concerned that the global Scratchpad in bbedit 
> > application support shows no extension, and is set to be opened with the 
> > apple script editor?
>
> No.
>
> > I thought this might simply be because the file was created with an apple 
> > script
>
> The file is not created with Applescript.  The script simply calls the global 
> Scratchpad window.
>
> > and I also thought I could just go to info and change what the file is 
> > associated with from the apple script editor to bbedit, but I thought I 
> > might screw something up.
>
> This should not cause any problems.
>
> --
>
> From the BBEdit 10 Release Notes:
>
> ◦ There's a new command on the Window menu: "Show Unix Worksheet". This will 
> open a worksheet document that is application-wide, and backed by a worksheet 
> file saved in your Application Support/BBEdit folder. Like the Scratchpad, 
> changes here are saved automatically.
>
> 
There's also a "Unix worksheet window" application property available to the 
> scripting interface.
>
> (* Repeated for the Scratchpad)
>
> --
>
> ◦ Project windows grow a couple of new lists:
> ◦ Recently Used: Shows documents recently opened into this project's window.
> ◦ Scratchpad & Worksheet: Every project document carries its own scratch pad 
> and worksheet document. This is shared for all users of the project, so if 
> you wish you can use the scratchpad to make notes for other users; or store 
> handy commands in the worksheet.
> ◦ These can be collapsed or hidden, if desired.
>
> --
>
> NOW - Back to your original issue:
>
> Are you wanting to open the GLOBAL Scratchpad or the one LOCAL to your 
> project file?
>
> --
> Best Regards,
> Chris

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to bbedit@googlegroups.com
To unsubscribe from this group, send email to
bbedit+unsubscr...@googlegroups.com
For more options, visit this group at

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: