Corey Johnson & Nathan Sobo
8184c0248b
Don't store tabLength on EditSession
2012-11-06 11:56:18 -08:00
Corey Johnson
b85a95eaa1
Make leading spaces atomic (length based on tabLength)
2012-11-06 09:03:54 -08:00
Nathan Sobo
b87d7cd0df
Auto-indent skips cursor over leading whitespace before inserting more
...
This preserves the user's intent to bring the line's total amount of leading whitespace to the desired indent level.
2012-11-05 15:15:00 -07:00
Corey Johnson & Nathan Sobo
5b7e96067a
moveCursorToBeginningOfWord works when preceded by a blank line
2012-10-30 12:05:46 -06:00
Corey Johnson & Nathan Sobo
46fc7f2375
Redefine word regex to consider sequences of non-word chars as words
...
This does *not* include newlines. Doing this makes it possible to double-click regions of whitespace to select them just as you can select a word. It also makes word movement bindings behave similarly to TextMate.
2012-10-30 11:56:05 -06:00
Corey Johnson & Nathan Sobo
8c7152a59b
Eliminate 'move-cursor-to-next-word' command
...
We have move-to-end-of-word and move-to-beginning-of-word, which is what we use for the current keybindings.
2012-10-30 11:56:05 -06:00
Nathan Sobo
aa20fbac6d
Ignore an empty last line when indenting/outdenting selected lines
...
This provides more intuitive behavior now that the cursor isn't visible when there's a selection.
2012-10-29 16:16:19 -06:00
Nathan Sobo
db3d788664
Toggle line comments ignores last row of selection if it ends at col 0
...
Now that the cursor is hidden at the end of a selection, it's counter-intuitive for the commenting to extend to the next line since there's no visual indicator that the cursor extends to that location.
2012-10-29 16:04:09 -06:00
Corey Johnson & Nathan Sobo
adf00b60f3
Detect softTabs/hardTabs when an EditSession is created
2012-10-26 12:20:14 -06:00
Corey Johnson & Nathan Sobo
4c24f4ea65
indentSelectedRows works with hard tabs
2012-10-26 11:15:55 -06:00
Corey Johnson & Nathan Sobo
0aa9f8de57
Indent works with hard tabs
2012-10-26 11:15:55 -06:00
Corey Johnson & Nathan Sobo
29351ee5fc
Move setIndentationForBufferRow and indentationForBufferRow to EditSession
2012-10-26 11:15:55 -06:00
Corey Johnson & Nathan Sobo
ef6c51dd32
💄
2012-10-25 15:56:18 -07:00
Corey Johnson & Nathan Sobo
1bb2531f31
Tab can auto-indent at the beginning of a line
2012-10-25 16:27:28 -06:00
Nathan Sobo
e53410b5fd
Add indentBasis metadata to pasteboard when copying text
...
This allows indent to be normalized properly even if the leading whitespace isn't copied from the first line.
2012-10-25 10:44:54 -06:00
Corey Johnson & Nathan Sobo
6f353fda62
Add indentBasis option to insertText
...
We will use this to normalize indentation on paste even when we didn't copy all the leading whitespace on the first line.
2012-10-24 18:29:09 -06:00
Nathan Sobo
ee09c20214
Merge branch 'master' into paste-indentation
2012-10-24 12:37:50 -06:00
Nathan Sobo
937caf8400
Un-F
2012-10-23 17:17:28 -06:00
Nathan Sobo
d1999b91ff
Base first line delta on the cursor column, not the existing line's indent
2012-10-23 16:30:38 -06:00
Nathan Sobo
839d57d819
Use existing line's indentation level if inserting normalized lines within it
...
If we're pasting multiple lines starting inside an already existing line, we never want to auto indent. We should just take its existing indentation level. Also, we strip the leading whitespace off the first line we're inserting, assuming it's already being represented by the indentation of the line we're onto which we're appending it.
2012-10-23 16:17:26 -06:00
Nathan Sobo
3b18c6a42d
With autoIndent disabled, don't use suggested first line indent when normalizing
...
Also, when some lines are *less* indented than the first line, it might not be possible to outdent them as far as they originally were relative to the first line, so we do as much as possible.
2012-10-23 14:27:26 -06:00
Nathan Sobo
7bd4e8801f
If inserting on a line that is longer than the suggested indent, preserve indent
2012-10-23 14:13:51 -06:00
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
Kevin Sawicki
ab8c22825c
Support outdenting when indent is < 1 tab length
2012-10-23 09:57:39 -07:00
Corey Johnson
e2a917fcf3
Change tabText to tabLength
2012-10-18 11:31:39 -07:00
Corey Johnson
a2f2e388d5
Test 💄
...
Instead of inserting text into an existing buffer, I replaced all text in the buffer to make the test easier to understand.
2012-10-09 11:02:39 -07:00
Chris Wanstrath
f5f18abbf0
ctrl-t: transpose
2012-10-08 20:08:07 -07:00
Kevin Sawicki
c30220ae80
Uncomment lines that match non-whitespace prefix of comment regex
2012-10-04 15:37:28 -07:00
Corey Johnson
f95e67d8cd
Triple click selects entire line (including \n). Fixes #44
2012-09-26 13:53:51 -07:00
Nathan Sobo
1383a94d60
Second attempt: don't blow up when commenting in files w/ no language bundle
2012-09-25 17:14:25 -06:00
Nathan Sobo
b4b34b0489
Don't explode on meta-/ if there isn't a valid comment regex
2012-09-25 13:27:46 -06:00
Nathan Sobo
b00d0bacd9
When uncommenting multiple lines, don't raise an error if a line isn't commented
...
Previously, we were assuming that when uncommenting, that every line would match the comment regex. But this might not be the case. If the first line in the selection is commented but some subsequent lines aren't, they won't match the comment regex. So this commit guards for that case.
2012-09-25 13:19:59 -06:00
Kevin Sawicki
7278bc62c6
Ensure start row is always >= 0
...
Previously if a file was a single line
it couldn't be deleted using the delete
line command because the start row would
index one row back which would be -1 and
therefore not be able to report a length
for use in the delete range.
2012-09-20 09:00:37 -07:00
Kevin Sawicki
f241bc5d2b
Delete entire region when deleting a folded line
2012-09-19 18:16:45 -07:00
Kevin Sawicki
b18627ab9b
Add delete line support bound to meta-d key
2012-09-19 15:23:10 -07:00
Corey Johnson & Nathan Sobo
12b06ddf0c
Get spec suite running (lots of failures)
2012-08-27 17:36:36 -05:00
Nathan Sobo
c2c8724ad0
Initial commit
2012-08-10 13:32:19 -06:00
Corey Johnson
634bebd207
Toggling comments adjusts selection's start and end columns
2012-08-09 14:38:16 -07:00
Corey Johnson
cc5ee48470
Auto-outdent lines correctly
2012-08-09 13:10:37 -07:00
Corey Johnson & Nathan Sobo
e8aaec43f7
WIP: Reworking auto-indent/outdent logic
2012-08-09 12:57:47 -06:00
Corey Johnson
19511fe8b8
Selections are restored to their original ranges after toggling comments.
2012-08-09 10:46:54 -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
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 & Nathan Sobo
d36873f702
Rename Project.open to Project.buildEditSessionForPath
2012-07-18 11:20:13 -07: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