Nathan Sobo
a1ae819908
Only tokenize in background if when a buffer is visible in an editor
...
This will prevent running a bunch of background tokenization when Atom is reloaded. We only perform tokenization to support content that is actually on screen.
2012-11-23 12:41:08 -07:00
Nathan Sobo
5aba8596a9
Make tokenization synchronous in all specs
...
Disabled some specs that need to make it asynchronous again… will deal with those soon.
2012-11-21 08:22:13 -07:00
Corey Johnson & Nathan Sobo
e52dbb682e
WIP: Perform tokenization in chunks when edit session is shown
2012-11-19 16:50:49 -07:00
Nathan Sobo
a441ddec7c
Make TokenizedBuffer emit row-oriented change events
2012-11-16 08:57:59 -07:00
Nathan Sobo
f7b1f0521a
Emit row-oriented events from DisplayBuffer
2012-11-16 07:36:36 -07:00
Nathan Sobo
ea2e025400
Simplify DisplayBuffer's change event handling
2012-11-16 07:36:35 -07:00
Nathan Sobo
c68d5fac7d
Attach precipitating bufferChange to DisplayBuffer change events
...
The gutter can use this to determine if the change might have altered line numbers, for example if it's inside a fold.
2012-11-14 13:07:42 -07:00
Corey Johnson & Nathan Sobo
b8beec6f55
Remove foldable from ScreenLine
2012-11-06 11:41:48 -08:00
Corey Johnson & Nathan Sobo
139f5d0b50
EditSession.setTabLength assigns tabLength on the TokenizedBuffer.
2012-11-06 11:35:13 -08:00
Corey Johnson & Nathan Sobo
dacb5f063f
Remove unused references to stateForScreenRow
2012-11-06 11:13:42 -08:00
Corey Johnson & Nathan Sobo
874af0f2bc
Eliminate reference to TokenizedBuffer on EditSession
2012-11-06 11:09:38 -08:00
Corey Johnson & Nathan Sobo
10090219cb
TokenizedBuffer change events reference the precipitating Buffer change event.
2012-11-06 10:56:05 -08:00
Nathan Sobo
1d838e920c
Cache the maxScreenLineLength
...
Computing this requires a full scan of all screen lines. Here I keep it updated as I add / remove lines. If I remove the line with the max length, I am forced to scan all of them again. But this happens relatively rarely. Usually I only need to scan the lines I'm replacing and inserting.
2012-11-01 17:37:50 -06:00
Nathan Sobo
3d12269315
DisplayBuffer specs passing with greatly simplified LineMap
2012-11-01 07:15:51 -06:00
Corey Johnson
e2a917fcf3
Change tabText to tabLength
2012-10-18 11:31:39 -07: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 & 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
0a97cb0590
Tokenized buffer uses TextMate grammar
2012-08-02 10:05:09 -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
a7db67e68d
When DisplayBuffer.foldBufferRow is called with a buffer row that is within a fold, it folds the scope that incloses the buffer row's fold
2012-07-30 11:46:43 -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
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
Nathan Sobo
95622dc64e
If the cursor is at any buffer position inside a fold, backspace deletes the folded text
2012-06-15 14:41:05 -06:00
Corey Johnson & Nathan Sobo
1dfbaf67d1
Delete at the end of a line above a fold deletes the folded lines (leaving a newline)
2012-06-14 16:58:47 -06:00
Corey Johnson & Nathan Sobo
daa688b1e1
Merge branch 'master' of github.com:github/atom
...
Conflicts:
src/app/edit-session.coffee
2012-06-14 16:25:05 -06:00
Corey Johnson & Nathan Sobo
f025bec910
If a selection ends on a fold, backspace/delete delete all lines inside the fold
2012-06-14 15:52:54 -06:00
Corey Johnson & Nathan Sobo
8416dc3598
DisplayBuffer.destroyFoldsContainingBufferRow destroys all folds containing buffer row (instead of just folds starting at buffer row)
2012-06-14 13:56:08 -07:00
Corey Johnson & Nathan Sobo
291886b4b3
Rename LanguageMode to TokenizedBuffer
2012-06-14 11:02:52 -06:00
Nathan Sobo
b59e73edcd
Rename Renderer -> DisplayBuffer
...
The idea is that the DisplayBuffer serves a similar role to the Buffer, except that it's holding content in an arrangement that's optimized for display.
2012-06-13 21:02:30 -06:00