Commit Graph

5519 Commits

Author SHA1 Message Date
Kevin Sawicki
4ae0d8af9f Use tantamount for _.isEqual() implementation
This code was needed in telepath so it was pulled out as a
standalone module with the exact same behavior as was previously
in Atom.
2013-07-06 13:54:46 -07:00
Kevin Sawicki
651bbaa3ce Create an empty ~/.atom/config.cson when missing
Closes #614
2013-07-05 09:17:44 -07:00
Kevin Sawicki
c7f6e87132 Only use event.which when key identifier is non-ASCII
Previously event.which was used when it was less than the key identifier
which broke fn-delete since that generates a valid key identifier but a
lower event.which value that does not translate to 'delete' using the char
code converter.

Close #611
2013-07-02 13:13:45 -07:00
Kevin Sawicki & Nathan Sobo
0e6a3c52ad Add comments to view cache ivars 2013-07-02 10:13:59 -07:00
Kevin Sawicki
b786bcc774 Store views that don't implement setModel() by their item
Previously viewForItem() would create a new view each time it was called
with an item whose view did not implement setModel() even if a view for that
item already existed in the pane.

Now a WeakMap is used to map items to their view so they can be reused
and cleaned up even when the view does not implement setModel().
2013-07-02 09:41:46 -07:00
Nathan Sobo
23df564189 Release any leftover buffers in Project.destroy 2013-07-01 14:21:42 -06:00
Nathan Sobo
0c17ed9c33 Return a clone of @buffers from Project.getBuffers
Previously, we traversed the EditSessions. Not necessary.
2013-07-01 14:21:42 -06:00
Kevin Sawicki
7615d54337 Support calling fsUtils.absolute() with a '~' path 2013-07-01 12:46:50 -07:00
Kevin Sawicki
6b591b121d Interpolate pathToCreate instead of path
This regressed as part of the migration to using helpers from
path instead of fs-utils.

Close #608
2013-07-01 12:10:52 -07:00
Kevin Sawicki & Nathan Sobo
268edf16d8 Make setModel optional in pane item view classes 2013-07-01 10:53:34 -07:00
Kevin Sawicki
01f220fb1b Support non-English keyboard languages
Use event.which if it is lower than the parsed key identifier.
This is the case when a non-English keyboard language is selected and
a physical English keyboard is being used.

This allows keybindings to still work even when the physical key pressed
is different than the key it maps to for the currently selected language.

Closes #585
2013-06-28 16:36:55 -07:00
Kevin Sawicki
53a92751e6 Add missing @ before call to confirmSync 2013-06-28 10:06:41 -07:00
Nathan Sobo
5a9e45f9d8 Upgrade telepath 2013-06-28 04:39:31 -06:00
Kevin Sawicki
8561bb34a8 Save and restore spec window dimensions
Closes #597
2013-06-28 04:39:30 -06:00
Kevin Sawicki & Nathan Sobo
f4300b8cab Fix specs due to scrollTop/Left becoming methods on EditSession 2013-06-28 04:39:30 -06:00
Kevin Sawicki & Nathan Sobo
f3f9c2c921 Show active item from Pane constructor if state has activeItemUri 2013-06-28 04:39:30 -06:00
Kevin Sawicki & Nathan Sobo
33dca9315c Add PaneContainer.getState 2013-06-28 04:39:30 -06:00
Kevin Sawicki & Nathan Sobo
c596514d11 Accept documents in EditSession and replicate scroll position 2013-06-28 04:39:30 -06:00
Kevin Sawicki & Nathan Sobo
5b00cf1701 Rename Buffer -> TextBuffer to match file and deserializer name 2013-06-28 04:39:29 -06:00
Kevin Sawicki & Nathan Sobo
a62cd0f16a Replicate active pane item 2013-06-28 04:39:29 -06:00
Kevin Sawicki & Nathan Sobo
f340828506 Use .getState() instead of .serialize() when mutating panes 2013-06-28 04:39:29 -06:00
Kevin Sawicki
b999c71ad6 Auto-insert clipboard when it is a GUID 2013-06-28 04:39:28 -06:00
Kevin Sawicki
9f31f9a76b Add loading view when joining session 2013-06-28 04:39:28 -06:00
Kevin Sawicki & Nathan Sobo
7fe356b649 Ensure events are delivered in order 2013-06-28 04:39:28 -06:00
Kevin Sawicki & Nathan Sobo
b5aa0b900c Remove output listener when connection is closed 2013-06-28 04:39:28 -06:00
Kevin Sawicki & Nathan Sobo
cd4622fbeb Serialize project in window state 2013-06-28 04:39:27 -06:00
Kevin Sawicki & Nathan Sobo
89192c2ee2 Extract helpers to session-utils 2013-06-28 04:39:27 -06:00
Kevin Sawicki & Nathan Sobo
b5b408d134 Open new window when joining collaboration session 2013-06-28 04:39:27 -06:00
Kevin Sawicki
b08f320ed5 Remove mini class to give id enough room 2013-06-28 04:39:27 -06:00
Kevin Sawicki
4c7025ae81 Add message to join prompt 2013-06-28 04:39:27 -06:00
Kevin Sawicki
554af1becb Add initial collaboration keymap 2013-06-28 04:39:27 -06:00
Kevin Sawicki
6d49e0fd57 Pass through all window settings as load settings 2013-06-28 04:39:26 -06:00
Kevin Sawicki
31d872fbfe Add atom.openWindow() 2013-06-28 04:39:26 -06:00
Kevin Sawicki
b842a727ee Support sending in windowState to AtomWindow ctor 2013-06-28 04:39:26 -06:00
Kevin Sawicki & Nathan Sobo
0851b4d011 Replicate pane splitting and removal
We're using Peer.js to stream changes to shared telepath documents
between participants.

