Commit Graph

102 Commits

Author SHA1 Message Date
Nathan Sobo
192e7c6b63 Handle direct focus of hidden input and avoid redundant focus renders 2017-05-05 09:29:27 +02:00
Nathan Sobo
ec045d9333 Gracefully handle focus events that occur before the attachedCallback 2017-05-05 09:29:27 +02:00
Nathan Sobo
ff2f9b192a Implement vertical autoscroll; still need tests 2017-05-05 09:29:27 +02:00
Nathan Sobo
c52d66377f Render hidden input and handle focus and blur 2017-05-05 09:29:27 +02:00
Nathan Sobo
b362f746f8 Fix spurious selections marker layer update to avoid extra render 2017-05-05 09:29:27 +02:00
Nathan Sobo
be7f4a5ffd Add workaround in test, but we need to make MarkerLayer updates sync 2017-05-05 09:29:27 +02:00
Nathan Sobo
d780b15248 Add cursor rendering tests 2017-05-05 09:29:27 +02:00
Nathan Sobo
583c2c537d Iron out scheduling issues
* Ensure multiple calls to scheduleUpdate only result in a single call
to updateSync in the future.
* Explicit calls to update sync after scheduling an update fulfill the
scheduled update.
* Track whether we think the editor is visible or not to avoid redundant
didShow calls.
* Ensure we only update on resize events if the editor actually changed
size.
2017-05-05 09:29:27 +02:00
Nathan Sobo
19d1d148eb Measure the longest visible screen line on initial render 2017-05-05 09:29:27 +02:00
Nathan Sobo
ede5d5e5f4 Add coverage for gutter measurement and horizontal translation on scroll 2017-05-05 09:29:27 +02:00
Nathan Sobo
b863790390 Start on new TextEditorComponent specs; avoid excessive line numbers 2017-05-05 09:29:27 +02:00
Nathan Sobo
a0c84d592a Remove ViewRegistry.pollDocument
Supporting it via mutation observers has a bad impact on frame rate.
2017-05-03 14:21:24 +02:00
Dietmar Schabus
2c6b7973f9 adding spec pinpointing atom:atom#8648 which now passes 2017-03-26 19:44:43 +02:00
Nathan Sobo
28508d9a3f Make decorationsForScreenRowRange return all decorations
Even if they are for markers that aren't on the default marker layer
2017-02-14 11:44:38 -07:00
Andres Suarez
1ee9d7b0f9 Add showCursorOnSelection config 2017-01-20 08:53:28 -05:00
Christopher Chedeau
ef7ce7cd3a Always reserve two digits on the line number gutter
We are working on a feature that changes the content of the editor when you mouse over some things and it makes the UI jump when going from 1 line to > 10. This makes the UI feel really bad.

I've looked at Sublime and the 1-9 state is the same as 1-99, only when you reach 100 lines then it jumps. I think that it is a better behavior as you want to minimize jumps as much as possible and it is extremely likely that you are going to hit the 9-10 lines threshold.

