Commit Graph

258 Commits

Author SHA1 Message Date
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
b33bbbfc0d Handle invisible character rendering when building HTML for lines.
Not during creation of tokens.
2012-10-18 11:43:17 -07:00
Corey Johnson
c9db576a1c Fix specs 2012-10-18 11:33:19 -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
Corey Johnson
6171ea33e1 Add support for TextMate grammars with newlines in their regexes 2012-10-16 15:58:11 -07:00
Kevin Sawicki
38802ba287 Use javscript.tmbundle commit 2f95d9ae92
The commit after this one breaks syntax highlighting
for the lines after a single line comment
2012-10-12 11:34:44 -07:00
Kevin Sawicki
2aa3667586 Update expected var selector to storage.modifier.js
This changed in the underlying JavaScript bundle
2012-10-09 17:49:53 -07:00
Kevin Sawicki
1694f74bcb Expect var to be a storage.modifier.js type in spec 2012-10-09 17:46:26 -07:00
Nathan Sobo
9906dd41b4 Give editor-specific events the "editor:" prefix 2012-10-05 10:07:37 -10:00
Kevin Sawicki
b7f32036c2 Change editor-selection-change event name to selection-change 2012-10-01 15:44:58 -07:00
Kevin Sawicki
edfd61c702 Remove unneeded class addition 2012-10-01 15:44:58 -07:00
Kevin Sawicki
41cdf130fb Update highlighted line when editor selection changes 2012-10-01 15:44:58 -07:00
Kevin Sawicki
c7361d487f Update cursor line when selection screen range changes 2012-10-01 15:44:58 -07:00
Kevin Sawicki
2bea67057b Add spec for line highlight after backspace 2012-10-01 15:44:58 -07:00
Kevin Sawicki
f2306f444a 💄 2012-10-01 15:44:58 -07:00
Corey Johnson
887720e4de [fail] added failing gutter spec
When you remove a newline with backspace, the background on the gutter line number isn't highlighted. This is to help @kevinsawicki debug the problem.
2012-10-01 15:44:58 -07:00
Corey Johnson
9361b0717c Give gutter line highlighting its own describe 2012-10-01 15:44:58 -07:00
Kevin Sawicki
e039dab0f6 Don't highlight line in mini editor 2012-10-01 15:44:57 -07:00
Kevin Sawicki
a03512fd90 Add line number padding to expected width 2012-10-01 15:44:57 -07:00
Kevin Sawicki
a4ad5829a5 Disable gutter background highlight on multiline selections 2012-10-01 15:44:57 -07:00
Kevin Sawicki
33abaff747 Don't highlight line if selection is multiline 2012-10-01 15:44:57 -07:00
Kevin Sawicki
12a30873cf 💄 2012-10-01 15:44:57 -07:00
Kevin Sawicki
d69e08a858 Use screen rows for line highlight 2012-10-01 15:44:57 -07:00
Corey Johnson & Kevin Sawicki
e15694bb41 No longer cache cursorScreenRow in gutter highlighting 2012-10-01 15:44:57 -07:00
Corey Johnson & Kevin Sawicki
2863d92ce3 Use screen position for gutter highlighting 2012-10-01 15:44:57 -07:00
Nathan Sobo
3a8fe2b24e Spans have a class for each dot-separated portion of their token's scope
Previously, we were rendering every prefix of the dot-separated scope as its own class. So the scope meta.delimiter.method.period.coffee would make a token w/ classes:

class="meta, meta-delimiter, meta-delimiter-method, meta-delimiter-method-period…"

Now we just give the token each piece of the scope as a class:

class="meta delimiter method period coffee"

We lose a bit of meaning, in that a scope selector method.period.coffee would match this element in CSS even though it *wouldn't* in TextMate. But we also gain the behavior where longer prefixes are more specific by naturally producing more specific css selectors. So '.meta.delimiter.method' is always more specific than '.meta.delimiter', whereas '.meta-delimiter-method' ties with '.meta-delimiter'. 

If prefix ambiguities become a problem later we may need to revisit this approach, but I think it's good enough for now.
2012-09-28 17:00:31 -06:00
Nathan Sobo
3ebd7cfef1 Output nested spans so that scope selector specificity translates better to CSS
The tokenizer emits individual tokens with arrays of scopes, rather than a more tree-like structure. It's debatable whether we want to emit scope trees rather than token streams in general, though that might complicate things like line wrapping. For now, we're reconstructing the tree during rendering based on information that's implicit in the tokens.
2012-09-28 13:36:43 -06:00
Corey Johnson & Nathan Sobo
bebfaed69b wip: creating token spans 2012-09-28 13:36:43 -06:00
Kevin Sawicki
02fa815459 Highlight the line number of the current cursor row 2012-09-28 09:52:34 -07:00
Corey Johnson
f95e67d8cd Triple click selects entire line (including \n). Fixes #44 2012-09-26 13:53:51 -07:00
Nathan Sobo
5f253d78e9 Optimization: Use absolute positioning instead of flexbox in editor
Flexbox was causing layouts and repaints to cover the entire scroll view instead of just the edited line. This cuts down on DOM manipulation cost significantly.
2012-09-25 14:58:31 -06:00
Kevin Sawicki
47ed19f851 Substract scroll top when paging up 2012-09-19 08:52:05 -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
Corey Johnson
fb039276de un-f 2012-09-04 10:52:34 -07:00
Corey Johnson
3b9310ebe4 Gutter width is sized to fit the width of the largest line number 2012-08-31 13:33:59 -07:00
Corey Johnson & Nathan Sobo
44db540528 All specs pass 2012-08-30 17:12:52 -06:00
Corey Johnson & Nathan Sobo
b073f3e2b1 Make some assertions fuzzy to deal with sub-pixel issues. Not totally there yet 2012-08-30 16:13:13 -06:00
Nathan Sobo
d5ffdb153a Remove $native.saveDialog. It's replaced with atom.showSaveDialog 2012-08-30 11:08:55 -06:00
Nathan Sobo
558ffd9cbe Spy on atom.confirm instead of $native.alert in specs 2012-08-29 20:50:47 -05: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 & Nathan Sobo
1a243adfcf All specs pass w/ TextMateGrammar for tokenization (auto-indent disabled) 2012-08-03 12:00:05 -06:00
Nathan Sobo
6de055aa1c Lines aren't taller when they contain an Inconsolata em dash (–) character 2012-08-01 17:04:33 -06: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
20ff70115f Fix bug in failing editor spec 2012-07-27 11:11:45 -07:00