We're replacing the rootView of joiners in a somewhat hacky way,
but replication of pane splits and items is fully tested.
2013-06-28 04:39:26 -06:00
Kevin Sawicki & Nathan Sobo
6480e956af Keep resident window state object 2013-06-28 04:39:26 -06:00
Kevin Sawicki & Nathan Sobo
9c95a4751b Return telepath documents from getWindowState() 2013-06-28 04:39:25 -06:00
Kevin Sawicki & Nathan Sobo
d283834978 Add initial document sharing over peerJS connection 2013-06-28 04:38:22 -06:00
Kevin Sawicki
66b490b5da Add initial collaboration package 2013-06-28 04:38:22 -06:00
Cheng Zhao
e434f7c0a9 💄 2013-06-27 22:39:41 +08:00
Cheng Zhao
e7aac2ef6e Show confirm close dialog as sheet. 2013-06-27 21:30:47 +08:00
Cheng Zhao
45ce8e1d63 Ask for close confirmation in beforeunload handler. 2013-06-27 18:39:29 +08:00
Cheng Zhao
bdbec54f24 Make PaneContainer.confirmClose() synchronous. 2013-06-27 16:21:14 +08:00
Cheng Zhao
6c0f4c09d9 Make Pane.promptToSaveItem synchronous. 2013-06-27 12:40:36 +08:00
Kevin Sawicki
e67676b01c Use deleteSelectedText() instead of delete()
Selection.delete() adds to the selection if it is empty which
we don't want to do when replacing selected text.

Closes #603
2013-06-26 19:03:45 -07:00
Kevin Sawicki
f3b50eed3b Migrate close bindings from editor namespace to pane
These were left over from the pane migration still under
the editor namespace and were previously not accessible via
a keybinding.
2013-06-25 13:15:39 -07:00
probablycorey
a4217909c0 Don't check for updates in background if version is a sha
If the version is a 7 char sha, then we assume it is a local build.
2013-06-25 09:54:03 -07:00
Kevin Sawicki
86c8343107 Score grammar matches using longest fileType match
Previously the score for two grammars matching on path
was equal and so the first one would be selected.

Now the longer match will have a higher score and will be selected
over other grammars with shorter fileType match lengths.

Closes #602
2013-06-24 18:23:54 -07:00
Kevin Sawicki
6b6ce03c72 Use hasParent() instead of isOnDom() 2013-06-24 18:03:35 -07:00
Kevin Sawicki
a7ee5985db Separate variable from requires 2013-06-24 16:56:52 -07:00