[txmt-dev] Re: Split Views Implementation

2015-01-24 Thread Joachim Mårtensson
Hmm, I would prefer a ’D’ + modifier for a somewhat secret project :-) . ’C’ 
would work as well, but is to tied to copy.  

--  
Joachim Mårtensson


On Saturday 24 January 2015 at 12:43, Jacob Carlborg wrote:

> On 2015-01-22 05:54, Steven Clukey wrote:
>  
> > Aha, another conflict indeed. This is getting tricky. I think (heavy on the 
> > think) cmd+D is open, but many bundles use cmd+shift+D for an open command 
> > of sorts.
>  
> What if we add ctrl or alt?
>  
> --  
> /Jacob Carlborg
>  
> ___
> textmate-dev mailing list
> [email protected] (mailto:[email protected])
> http://lists.macromates.com/listinfo/textmate-dev
>  
>  


___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev

[txmt-dev] Re: Split Views Implementation

2015-01-24 Thread Jacob Carlborg

On 2015-01-22 05:54, Steven Clukey wrote:


Aha, another conflict indeed. This is getting tricky. I think (heavy on the 
think) cmd+D is open, but many bundles use cmd+shift+D for an open command of 
sorts.


What if we add ctrl or alt?

--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-22 Thread Joachim Mårtensson
Currently, it seems that switching document keeps already created split views. 
While an alternative model would be to keep split views per document. e.g. you 
could switch from one document-tab with two split views to another document-tab 
with three or more split views. Not sure why I brought up Total Finder other 
than to say; it has a nice feature where you can pin two different tabs 
together via double-clicking, forming a split view between them.

http://static.binaryage.com/338c0f60_images_showcase_full-dual.png

This does not change behavior in the other tabs.

/Joachim Mårtensson
   