![](http://g.recordit.co/ABIlZf5eTx.gif)

While this is being reviewed and until the new version shipped, we are going to monkeypatch Atom in order to get this feature.

```js
var presenter = atom.textEditors.editors.entries().next().value[0].presenter.__proto__;
var old_updateLineNumberGutterState = presenter.updateLineNumberGutterState;
presenter.updateLineNumberGutterState = function() {
  var res = old_updateLineNumberGutterState.apply(this, arguments);
  this.lineNumberGutter.maxLineNumberDigits = Math.max(2, this.lineNumberGutter.maxLineNumberDigits);
  return res;
};
```

Released under CC0
2017-01-10 18:14:50 -08:00
Max Brunsfeld
d7b86d9187 Merge remote-tracking branch 'origin/master' into mb-ns-integrate-new-display-layer 2016-12-14 12:16:50 -08:00
Max Brunsfeld
8afeae46b4 Adjust assertion now that paired characters aren't wrapped in spans
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-12-13 17:29:36 -08:00
Max Brunsfeld
4f7b9e03c8 Expect a single leading whitespace token w/ atomic soft tabs & indent guides disabled
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-12-13 17:28:54 -08:00
Damien Guard
e89c5efa9d Text editor measures diff in one test on win32 2016-11-29 16:55:14 -08:00
Antonio Scandurra
83f3c296f3 Add test for clicking an SVG element 2016-11-24 10:12:39 +01:00
Antonio Scandurra
4df74beba7 Merge branch 'master' into as-deprecate-shadow-dom 2016-10-17 12:06:00 +02:00
Antonio Scandurra
3d2e18747f Prefer using new TextEditor to Workspace.prototype.buildTextEditor 2016-10-10 09:28:36 +02:00
Antonio Scandurra
91df848b8a Keep a backward compatible DOM structure for atom-text-editor contents 2016-10-07 10:40:41 +02:00
Antonio Scandurra
9c5bddaa69 Reimplement block decorations without the shadow DOM 2016-10-07 10:40:41 +02:00
Antonio Scandurra
b71b412ede Transform deprecated shadow DOM selectors 2016-10-07 10:40:41 +02:00
Antonio Scandurra
56a6510b25 Start on removing shadow DOM 2016-10-07 10:40:41 +02:00
Nathan Sobo
f723bccc29 Add test coverage for deprecated implicit disabling of autoHeight 2016-08-18 14:03:44 -06:00
Nathan Sobo
9f8f03b10f Add test coverage for TextEditor autoHeight 2016-08-18 13:45:00 -06:00
Nathan Sobo
106621e161 Deprecate automatic assignment of autoHeight for text editors
Previously, we attempted to automatically determine whether the editor’s
height should be based on the editor’s content or the height of its
container. Unfortunately, DOM APIs are insufficient to make this
determination in a complete way, leading to unpredictable behavior.

This PR deprecates the automatic determination of this behavior. By
default, editors base their height on their content. If an editor has
an explicit height assigned via its style or is positioned absolute with
an explicit top and bottom, we disable the content-based autoHeight and
log a deprecation warning telling the user to assign autoHeight
explicitly.

This paves the way to add an autoWidth setting, which will default to
false.
2016-08-17 15:52:51 -06:00
Antonio Scandurra
3642292302 🔥 debugger 2016-08-17 18:05:58 +02:00
Antonio Scandurra
e8f2e3a608 Size TextEditorElement according to the autoWidth property 2016-08-17 16:20:00 +02:00
Max Brunsfeld
4b0183d074 Remove extraneous TextEditor setter methods 2016-08-15 16:45:10 -07:00
Max Brunsfeld
1c99c399d1 Merge branch 'master' into ns-mb-detangle-editor 2016-08-15 11:17:07 -07:00
Nathan Sobo
ebb03f022b Merge branch 'master' into ns-mock-animation-frames-in-editor-spec 2016-08-12 16:16:09 -06:00
Nathan Sobo
ced2174b5a Mock clock and animation frames in TextEditorComponent specs 2016-08-12 15:21:46 -06:00
Max Brunsfeld
a11a235ef1 Don't reset display layer twice in TextEditor constructor 2016-08-12 13:36:50 -07:00
Antonio Scandurra
87d684132c Extract timeoutPromise into async-spec-helpers
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-08-12 17:46:12 +02:00
Antonio Scandurra
82f0003302 Extract conditionPromise into async-spec-helpers
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-08-12 17:46:11 +02:00
Max Brunsfeld
684952458f Remove new TextEditor setters; just use update 2016-08-11 15:34:54 -07:00
Max Brunsfeld
5d83874725 Merge branch 'master' into ns-mb-detangle-editor 2016-08-08 15:39:24 -07:00
Yuya Tanaka
1ce2f6ce87 🐛 Fix window size is not updated on resize 2016-08-05 11:56:01 +09:00
Nathan Sobo
43caead392 Avoid test failure due to timing
Signed-off-by: Antonio Scandurra <as-cii@github.com>
Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com>
2016-07-28 17:34:57 -06:00
Max Brunsfeld
63a730253b Don't use config for scrollSensitivity in TextEditorComponent
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-07-27 15:35:56 -07:00
Max Brunsfeld
1c38dce3b2 Don't use font config settings in TextEditorComponent
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-07-27 15:23:59 -07:00
Max Brunsfeld
3f8b6138dc Don't use config in TextEditorPresenter
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-07-27 14:56:36 -07:00
Max Brunsfeld
dfb48aa8da Get TextEditorComponent specs passing
Signed-off-by: Nathan Sobo <nathan@github.com>
2016-07-26 16:04:09 -07:00
Max Brunsfeld
5167dbca6f Move handling of undoGroupingInterval to TextEditorRegistry 2016-07-11 17:47:40 -07:00
Antonio Scandurra
57442781ec Fix bug when positioning cursors after the fold-marker 2016-04-28 13:31:28 +02:00
Antonio Scandurra
7ba9cc6329 Unfold all the folds intersecting the row when clicking fold indicators 2016-04-26 13:24:21 +02:00