Commit Graph

2488 Commits

Author SHA1 Message Date
probablycorey
992f520698 Normalize pasted text when there is an indent basis 2013-05-13 14:28:16 -07:00
probablycorey
93b1ce53c0 Rename autoDecreaseIndentForRow to autoDecreaseIndentForBufferRow 2013-05-13 14:28:15 -07:00
probablycorey
e70d6d1f8f Remove unused method autoIncreaseIndentForBufferRow 2013-05-13 14:28:15 -07:00
probablycorey
c34db290e4 Only indent the line following a '\n' not the line preceding it 2013-05-13 14:28:15 -07:00
probablycorey
1f025817f1 Rename autoIndentNewlines to autoIndentNewline 2013-05-13 14:28:15 -07:00
probablycorey
c03d44da00 Add autoIndentNewline and autoDecreaseIndent options to insertText
insertText now takes these options:
* autoIndent will auto indent all inserted text based
* autoIndentNewline will indent a line when a '\n' is inserted
* autoDecreaseIndent will decrease the indent if the line matches a 
decreaseIndent pattern (such as a `}` in javavascript)
2013-05-13 14:28:15 -07:00
probablycorey
537c507efe Use suggested indent when auto indenting a buffer row 2013-05-13 14:28:15 -07:00
probablycorey
0fbd08f1ab Allow suggested indent level to be less than the current indent level 2013-05-13 14:28:15 -07:00
probablycorey
0f469a3269 Add Range.getRows 2013-05-13 14:28:15 -07:00
probablycorey
7f0b2c54f3 editor.autoIndentOnPaste will auto indent every pasted line
I've removed normalizeLines and its tests. They will be added back in
a later commit.
2013-05-13 14:28:14 -07:00
probablycorey
e9fd61a1ea Remove unused indent methods from Selection 2013-05-13 14:28:14 -07:00
probablycorey
33c95d1a58 Rename insideExistingLine to isCursorInsideExistingLine 2013-05-13 14:28:14 -07:00
probablycorey
c5aa670569 Document methods as internal 2013-05-13 14:28:14 -07:00
Nathan Sobo
49cf92c2a2 Fix perf regression: Don't update line numbers for single line changes 2013-05-10 19:39:33 -06:00
Nathan Sobo
b4dec8ccbb In Editor.updateRenderedLines, cap renderFrom to the last screen row
If we remove a large number of screen lines when we are scrolled down,
the current @firstRenderedScreenRow may end up being larger than the
number of screen rows we now have. Setting renderFrom to the
@firstRenderedScreenRow in this case was causing the renderFrom to be
larger than the renderTo, which was causing problems downstream with
the new mapping code.
2013-05-10 13:20:43 -06:00
Nathan Sobo
7d28edc116 Rename ScreenLine -> TokenizedLine
Now that ScreenLines don't contain the bufferRows property, which was
essential to the functioning of the LineMap, they're just containers
for tokens. Since they're stored in the TokenizedBuffer in a form that
doesn't necessarily match what ends up on screen, it makes more sense
to call them tokenized lines. A tokenized line is a screen line if it's
in the `.screenLines` array of the DisplayBuffer, but "screenness" is
not an inherent property, so it shouldn't be in the name of the class.
2013-05-10 13:20:43 -06:00
Nathan Sobo
4d314f99ac Eliminate ScreenLine.bufferRows property
Previously, we used bufferRows to determine how many buffer rows were
spanned by the screen line in the event it was folded. Now that we have
RowMap, screen lines don't need to serve this purpose. We still need
to know if a screen line is wrapped, which we solve via setting the
lineEnd property to null for a soft-wrapped screen line.
2013-05-10 13:20:43 -06:00
Nathan Sobo
1d146640e5 Break some methods out of DisplayBuffer.updateScreenLines 2013-05-10 13:20:43 -06:00
Nathan Sobo
b4c95d4fc9 Merge adjacent isomorphic regions after adding new regions 2013-05-10 13:20:42 -06:00
Nathan Sobo
d9c258f27e Handle new regions overlapping screen wise but not buffer wise 2013-05-10 13:20:42 -06:00
Nathan Sobo
8b149ff827 Delete LineMap 2013-05-10 13:20:42 -06:00
Nathan Sobo
f3145e671a Declare screenLines ivar in DisplayBuffer 2013-05-10 13:20:42 -06:00
Nathan Sobo
d3cb001d65 Use RowMap instead of LineMap in DisplayBuffer 2013-05-10 13:20:42 -06:00
Nathan Sobo
16da9b0506 Document RowMap 2013-05-10 13:20:42 -06:00
Nathan Sobo
d7914d2c54 Ensure row map applies negative deltas only after the given start row 2013-05-10 13:20:42 -06:00
Nathan Sobo
9849c62d80 Properly handle regions that straddle existing regions
When we're creating folds that contain other folds, we'll need the
region based on the new fold's row mapping to overwrite the regions
from the old folds. This commit ensures that the new region cleanly
slots in, replacing any regions it completely contains and splitting
regions that it only partially overlaps.
2013-05-10 13:20:42 -06:00
Nathan Sobo
3c630fb7f4 Rename mapping -> region within RowMap 2013-05-10 13:20:42 -06:00
Nathan Sobo
55f0b6a1f8 Replace existing regions when inserting a mapping that surrounds them 2013-05-10 13:20:42 -06:00
Nathan Sobo
1b21fdda3b Don't throw errors when applying screen deltas after the last mapping 2013-05-10 13:20:41 -06:00
Nathan Sobo
c17d6ba487 Adjust multiple mappings if needed when applying screen deltas
If there are multiple mappings following the start row of the delta
that span fewer screen rows than the delta, we collapse mappings to 0
screen rows until we have removed the number of rows specified by the
delta.