--  
Joachim Mårtensson
Sent with Sparrow (http://www.sparrowmailapp.com)


On Thursday 22 January 2015 at 06:00, Steven Clukey wrote:

> On Jan 21, 2015, at 3:37 PM, Joachim Mårtensson  (mailto:[email protected])> wrote:
>  
> > What I liked about my attempt was separate split view state per document. 
> > This was inspired by Total Finder.
> > And a close button in the statusbar, if I remember it was somewhat 
> > convoluted trying to figure out which view to close, since the statusbar 
> > belong to the view above, but should close the view below.
> >  
> > I’ll see if I can port some of my ideas.  
>  
> I’m not sure I get what you’re saying here, perhaps because I’ve never heard 
> of Total Finder, but any help is definitely appreciated.
>  
> Steven Clukey
>  
>  
> ___
> textmate-dev mailing list
> [email protected] (mailto:[email protected])
> http://lists.macromates.com/listinfo/textmate-dev
>  
>  


___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev

[txmt-dev] Re: Split Views Implementation

2015-01-21 Thread Steven Clukey

On Jan 14, 2015, at 2:51 PM, Jacob Carlborg  wrote:

> I noticed two things with the shortcuts:
> 
> * The shortcut for splitting horizontally is the same as changing language. 
> So it conflicts with selecting any language starting with a D :(. BTW is 
> cmd+D and cmd+D+shift available?

Aha, another conflict indeed. This is getting tricky. I think (heavy on the 
think) cmd+D is open, but many bundles use cmd+shift+D for an open command of 
sorts.

> 
> * If I have split the window in four views: top-left, top-right, bottom-left, 
> bottom-right. When using the shortcuts to navigate from top-left to 
> top-right. Then pressing ctrl+alt+left-arrow it goes to the bottom-left view. 
> I would have expected it to go back to the top-left view instead, i.e. always 
> staying on the same “row"
> 

Yeah, thats a good idea, I added a heuristic to try to figure this out. Does a 
decent job I’d say, even though the code is especially clunky.

Steven Clukey

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-21 Thread Steven Clukey
On Jan 21, 2015, at 3:37 PM, Joachim Mårtensson  
wrote:

> What I liked about my attempt was separate split view state per document. 
> This was inspired by Total Finder.
> And a close button in the statusbar, if I remember it was somewhat convoluted 
> trying to figure out which view to close, since the statusbar belong to the 
> view above, but should close the view below.
> 
> I’ll see if I can port some of my ideas.  
> 

I’m not sure I get what you’re saying here, perhaps because I’ve never heard of 
Total Finder, but any help is definitely appreciated.

Steven Clukey


___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-14 Thread Jacob Carlborg

On 2015-01-14 05:11, Steven Clukey wrote:


I realized that the look probably ought to match the style of the HTML Output 
window so I used those colors for the border. I think this is pretty close to 
what you said anyway, so hopefully it looks good to you now.


Yeah, it looks great :)


I also changed the keyboard shortcuts and added commands to the arrow keys on 
ctrl+alt+arrow.


I noticed two things with the shortcuts:

* The shortcut for splitting horizontally is the same as changing 
language. So it conflicts with selecting any language starting with a D 
:(. BTW is cmd+D and cmd+D+shift available?


* If I have split the window in four views: top-left, top-right, 
bottom-left, bottom-right. When using the shortcuts to navigate from 
top-left to top-right. Then pressing ctrl+alt+left-arrow it goes to the 
bottom-left view. I would have expected it to go back to the top-left 
view instead, i.e. always staying on the same "row"


--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-13 Thread Steven Clukey

On Jan 8, 2015, at 3:02 AM, Jacob Carlborg  wrote:

> My initial thought is that the styling of the borders should look the same 
> regardless if the split view is enabled or not. So I guess:
> 
> * The left border of the gutter should have the same the color as right border
> 
> * The bottom border of the bottom bar should have the same color as the top 
> border
> 
> * The border of the separator between the "Line" item and the red icon in the 
> bottom bar should have the same color as the other separators in the bottom 
> bar
> 

I realized that the look probably ought to match the style of the HTML Output 
window so I used those colors for the border. I think this is pretty close to 
what you said anyway, so hopefully it looks good to you now.

I also changed the keyboard shortcuts and added commands to the arrow keys on 
ctrl+alt+arrow.


Steven

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-08 Thread Jacob Carlborg

On 2015-01-08 04:45, Steven Clukey wrote:


Truly I’m not the guy who should be making style decisions. It currently looks 
fine to me, but if you think it doesn’t look good then I’d say you’re probably 
right. If you can tell me what you want to see then I can try to make it happen.


My initial thought is that the styling of the borders should look the 
same regardless if the split view is enabled or not. So I guess:


* The left border of the gutter should have the same the color as right 
border


* The bottom border of the bottom bar should have the same color as the 
top border


* The border of the separator between the "Line" item and the red icon 
in the bottom bar should have the same color as the other separators in 
the bottom bar


--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-07 Thread Steven Clukey

On Jan 6, 2015, at 4:08 AM, Jacob Carlborg  wrote:

> That's barley visible and I can't see a bottom border for the status bar. 
> Also, the divider on the bottom status bar between "Line" and the red icon 
> just looks weird.

Truly I’m not the guy who should be making style decisions. It currently looks 
fine to me, but if you think it doesn’t look good then I’d say you’re probably 
right. If you can tell me what you want to see then I can try to make it happen.

Thanks,
Steven Clukey

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-07 Thread Steven Clukey
On Jan 5, 2015, at 11:15 PM, Allan Odgaard  wrote:

> Control-option + arrow keys could be used. They are bound to sub-word 
> movement, which control + arrow keys are also bound to.
> 
> Though users of Spaces may like control + arrow keys to be used to move 
> between spaces, and that’s why TextMate also provide them on control-option.

Alright, I’ll implement the arrow keys with ⌃⌥ for now, at least it’s better 
than nothing.

> As for your current choice of ⌃W for “Remove Current Split: ⌃W”. This key is 
> “Select Word” and (more importantly) Extend Selection to Include Next, which 
> is a very useful action that we do not want to eclipse.

Aha, I did not notice this conflict. In the interest of keeping the shortcuts 
consistent with each other I think all of them should be changed again. I 
propose these:

Split Vertically: ⌃⌥D
Split Horizontally: ⌃⌥⇧D
Remove Current Split: ⌃⌥W
Remove Other Splits: ⌃⌥⇧W

so that all the split related command would use ⌃⌥ as their base. Are there any 
conflicts with these that I have missed?

> I’ll read this thread more thoroughly (hopefully in a few days) when I’ve 
> pruned my current backlog.

That sounds great. Thanks.

Steven Clukey
___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev

[txmt-dev] Re: Split Views Implementation

2015-01-06 Thread Jacob Carlborg

On 2015-01-06 04:23, Steven Clukey wrote:


I believe that white line is the NSSplitView divider. That must be simply the 
style in 10.10,


No, I don't think so. I just tried to create a sample application in 
Xcode with a split view (with thin divider style). The divider has a 
darker gray color, #d4d4d4. While on the image I showed it's #f6f6f6. On 
your image it's #dedede.



because here is what it looks like on my 10.9:

https://dl.dropboxusercontent.com/u/11625141/textmate_splits_inactive.png


That's barley visible and I can't see a bottom border for the status 
bar. Also, the divider on the bottom status bar between "Line" and the 
red icon just looks weird.


--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-05 Thread Allan Odgaard

On 6 Jan 2015, at 10:23, Steven Clukey wrote:

I do believe all the arrow key combinations are taken, lest I missed 
one.


Control-option + arrow keys could be used. They are bound to sub-word 
movement, which control + arrow keys are also bound to.


Though users of Spaces may like control + arrow keys to be used to move 
between spaces, and that’s why TextMate also provide them on 
control-option.


As for your current choice of ⌃W for “Remove Current Split: ⌃W”. 
This key is “Select Word” and (more importantly) Extend Selection to 
Include Next, which is a very useful action that we do not want to 
eclipse.


I’ll read this thread more thoroughly (hopefully in a few days) when 
I’ve pruned my current backlog.

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev

[txmt-dev] Re: Split Views Implementation

2015-01-05 Thread Steven Clukey

On Jan 3, 2015, at 4:24 AM, Jacob Carlborg  wrote:

> Sure, here's how it looks when it's active [1] and here when it's inactive 
> [2]. I highlighted the edges that are missing the border.
> 
> I suspect that the left border of the gutter is usually handled by the window 
> or file browser border. And the bottom border of the status bar is handled by 
> the window border.
> 

I believe that white line is the NSSplitView divider. That must be simply the 
style in 10.10, because here is what it looks like on my 10.9:

https://dl.dropboxusercontent.com/u/11625141/textmate_splits_inactive.png

> That's quite a complicated hotkey, at least for a Swedish keyboard. I would 
> have expected one or two modifier keys + the arrow keys. Perhaps those are 
> all occupied for other things.

I do believe all the arrow key combinations are taken, lest I missed one. I 
picked the current combination because, on US keyboard, it is the same as 
selecting the previous/next tab plus the option key. But if there is another 
hotkey that you think would work better then I’m open to the suggestion.

Steven Clukey

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-03 Thread Jacob Carlborg

On 2015-01-03 06:54, Steven Clukey wrote:


I’m surprised I didn’t notice this, but I guess that goes to show just how 
often I use the file browser. Fixed in new commit.


Cool, thanks.


I don’t quite know what you mean here. I don’t see anything change, but I 
suppose I am just missing it. Could you provide a picture of what you are 
talking about?


Sure, here's how it looks when it's active [1] and here when it's 
inactive [2]. I highlighted the edges that are missing the border.


I suspect that the left border of the gutter is usually handled by the 
window or file browser border. And the bottom border of the status bar 
is handled by the window border.



There were already hotkeys for changing between splits, ⌃⌘{ and ⌃⌘}.


That's quite a complicated hotkey, at least for a Swedish keyboard. I 
would have expected one or two modifier keys + the arrow keys. Perhaps 
those are all occupied for other things.


[1] https://drive.google.com/open?id=0B7UtafxGD9vES3llMWlvTGRyVmM&authuser=0

[2] https://drive.google.com/open?id=0B7UtafxGD9vESHQ4VS1JZDhpTTA&authuser=0

--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev

[txmt-dev] Re: Split Views Implementation

2015-01-03 Thread Jacob Carlborg

On 2015-01-02 14:48, Attila Györffy wrote:

Awesome effort, this something that I’d be very interested in checking out. 
I’ve cloned your repo and tried building the app but the build unfortunately 
failed. I don’t recall being able to successfully compile TextMate on my 
current machine, but I still wonder: Is there a prebuilt version of TextMate 
that I could have a look at and try out?

It would be really useful.


The only issue I had was a couple of tests that didn't pass. I just 
commented those out :)


--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-02 Thread Steven Clukey
On Jan 2, 2015, at 8:48 AM, Attila Györffy  wrote:

> Awesome effort, this something that I’d be very interested in checking out. 
> I’ve cloned your repo and tried building the app but the build unfortunately 
> failed. I don’t recall being able to successfully compile TextMate on my 
> current machine, but I still wonder: Is there a prebuilt version of TextMate 
> that I could have a look at and try out?
> 
> It would be really useful.
> 
> Thanks,
> 
> — Attila
> 
> ___
> textmate-dev mailing list
> [email protected]
> http://lists.macromates.com/listinfo/textmate-dev

You can download the official TextMate 2 here:

http://macromates.com/download

though it doesn’t contain split views. As for my code, I would rather not 
distribute unsigned binaries of a testing branch of a project that isn’t mine, 
so I won’t. Though, if you would like to contribute you can start a new thread 
about your build issues and I’d be willing to help. I’ve had a couple build 
issues myself with TextMate and they can be tricky to get sorted.

Steven Clukey


___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-02 Thread Steven Clukey

On Jan 2, 2015, at 6:50 AM, Jacob Carlborg  wrote:

> This is awesome :D.
> 
> I few comments:
> 
> * I noted there are some issues with synchronizing the tabs and the content. 
> If I open a file from the file browser it will open a new tab, show the 
> correct content but the previous tab is selected. If I open another file the 
> tab for the last opened file before that is selected. This is when no split 
> view is active
> 

I’m surprised I didn’t notice this, but I guess that goes to show just how 
often I use the file browser. Fixed in new commit.

> * When there's a vertical split and TextMate is not the active application, 
> the left border of the gutter is gone. The same thing happens for a 
> horizontal split but for the bottom border of the status bar
> 

I don’t quite know what you mean here. I don’t see anything change, but I 
suppose I am just missing it. Could you provide a picture of what you are 
talking about?

> * It would be nice to have hotkeys for splitting and switch between the splits

There were already hotkeys for changing between splits, ⌃⌘{ and ⌃⌘}. I have 
added hotkeys for creating and removing splits in a new commit. I had to get a 
little long with them to avoid conflicts with bundles.

Split Horizontally: ⌥⇧⌘D
Split Vertically: ⌘D
Remove Current Split: ⌃W
Remove Other Splits: ⌃⌥W

> 
> * Personally I think the way you implemented the split view is a bit 
> confusing. If there are two tabs open and one split. Each file is show in one 
> view of the split. I would expect clicking a tab would active the 
> corresponding split view, not chaining the content in the current split view.
> 
> Alternatively implement separate split views for each tab, this is how both 
> iTerm and Xcode work.
> 

Perhaps I should explain a bit more why I implemented it the way I did:

The main concerns that drive the implementation are that it should be flexible 
(allow splitting the same document, arbitrary split locations, etc.) and at the 
same time be minimally invasive to the existing code. I believe that these 
goals are fairly well achieved as most of the code changes (and definitely the 
major ones) are contained to DocumentController and the new class, and 
splitting is quite flexible and easy.

Implementing the tab bar the ways you suggest would infringe on one or both of 
these concerns. Just making the tab bar select the split with that document 
open would make it tedious to split a single document and confuse what happens 
on opening and closing documents. Putting multiple tab bars (one for each 
split) would require much more refactoring of the code to make it work, this is 
doable, but unwanted. It also makes managing the splits and locations of the 
documents quite a chore (need to open documents in each split as if they are 
different windows, so they might as well be different windows).

Anyway the way it’s done here is not unprecedented in the editor world 
(QtCreator is similar), and I believe it would make sense to a person brand new 
to split views, so I don’t think the usability is an issue with this 
implementation.

Steven Clukey

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev

[txmt-dev] Re: Split Views Implementation

2015-01-02 Thread Attila Györffy
Awesome effort, this something that I’d be very interested in checking out. 
I’ve cloned your repo and tried building the app but the build unfortunately 
failed. I don’t recall being able to successfully compile TextMate on my 
current machine, but I still wonder: Is there a prebuilt version of TextMate 
that I could have a look at and try out?

It would be really useful.

Thanks,

— Attila

> On 02 Jan 2015, at 12:50, Jacob Carlborg  wrote:
> 
> On 2014-12-31 21:21, Steven Clukey wrote:
>> I’ve created an implementation of split views in TextMate. It is basically 
>> complete, except for one issue that I haven’t been able to fix and I am 
>> asking for help on this. I am posting it here rather than creating a Pull 
>> Request for several reasons. First, the known issue can be pretty serious, 
>> though it is not common in normal use. Second, my commits generally need 
>> work (which I appreciate, btw) and given the number of commits this may take 
>> some time to be ready for master. Third, I don’t want the pull request to 
>> become like the GitHub issue for split views, so I thought it would be 
>> better to post it here to work on, then when ready for master I’ll submit a 
>> Pull Request that can be merged quickly.
>> 
>> The usage is fairly simple, there are 4 new options in the View menu to 
>> control the splitting. The tab bar is global, it shows all the open document 
>> and the currently active document is highlighted. Selecting a new document 
>> in the tab bar will change the currently active split to show that document. 
>> Closing a document closes it from all of the splits that are showing it. The 
>> active document is changed by clicking inside a document (or menu options in 
>> Windows). Thats pretty much it.
>> 
>> Now the issue: if there are many documents open and they are closed “too 
>> fast" (holding CMD+W works) then the coherence of the documents is lost and 
>> the windows may end up in a state where closing “Untitled” opens “Untitled 
>> 2”, and closing “Untitled 2” opens “Untitled” and the window doesn’t close. 
>> Worse yet, the splits do not show a new document, they show documents that 
>> should have already been closed. I believe this is caused by the fact that 
>> `openAndSelectDocument` is somewhat asynchronous, and “too fast” perhaps 
>> means that the documents are closed faster than the new documents are open. 
>> But, since I have not been able to fix this problem perhaps my assessment is 
>> wrong.
>> 
>> The implementation is on my fork:
>> https://github.com/sclukey/textmate/commits/split_views
> 
> This is awesome :D.
> 
> I few comments:
> 
> * I noted there are some issues with synchronizing the tabs and the content. 
> If I open a file from the file browser it will open a new tab, show the 
> correct content but the previous tab is selected. If I open another file the 
> tab for the last opened file before that is selected. This is when no split 
> view is active
> 
> * When there's a vertical split and TextMate is not the active application, 
> the left border of the gutter is gone. The same thing happens for a 
> horizontal split but for the bottom border of the status bar
> 
> * It would be nice to have hotkeys for splitting and switch between the splits
> 
> * Personally I think the way you implemented the split view is a bit 
> confusing. If there are two tabs open and one split. Each file is show in one 
> view of the split. I would expect clicking a tab would active the 
> corresponding split view, not chaining the content in the current split view.
> 
> Alternatively implement separate split views for each tab, this is how both 
> iTerm and Xcode work.
> 
> -- 
> /Jacob Carlborg
> 
> ___
> textmate-dev mailing list
> [email protected]
> http://lists.macromates.com/listinfo/textmate-dev

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev


[txmt-dev] Re: Split Views Implementation

2015-01-02 Thread Jacob Carlborg

On 2014-12-31 21:21, Steven Clukey wrote:

I’ve created an implementation of split views in TextMate. It is basically 
complete, except for one issue that I haven’t been able to fix and I am asking 
for help on this. I am posting it here rather than creating a Pull Request for 
several reasons. First, the known issue can be pretty serious, though it is not 
common in normal use. Second, my commits generally need work (which I 
appreciate, btw) and given the number of commits this may take some time to be 
ready for master. Third, I don’t want the pull request to become like the 
GitHub issue for split views, so I thought it would be better to post it here 
to work on, then when ready for master I’ll submit a Pull Request that can be 
merged quickly.

The usage is fairly simple, there are 4 new options in the View menu to control 
the splitting. The tab bar is global, it shows all the open document and the 
currently active document is highlighted. Selecting a new document in the tab 
bar will change the currently active split to show that document. Closing a 
document closes it from all of the splits that are showing it. The active 
document is changed by clicking inside a document (or menu options in Windows). 
Thats pretty much it.

Now the issue: if there are many documents open and they are closed “too fast" 
(holding CMD+W works) then the coherence of the documents is lost and the windows 
may end up in a state where closing “Untitled” opens “Untitled 2”, and closing 
“Untitled 2” opens “Untitled” and the window doesn’t close. Worse yet, the splits do 
not show a new document, they show documents that should have already been closed. I 
believe this is caused by the fact that `openAndSelectDocument` is somewhat 
asynchronous, and “too fast” perhaps means that the documents are closed faster than 
the new documents are open. But, since I have not been able to fix this problem 
perhaps my assessment is wrong.

The implementation is on my fork:
https://github.com/sclukey/textmate/commits/split_views


This is awesome :D.

I few comments:

* I noted there are some issues with synchronizing the tabs and the 
content. If I open a file from the file browser it will open a new tab, 
show the correct content but the previous tab is selected. If I open 
another file the tab for the last opened file before that is selected. 
This is when no split view is active


* When there's a vertical split and TextMate is not the active 
application, the left border of the gutter is gone. The same thing 
happens for a horizontal split but for the bottom border of the status bar


* It would be nice to have hotkeys for splitting and switch between the 
splits


* Personally I think the way you implemented the split view is a bit 
confusing. If there are two tabs open and one split. Each file is show 
in one view of the split. I would expect clicking a tab would active the 
corresponding split view, not chaining the content in the current split 
view.


Alternatively implement separate split views for each tab, this is how 
both iTerm and Xcode work.


--
/Jacob Carlborg

___
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev