Commit Graph

121 Commits

Author SHA1 Message Date
Nathan Sobo
0e5c76b474 Start adding the normalizeIndent option to EditSession.proto.insertText
This will be used by the paste command to ensure that indentation is normalized.
2012-10-23 14:07:00 -06:00
Nathan Sobo
7be3c55765 Only auto-indent when typing, not when pasting or programmatically inserting
This paves the way for using a different strategy to normalize indentation when pasting, without it getting tangled in auto-indent.
2012-10-23 11:59:54 -06:00
Corey Johnson & Nathan Sobo
a72d0399f7 Add Editor.setShowInvisibles and remove showInvisibles from EditSession 2012-10-18 14:10:36 -07:00
Corey Johnson & Nathan Sobo
ae0a60f4a9 Eliminate unused showInvisibles parameter. 2012-10-18 11:52:51 -07:00
Corey Johnson
22e009a999 Set invisible values for spaces and tabs when initial tokenization occurs.
Also break whitespace into its own token just like tabs.
2012-10-18 11:33:19 -07:00
Corey Johnson
4478bbca9a When project.showInvisibles is true; spaces, tabs and newlines are visible 2012-10-18 11:31:39 -07:00
Corey Johnson
e2a917fcf3 Change tabText to tabLength 2012-10-18 11:31:39 -07:00
Chris Wanstrath
fa10a8e6ac use the local selection instance 2012-10-08 20:13:16 -07:00
Chris Wanstrath
f5f18abbf0 ctrl-t: transpose 2012-10-08 20:08:07 -07:00
Kevin Sawicki
b18627ab9b Add delete line support bound to meta-d key 2012-09-19 15:23:10 -07:00
Kevin Sawicki
9ba3b74a9d Add support for Page Up and Page Down keys 2012-09-18 19:53:23 -07:00
Nathan Sobo
7937380eed Projects w/ EditSessions for now-deleted files can now be reloaded w/out error 2012-09-18 13:30:16 -06:00
Nathan Sobo
c3e748a17c WIP: Use rake to start compiling resources (like require.coffee) 2012-08-26 16:29:46 -05:00
Nathan Sobo
c2c8724ad0 Initial commit 2012-08-10 13:32:19 -06:00
Corey Johnson
65d40557ff InsertText takes an option to turn autoIndent off 2012-08-09 16:20:45 -07:00
Corey Johnson
9e53751717 Revert "Add setTextInBufferRange to edit session"
This reverts commit ea86ec401b.
2012-08-09 13:25:53 -07:00
Corey Johnson & Nathan Sobo
e8aaec43f7 WIP: Reworking auto-indent/outdent logic 2012-08-09 12:57:47 -06:00
Corey Johnson
ea86ec401b Add setTextInBufferRange to edit session 2012-08-09 10:33:25 -07:00
Corey Johnson & Nathan Sobo
7fe6a05594 Folding no longer relies on Ace.
Indentation is used to determine foldable regions, if the last line matches TextMate's foldEndRegex it is included in the foldable region.
2012-08-08 17:42:11 -07:00
Corey Johnson & Nathan Sobo
1a243adfcf All specs pass w/ TextMateGrammar for tokenization (auto-indent disabled) 2012-08-03 12:00:05 -06:00
Corey Johnson
08a55dfcac wip: IndentationForRow almost works TextMate preferences 2012-08-02 17:02:17 -07:00
Corey Johnson & Nathan Sobo
a589557aaa Ignore bracket matching when there are multiple cursors 2012-08-01 09:47:12 -07:00
Corey Johnson & Nathan Sobo
3a5e73aa77 Merge branch 'making-folding-better' 2012-07-30 13:43:47 -07:00
Corey Johnson & Nathan Sobo
f7614c210a Add unfold-all and bind it to ctrl-} 2012-07-30 12:11:54 -07:00
Corey Johnson & Nathan Sobo
9622d6f9b3 Rename un/foldScopeContainingBufferRow to un/foldBufferRow.
Scope containing buffer row was a misnomer. Waiting until I implement the repeat folding feature before considering a better name.
2012-07-30 10:25:53 -07:00
Corey Johnson & Nathan Sobo
75f0438f6a Rename fold/unfold to foldCurrentRow/unfoldCurrentRow 2012-07-30 09:58:15 -07:00
Corey Johnson
7ff31d1ad7 Remove toggleFold and replace with fold 2012-07-27 13:46:50 -07:00
Corey Johnson
76ffa5a2c5 change toggle-fold to fold 2012-07-27 13:45:13 -07:00
Nathan Sobo
3516dea210 Introduce LanguageMode wrapper for Ace modes as a foundation of our own modes
LanguageMode is the central point for all language-specific behavior associated with an EditSession. There is one LanguageMode instance per EditSession. LanguageMode has access to the EditSession and its TokenizedBuffer, and in reverse the EditSession, DisplayBuffer, and TokenizedBuffer also make use of LanguageMode. This is a bit incestuous, but I think it's okay because you can think of LanguageMode as a swappable strategy object that governs language-specific aspects of that constellation of objects.
2012-07-27 12:30:06 -06:00
Corey Johnson
42299c6a71 When the active edit session is modified, and its file is then modified by the file system, it displays an alert. 2012-07-26 10:59:58 -07:00
Nathan Sobo
54616aee78 Bugfix: When the command panel makes a selection, it destroys surrounding folds 2012-07-26 10:09:28 -06:00
Corey Johnson & Nathan Sobo
d36873f702 Rename Project.open to Project.buildEditSessionForPath 2012-07-18 11:20:13 -07:00
Corey Johnson & Nathan Sobo
c3fe9aa0b3 Implement refcounting scheme on Buffer 2012-07-17 14:24:33 -06:00
Nathan Sobo
1d21de1e83 Merge cursors after buffer changes that didn't occur via the EditSession
The buffer now emits a new event 'update-anchors-after-change' to signal that all the anchors have been updated, which is an appropriate time to merge cursors.
2012-07-17 10:38:01 -06:00
Nathan Sobo
512c1bfdb9 Merge branch 'master' into global-find 2012-07-16 14:56:24 -06:00
Corey Johnson
ac04a8ed66 Allow additional indentation after line has been auto-indented 2012-07-16 10:55:44 -07:00
Corey Johnson
95c3ea1b74 Rename insert tab event to indent 2012-07-16 10:34:02 -07:00
Corey Johnson
5184b90365 Hitting tab on a line (containing only whitespace) will auto indent the line and set the cursor to the end 2012-07-16 10:25:28 -07:00
Nathan Sobo
1ac6581f33 EditSession.setSelectedBufferRanges recycles selection instances
This prevents changing the scroll position when it isn't necessary.
2012-07-15 17:32:30 -06:00
Nathan Sobo
075968e42c Associate compiled operations with anchor ranges. All tests pass again.
This allows them to update their target range in the face of upstream changes.
2012-07-13 19:46:08 -06:00
Corey Johnson & Nathan Sobo
fd24b82d47 WIP: Converting to operations, but substitution operations need anchor ranges 2012-07-13 18:30:10 -06:00
Corey Johnson & Nathan Sobo
926067164d Buffer updates anchors when it changes instead of EditSession 2012-07-13 17:42:41 -06:00
Corey Johnson & Nathan Sobo
9eae88e97b Anchors and AnchorRanges are added to the buffer.
Also: Destroying an AnchorRange removes it from the EditSession / Buffer.
2012-07-13 17:18:10 -06:00
Corey Johnson
b9d4270693 Merge branch 'master' into global-find 2012-07-13 09:36:21 -07:00
Corey Johnson
23b42faa1d Added EditSession.copy()
Also, EditSession only needs a project to be deserialized
2012-07-13 09:35:19 -07:00
Nathan Sobo
a4db677979 Implement setSelectedBufferRange w/ setSelectedBufferRanges
Also add the preserveFolds option, which doesn't destroy folds containing the selected ranges – mainly for specs right now
2012-07-12 18:57:12 -06:00
Nathan Sobo
f99146b42f EditSession.setSelectedBufferRanges destroys folds
It also clears all existing selections and makes new ones.
2012-07-12 18:40:34 -06:00
Nathan Sobo
61cfbe530b Fix indentation of selected region with tab 2012-07-06 15:18:32 -06:00
Corey Johnson & Nathan Sobo
9f9c636883 When snippet expansion is undone, the snippet is destroyed
This is still in progress. You can't *redo* snippet expansion and restore tab stops. Also, this commit performs all changes associated with snippet expansion in a transaction.
2012-07-06 12:10:14 -06:00
Corey Johnson & Nathan Sobo
6177b46cf9 Restore selection on active edit session when undoing/redoing
The `do`, `undo`, and `redo` methods on operations take an optional editSession argument, which can be used to determine the context in which they are being run. We restore selections on that edit session instead of the session where the operations originally occurred.
2012-07-06 11:42:07 -06:00