Expanding positive deltas expands the first mapping following the
start row as it did previously.
2013-05-10 13:20:41 -06:00
Nathan Sobo
c6ff7e8934 Inserting a mapping within an existing mapping preserves its shape
Inserting a mapping should never change the position of any existing
mappings on screen or in the buffer. It's simply a statement about a
range of rows in the buffer mapping to a range of existing rows on
screen, but shouldn't add or remove any rows. Adding and removing rows
on screen or in the buffer is the job of the applyBufferDelta and
applyScreenDelta methods.
2013-05-10 13:20:41 -06:00
Nathan Sobo
1895e8143d Allow the screen row count of N-screen:1-buffer mappings to be updated 2013-05-10 13:20:41 -06:00
Nathan Sobo
2f900e11ed Add RowMap.bufferRowRangeForScreenRow 2013-05-10 13:20:41 -06:00
Nathan Sobo
1123ca4bc1 Helpful comments 2013-05-10 13:20:41 -06:00
Nathan Sobo
4973c2afc6 Don't return a mapping from traverseToBufferRow if we fall off the end 2013-05-10 13:20:41 -06:00
Nathan Sobo
502e3ceb3b Factor mapping traversal its own traverseToBufferRow method 2013-05-10 13:20:41 -06:00
Nathan Sobo
32b40fe1ad Eliminate dummy implementation of bufferRowRangeForScreenRow 2013-05-10 13:20:41 -06:00
Nathan Sobo
9a12b170f6 Allow insertion of multiple buffer row range mappings 2013-05-10 13:20:41 -06:00
Nathan Sobo
9f4b594bd0 Start on RowMap 2013-05-10 13:20:41 -06:00
Kevin Sawicki
827bab90bf Add tokenizeLines to null grammar 2013-05-10 12:09:58 -07:00
Kevin Sawicki
c3759feaa0 Show number of paths loaded after indexing message 2013-05-07 08:56:06 -07:00
Kevin Sawicki
81462d9050 Hide/show entire loading area instead of only message 2013-05-06 16:53:34 -07:00
Kevin Sawicki
919bdca8f4 Style select list loading area similar to command panel 2013-05-06 16:34:39 -07:00
Nathan Sobo
b4206d3202 Merge branch 'master' into know-when-to-foldem
Conflicts:
	src/app/edit-session.coffee
2013-05-06 08:35:13 -06:00
Nathan Sobo
e8e0d5dd02 Fix regression: folds can be destroyed by clicking them 2013-05-06 08:27:43 -06:00
Nathan Sobo
3e937e9811 Merge remote-tracking branch 'origin/master' into know-when-to-foldem
Conflicts:
	src/app/buffer-marker.coffee
	src/app/cursor.coffee
	src/app/display-buffer-marker.coffee
	src/app/display-buffer.coffee
	src/app/edit-session.coffee
	src/app/fold.coffee
	src/app/line-map.coffee
	src/app/range.coffee
	src/app/selection.coffee
	src/app/text-buffer.coffee
2013-05-03 18:29:52 -06:00
Garen Torikian & Nathan Sobo
839f0b642c Merge Kevin's fix for empty line invisibles with the reshuffling of buildLineHtml methods to be on the class level 2013-05-03 16:57:42 -07:00
Garen Torikian & Nathan Sobo
f4d7586034 Refactor syntax highlighting of Markdown pre blocks
Extract out editor-colors class to apply background and default text color
Remove pre background coloring from Markdown preview stylesheet
2013-05-03 16:57:42 -07:00
Garen Torikian
95e14486af Fix specs for testing highlighted lines 2013-05-03 16:57:42 -07:00
Garen Torikian
cf239ccac0 Implement highlighting of Markdown pre blocks 2013-05-03 16:57:41 -07:00