Commits on May 5, 2017
-
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Support class property on overlay decorations
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Use spies instead of monkey patching
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add avoidOverflow: false option for overlays
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add static TextEditor.viewForOverlayItem method to avoid using global
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Use the atom.views scheduler in TextEditorComponent
This ensures smooth scheduling interactions with autocomplete-plus overlays so they measure their dimensions at the right time.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Factor editor component update into high-level phases
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Integrate properly with Atom scheduler
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Only update scrollTop/Left when they change
This avoids forcing a reflows in some circumnstances.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Associate gutters with their elements and support showing/hiding gutters
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
⬆️ etch to allow arbitrary objects as keys
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Adjust left position of scroll container when gutter container resizes
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
WIP: Render gutters before initial measurement
The shouldUpdate method is just returning true for now. We probably need to find a new approach to representing line number decorations that's easier to diff, perhaps a sparse array?
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Set the height of the line number gutter explicitly
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Store line, line number decorations in arrays and avoid slicing
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Cache subtrees to avoid duplicating work within a single frame
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Avoid using += with let variables to avoid let compound assigment deopt
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Blink cursors; still needs tests
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Implement a fast path for cursor blink to minimize battery impact
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add smoke test for cursor blink
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Correctly assign gutter container vnode
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Ensure nextUpdateOnlyBlinksCursor argument is
true
, not just truthyWe pass the bound scheduleUpdate method as an event handler to a variety of subscription methods, some of which supply arguments.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Add setInputEnabled and don't handle textInput if it is disabled
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Test and fix the
center
option to autoscrollNathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
WIP: Start on block decorations
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Use
LineTopIndex
to convert from/to rows to/from pixel positionsNathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add fast path when no block decorations need to be measured
Antonio Scandurra committedMay 5, 2017 -
Use
Array.push
instead ofarray[i] =
when adding line componentsAlbeit (potentially) slower, this will allow to add a dynamic number of block decoration nodes before and after a given line.
Antonio Scandurra committedMay 5, 2017 -
Render block decorations between lines
Antonio Scandurra committedMay 5, 2017 -
Test scrolling down with block decorations
Antonio Scandurra committedMay 5, 2017 -
Handle inserting and updating block decorations
Antonio Scandurra committedMay 5, 2017 -
Splice
LineTopIndex
when a textual change occursAntonio Scandurra committedMay 5, 2017 -
Don't use etch for lines rendering
Antonio Scandurra committedMay 5, 2017 -
Integrate block decorations in the custom lines rendering routine
Antonio Scandurra committedMay 5, 2017 -
Align line number nodes with line nodes
Antonio Scandurra committedMay 5, 2017 -
Add TextEditorElement.prototype.invalidateBlockDecorationDimensions
Antonio Scandurra committedMay 5, 2017 -
Hide cursors with non-empty selection if showCursorsOnSelection is false
Also, remove some barely used public APIs around cursor visibility that don't make much sense and are not ideal for performance. We don't want to subscribe to the visibility of each cursor.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Update line number gutter when invalidating a visible block decoration
When two or more decorations in the same tile were invalidated but the sum of their height didn't change, we were previously failing to recognize that the line numbers gutter needed to be re-rendered. With this commit, whenever a block decoration is visible and gets invalidated, we will force the line number gutter to always update.
Antonio Scandurra committedMay 5, 2017 -
Remeasure block decorations when editor width changes
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Re-measure and update rendered content when editor styles change
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Don't update editor component if we know we are not visible
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Don't re-measure if editor has become invisible
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Clear highlight nodes when recycling line tiles
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Include more properties in LinesTileComponent.shouldUpdate
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Remove highlight caching for now
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Slice lines and decorations passed to LinesTileComponent
This ensures the component's shouldUpdate method works correctly.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Don't count the dummy line in block decoration test
Antonio Scandurra committedMay 5, 2017 -
Fix bad syntax in src/initialize-benchmark-window.js
Antonio Scandurra committedMay 5, 2017 -
Import octicon-mixins in static/text-editor.less
Antonio Scandurra committedMay 5, 2017 -
Fix lint errors and delete dead code
Antonio Scandurra committedMay 5, 2017 -
Further optimize line replacement
Antonio Scandurra committedMay 5, 2017 -
Wait until the editor is focused before starting to type in smoke test
Antonio Scandurra committedMay 5, 2017 -
Update fake gutter container interface in gutter-spec.coffee
Antonio Scandurra committedMay 5, 2017 -
Stop calling
initialize
inViewRegistry
testsAntonio Scandurra committedMay 5, 2017 -
Don't reuse resize detectors across
TextEditorComponent
instancesDue to the way element-resize-detector schedules the delivering of resize events, this will ensure that creating an editor while the clock is mocked won't prevent subsequent tests using the real clock from getting such events.
Antonio Scandurra committedMay 5, 2017 -
Fix spec/text-editor-spec.coffee
Antonio Scandurra committedMay 5, 2017 -
Register style elements change events in AtomEnvironment.initialize
...and fix spec/workspace-element-spec.js
Antonio Scandurra committedMay 5, 2017 -
Create resize detector before calling etch.updateSync for the first time
Antonio Scandurra committedMay 5, 2017 -
Skip obsolete tests for now, but delete them later
Antonio Scandurra committedMay 5, 2017 -
Add data-grammar to editor element
Antonio Scandurra committedMay 5, 2017 -
Add data-encoding to editor element
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Add deprecated shadow root property to editor element
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Don't share block decoration/character measurement vnodes across inst…
…ances Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Position dummy line element absolutely and make it invisible
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Replace element-resize-detector with experimental ResizeObserver API
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Test clicking more locations outside of the lines
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Don't use position: relative on atom-text-editor
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Account for scrollbars and padding in autoHeight/Width mode
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Hide scrollbars in mini editors
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Fix clicking fold placeholders by ignoring pointer events on cursors div
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Give cursors at the end of lines the width of an 'x' character
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add has-selection class to editors with non-empty selections
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Delete obsolete code and tests related to text editor rendering
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Get TextEditorElement tests passing
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Set lineHeightInPixels on model for backward compatibility
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Replace getDefaultCharacterWidth with getBaseCharacterWidth
That's the language we use throughout the implementation now and a more accurate name for the concept.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Convert text-editor-element-spec to JS
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Use async/await in text-editor-element-spec
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add TextEditorElement.pixelPositionForScreen/BufferPosition
These methods require us to render off-screen lines in some circumstances in order to measure them, so this commit extends the rendering of the longest line to include arbitrary lines.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add deprecated rootElement property
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Round column measurements to nearest whole pixel
This preserves the expected behavior for positioning overlays, etc so that package tests keep passing.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Assign bufferRow property to line number nodes
I wish we didn't need this, but it's currently relied on by several packages including bookmarks.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Don't pane focus when pane model is destroyed
This avoids a non-failure error message when resetting the environment in some specs.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Honor the
updateSynchronously
parameterAntonio Scandurra committedMay 5, 2017 -
Disconnect resize observers in overlay components on editor detach
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Assign placeholder text on the model only when the attribute is present
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Disable ResizeObserver temporarily in resize callback to avoid warning
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Add keys to gutterContainer and scrollContainer to avoid recycling issue
Previously, when the gutter container was removed due to the editor becoming mini, the lack of keys caused the gutter to be updated with the recycled cursors vnode. But then we tried to remove the cursors vnode not realizing it had been moved and tore down all the references. We probably need to revisit whether it makes sense to recycle vnodes.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Delegate (get|set)(Height|Width) to element
Rather than storing these values on the editor model.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add back the measureDimensions method since some packages rely on it
Ideally, packages would resize and then wait for an update. But we set up an example of calling measureDimensions directly in find-and-replace so the easiest thing for now is just to keep this method around.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Delegate getFirst/LastVisibleScreenRow from model to component
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Delegate setFirstVisibleScreenRow from the model to the component
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Delegate get/setFirstVisibleScreenColumn from the model to the component
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Guard gitFirst/LastVisibleScreenRow
These methods are sometimes called by the model before the editor has been attached to the DOM.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Drop tests for set/getFirstVisibleScreenRow
These are now tested in text-editor-component-spec
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Return false from isLineCommentedAtBufferRow if no line yet exists
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Set updatedSynchronously to false in text-editor-element-spec
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Don't update synchronously in text-editor-element-spec
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add tests for TextEditorElement.setScrollTop/Left
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Use
position: relative
for.line-number
elements...because packages like `.git-diff` are relying on this behavior to position their decorations. This didn't seem to degrade layout times, so it makes sense to just add it to keep package breakage to a minimum.
Antonio Scandurra committedMay 5, 2017 -
Honor the gutter-hidden attribute correctly
Antonio Scandurra committedMay 5, 2017 -
Add better test coverage for the mini and placeholder-text attributes
Antonio Scandurra committedMay 5, 2017 -
Remeasure gutter dimensions when a gutter changes its visibility
Antonio Scandurra committedMay 5, 2017 -
Implement
TextEditor.prototype.getRowsPerPage
Antonio Scandurra committedMay 5, 2017 -
Restore editor scroll position across reloads
This commit introduces the concept of a scrollTopRow and scrollLeftColumn which is used to query and update the logical scroll position.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Fix pageUp/Down tests by using a real element
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Don't remove non accented character from history, improve test coverage
Unfortunately Chromium does not trigger a `compositionstart` before firing the text input event for the non accented character. Using `undo` to remove such character from the history is risky because it could be grouped with a previous change, thus making Atom undo too much. With this commit we simply keep the behavior master exhibits as of today. In the process of rewriting this code path, however, we fixed a bug that occurred when opening the accented character menu while holding another key, and improved test coverage as well by simulating the events the browser triggers.
Antonio Scandurra committedMay 5, 2017 -
Only enable cursor blink optimization when updateSync is using scheduler
This ensures that direct calls to updateSync from places like scroll handlers never take this optimization path.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Don't render decorations for invalidated markers
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Make process.platform easier to mock
Antonio Scandurra committedMay 5, 2017 -
Add middle mouse pasting on Linux
Antonio Scandurra committedMay 5, 2017 -
Fix cursor positioning around fold markers
Antonio Scandurra committedMay 5, 2017 -
Add data-screen-row to line nodes
Antonio Scandurra committedMay 5, 2017 -
Schedule update when setting scroll top row or scroll left column
Antonio Scandurra committedMay 5, 2017 -
These decorations allow the class and style of a cursor associated with any marker to be customized. /cc @t9md
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add TextEditorComponent.screenPositionForPixelPositionSync
This method can be used to translate a pixel position to a screen position even if the line is not currently rendered on screen.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Give line numbers the full width of the line number gutter
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Consolidate editor style sheets
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Use
Math.round
for positions that are at the end of a lineAntonio Scandurra committedMay 5, 2017 -
Schedule component updates directly from the model
The only event-based APIs we kept are for listening to changes in block decoration markers.
Antonio Scandurra committedMay 5, 2017 -
Antonio Scandurra committed
May 5, 2017 -
Update mock text editor in gutter-container-spec.coffee
Antonio Scandurra committedMay 5, 2017 -
Fix shift-scroll on Windows and Linux
Antonio Scandurra committedMay 5, 2017 -
Restore scrollbar positions correctly on reload
Antonio Scandurra committedMay 5, 2017 -
Add {get,set}FirstVisibleScreen{Row,Column} to TextEditorElement
Antonio Scandurra committedMay 5, 2017 -
Provide an
editorElement
shim on TextEditorSigned-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Add a
pixelPositionForMouseEvent
methodThis was a private method in the previous implementation that was used by some packages. Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Use
cursor:text
on atom-text-editor elementsSigned-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Don't remeasure scrollbars for mini editors
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Add highlight decoration classes to region elements as well
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Add highlights class for package compatibility
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add scrollbar classes in case any packages or themes target them
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Add missing methods on TextEditorElement
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add intersectsVisibleRowRange on TextEditorElement
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Add TextEditorElement.pixelRectRangeForScreenRange for compatibility
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
WIP: Start extracting gutter component
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Initialize all measurements to 0
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Pass props to GutterContainerComponent instead of reaching up to parent
There are still a few rootComponent references remaining in the LineNumberGutterComponent. These should be removed and instead we should consult this data when constructing the line numbers to render.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Eliminate caching of linesVnode
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Extract CursorsAndInputComponent
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Eliminate cached placeholderTextVnode
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Update gutter container only once per frame unless its width changes
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Update cursors only once per frame (after content has been measured)
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Update lines content only once per frame
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Cache derived dimensions during each phase of
updateSync
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Antonio Scandurra committed
May 5, 2017 -
Fix positioning for block decorations located at the beginning of a tile
Antonio Scandurra committedMay 5, 2017 -
Set autoHeight: true explicitly in benchmarks
Antonio Scandurra committedMay 5, 2017 -
Eliminate strictly contained divs wrapping lines and highlights
I was hoping to strictly contain the layouts of highlights an lines separately, since they are updated during different render phases. Unfortunately, strict containment requires both divs to be positioned absolutely. This in turn creates separate stacking contexts for lines and highlights, which makes it impossible to render highlights in front lines which themes sometimes need to do. For example, atom-material-syntax pushes bracket matcher highlights to the front so they are not obscured by the theme's solid black cursor line background. /cc @as-cii. You should examine my work here and make sure I'm not screwing something up with your line/block decoration update code.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Fix error when attaching soft-wrap editor in synchronous update mode
Taking the initial measurement was setting the soft wrap column, which was triggering a display layer reset, which was scheduling an update. This update occurred at an unexpected time causing an exception.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Avoid blowing away classes assigned on the editor element by packages
/cc @t9md
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Nathan Sobo authored and Antonio Scandurra committed
May 5, 2017 -
Ignore resize events if they are delivered while the editor is hidden
Antonio Scandurra committedMay 5, 2017 -
Antonio Scandurra committed
May 5, 2017 -
Implement text decorations in rendering layer
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Never create empty spans at the beginning of a row
This was happening when a text decoration overlapped a row, but the next boundary was located exactly at the beginning of it.
Antonio Scandurra committedMay 5, 2017 -
Make first-mate scope ids always larger than built-in ones
Antonio Scandurra committedMay 5, 2017 -
Antonio Scandurra committed
May 5, 2017 -
Don't activate scrollPastEnd for autoHeight editors
Antonio Scandurra committedMay 5, 2017 -
Update DOM in screenPositionForPixelPosition if needed
Some packages are interacting with this method assuming this behavior, so this commit eliminates `screenPositionForPixelPositionSync` and instead just performs the DOM update in `screenPositionForPixelPosition` if it is needed.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Account for vertical scrollbar width when soft-wrapping lines
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Set
overflow: hidden
andcontain: layout paint
on linesNathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Pass mini attribute when creating new TextEditor from TextEditorElement
This avoids content being shifted over due to rendering and measuring the gutter on element creation and then subsequently hiding it.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Rename method to match old implementation
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Avoid requesting horizontal measurement when auto-scrolling vertically
This was leaving a measurement request in the map that was getting picked up on the next frame. In some cases, the requested measurement row was not present, causing an exception.
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Only resolve update promise after final render phase
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Maintain the scroll position when changing font size
Nathan Sobo authored and Antonio Scandurra committedMay 5, 2017 -
Fix remaining test failures in core
Antonio Scandurra committedMay 5, 2017 -
Fix remaining linting warnings
Antonio Scandurra committedMay 5, 2017 -
Update class list even when the editor is not attached
Antonio Scandurra committedMay 5, 2017 -
Don't create empty nodes when a text decoration ends next to a text tag
This was causing problems in measurements because in that code path we assume that text nodes are never empty. This commit also adds a test verifying this invariant when a text decoration ending right after a text tag is added.
Antonio Scandurra committedMay 5, 2017 -
Don't 'contain: paint' line elements
This fixes #13880 (comment) once again.
Antonio Scandurra committedMay 5, 2017 -
Update width of content when approximate longest screen row changes
Antonio Scandurra authored and Nathan Sobo committedMay 5, 2017 -
Nathan Sobo committed
May 5, 2017 -
Fix clicking past the content height
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Move cursors within a transaction to batch marker layer update events
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra committedMay 5, 2017 -
Call
editor.setEditorWidthInChars
only when the value changedSigned-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 5, 2017 -
Merge pull request #13880 from atom/ns-editor-rendering
Rewrite editor rendering layout to use new browser features and virtual DOM
Antonio Scandurra committedMay 5, 2017
Commits on May 8, 2017
-
Fix rendering artifacts when resizing with soft wraps
Previously, we were accidentally depending on the state of the display layer when forcing it to update its index. This caused us to not index enough content to cover the visibile area, which meant we weren't querying enough lines to fill the screen in some situations.
Nathan Sobo committedMay 8, 2017 -
Nathan Sobo committed
May 8, 2017 -
🐎 Ensure rendered tile count is stable when scrolling
Signed-off-by: Nathan Sobo <nathan@github.com>
Commits on May 9, 2017
-
Antonio Scandurra committed
May 9, 2017 -
Use explicit state to recycle tiles instead of modulo scheme
This avoids updating tiles unnecessarily when changing the number of rendered tiles. Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 9, 2017 -
Null out component when editor is destroyed to minimize leaks
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 9, 2017 -
Dispose nodes associated with a LineComponent when replacing it
Antonio Scandurra committedMay 9, 2017 -
Antonio Scandurra committed
May 9, 2017 -
Don't change number of tiles based on block decorations
This means we may render more tiles than necessary when we have block decorations, but it prevents changing the number of rendered tiles during scrolling with certain combinations of line height and editor height. If it ever becomes a problem we can get smarter about subtracting the height of the visible block decorations from the editor height, but for now this gives us more reliable performance for the common case.
Nathan Sobo committedMay 9, 2017
Commits on May 10, 2017
-
Avoid deopt when calling TokenizedLine.prototype.getTokenIterator
Antonio Scandurra committedMay 10, 2017 -
Don't populate more screen rows than necessary
See 4eecf8d.
Antonio Scandurra committedMay 10, 2017 -
Use bufferRowsForScreenRows to compute line numbers
Antonio Scandurra committedMay 10, 2017 -
Antonio Scandurra committed
May 10, 2017 -
Antonio Scandurra committed
May 10, 2017 -
Ignore mismatched tags between lines in TokenizedBufferIterator
Previously the DisplayLayer would have issues when closing tags that had not been previously opened, requiring us to guard against mismatched scopes at the frontier of asynchronous tokenization (see 5cfe971 for more information). Now the DisplayLayer gracefully handles closing tags that had not been opened, meaning we can eliminate this costly logic. Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 10, 2017 -
Antonio Scandurra committed
May 10, 2017 -
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 10, 2017
Commits on May 11, 2017
-
Avoid creating a new timeout every time cursor blinking is paused
Antonio Scandurra committedMay 11, 2017 -
Fix blurring the editor when no hidden input is present
Antonio Scandurra committedMay 11, 2017 -
Change editor.bufferRowsForScreenRows to include the supplied endScre…
…enRow
Antonio Scandurra committedMay 11, 2017 -
Re-enable a test that was previously failing
Antonio Scandurra committedMay 11, 2017 -
Antonio Scandurra committed
May 11, 2017 -
Antonio Scandurra committed
May 11, 2017 -
Merge branch 'master' into tj-upgrade-electron
# Conflicts: # script/package.json # src/task.coffee
Antonio Scandurra committedMay 11, 2017 -
Antonio Scandurra committed
May 11, 2017 -
Antonio Scandurra committed
May 11, 2017 -
Antonio Scandurra committed
May 11, 2017 -
Use buffer coordinates in isFoldedAtCursorRow
This avoid an extra screen-to-buffer coordinate translation. Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 11, 2017 -
Don't clip screen range when autoscrolling from Cursor
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 11, 2017 -
Prevent unnecessary clipping of buffer range in isFoldedAtBufferRow
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 11, 2017 -
Antonio Scandurra committed
May 11, 2017 -
Mock Date.now in spec helper in addition to _.now
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
-
Disable github package in smoke test – it takes too long to compile
Nathan Sobo committedMay 11, 2017 -
Eliminate reliance on local storage in HistoryManager
It's causing test failures locally and enough time has passed that most user data should be transitioned to indexed DB by now.
Nathan Sobo committedMay 11, 2017 -
Avoid problems related to calling
startEditorWindow
in testsNathan Sobo committedMay 11, 2017 -
Avoid polluting test with click events on the test runner
We now pass an isolated document into the AtomEnvironment instance under test to avoid accidentally handling clicks on the test runner itself.
Nathan Sobo committedMay 11, 2017
Commits on May 12, 2017
-
Destroy environment to silence leaked editor warning
Nathan Sobo committedMay 12, 2017 -
Fix atom.setSize spec when window is full screen
Nathan Sobo committedMay 12, 2017 -
Nathan Sobo committed
May 12, 2017 -
Nathan Sobo committed
May 12, 2017 -
Unspy Date.now when jasmine.useRealClock is called
Nathan Sobo committedMay 12, 2017 -
Upgrade packages so tests pass with a mocked Date.now
Nathan Sobo committedMay 12, 2017 -
Fix editor component tests on Windows
Antonio Scandurra committedMay 12, 2017 -
Antonio Scandurra committed
May 12, 2017 -
Fix editor element tests on Windows
Antonio Scandurra committedMay 12, 2017
Commits on May 16, 2017
-
Update foldable icon when a row's foldability changes
Antonio Scandurra committedMay 16, 2017 -
Show foldable icon on the last screen row belonging to a buffer row
Antonio Scandurra committedMay 16, 2017 -
Always allow to destroy free-form folds from the gutter
Antonio Scandurra committedMay 16, 2017 -
Merge branch 'master' into tj-upgrade-electron
Antonio Scandurra committedMay 16, 2017 -
Antonio Scandurra committed
May 16, 2017 -
Antonio Scandurra committed
May 16, 2017 -
Antonio Scandurra committed
May 16, 2017
Commits on May 19, 2017
-
Use custom snapshot row translation to prevent Electron 1.6 reload crash
Adding a source map for the entire snapshot was expensive in terms of memory and seemed to be triggering some sort of bug in Chromium when reloading with the DevTools open. The custom row translation relies on a much more compact representation of the data and avoids the crash. Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 19, 2017 -
Merge branch 'master' into tj-upgrade-electron
Antonio Scandurra committedMay 19, 2017 -
Signed-off-by: Nathan Sobo <nathan@github.com>
Antonio Scandurra authored and Nathan Sobo committedMay 19, 2017