mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Editor no longer references Renderer directly
This commit is contained in:
@@ -31,10 +31,10 @@ class EditSession
|
||||
autoIndent: true
|
||||
softTabs: true
|
||||
|
||||
constructor: ({@buffer, @tabText, @autoIndent, @softTabs, softWrapColumn}) ->
|
||||
constructor: ({@buffer, @tabText, @autoIndent, @softTabs, @softWrapColumn}) ->
|
||||
@id = @constructor.idCounter++
|
||||
@softTabs ?= true
|
||||
@renderer = new Renderer(@buffer, { softWrapColumn, @tabText })
|
||||
@renderer = new Renderer(@buffer, { @softWrapColumn, @tabText })
|
||||
@languageMode = @renderer.languageMode
|
||||
@cursors = []
|
||||
@selections = []
|
||||
@@ -72,19 +72,10 @@ class EditSession
|
||||
setScrollLeft: (@scrollLeft) ->
|
||||
getScrollLeft: -> @scrollLeft
|
||||
|
||||
setSoftWrapColumn: (softWrapColumn) -> @renderer.setSoftWrapColumn(softWrapColumn)
|
||||
setSoftWrapColumn: (@softWrapColumn) -> @renderer.setSoftWrapColumn(@softWrapColumn)
|
||||
setAutoIndent: (@autoIndent) ->
|
||||
setSoftTabs: (@softTabs) ->
|
||||
|
||||
screenPositionForBufferPosition: (bufferPosition, options) ->
|
||||
@renderer.screenPositionForBufferPosition(bufferPosition, options)
|
||||
|
||||
bufferPositionForScreenPosition: (screenPosition, options) ->
|
||||
@renderer.bufferPositionForScreenPosition(screenPosition, options)
|
||||
|
||||
clipScreenPosition: (screenPosition, options) ->
|
||||
@renderer.clipScreenPosition(screenPosition, options)
|
||||
|
||||
clipBufferPosition: (bufferPosition, options) ->
|
||||
{ row, column } = Point.fromObject(bufferPosition)
|
||||
row = 0 if row < 0
|
||||
@@ -94,21 +85,25 @@ class EditSession
|
||||
|
||||
new Point(row, column)
|
||||
|
||||
getEofBufferPosition: ->
|
||||
@buffer.getEofPosition()
|
||||
|
||||
bufferRangeForBufferRow: (row) ->
|
||||
@buffer.rangeForRow(row)
|
||||
|
||||
lineForBufferRow: (row) ->
|
||||
@buffer.lineForRow(row)
|
||||
|
||||
scanInRange: (args...) ->
|
||||
@buffer.scanInRange(args...)
|
||||
|
||||
backwardsScanInRange: (args...) ->
|
||||
@buffer.backwardsScanInRange(args...)
|
||||
getEofBufferPosition: -> @buffer.getEofPosition()
|
||||
bufferRangeForBufferRow: (row) -> @buffer.rangeForRow(row)
|
||||
lineForBufferRow: (row) -> @buffer.lineForRow(row)
|
||||
scanInRange: (args...) -> @buffer.scanInRange(args...)
|
||||
backwardsScanInRange: (args...) -> @buffer.backwardsScanInRange(args...)
|
||||
|
||||
screenPositionForBufferPosition: (bufferPosition, options) -> @renderer.screenPositionForBufferPosition(bufferPosition, options)
|
||||
bufferPositionForScreenPosition: (screenPosition, options) -> @renderer.bufferPositionForScreenPosition(screenPosition, options)
|
||||
screenRangeForBufferRange: (range) -> @renderer.screenRangeForBufferRange(range)
|
||||
bufferRangeForScreenRange: (range) -> @renderer.bufferRangeForScreenRange(range)
|
||||
clipScreenPosition: (screenPosition, options) -> @renderer.clipScreenPosition(screenPosition, options)
|
||||
lineForScreenRow: (row) -> @renderer.lineForRow(row)
|
||||
linesForScreenRows: (start, end) -> @renderer.linesForRows(start, end)
|
||||
stateForScreenRow: (screenRow) -> @renderer.stateForScreenRow(screenRow)
|
||||
screenLineCount: -> @renderer.lineCount()
|
||||
maxScreenLineLength: -> @renderer.maxLineLength()
|
||||
getLastScreenRow: -> @renderer.getLastRow()
|
||||
bufferRowsForScreenRows: (startRow, endRow) -> @renderer.bufferRowsForScreenRows(startRow, endRow)
|
||||
logScreenLines: (start, end) -> @renderer.logLines(start, end)
|
||||
|
||||
insertText: (text) ->
|
||||
@mutateSelectedText (selection) -> selection.insertText(text)
|
||||
@@ -186,8 +181,11 @@ class EditSession
|
||||
@renderer.foldAll()
|
||||
|
||||
toggleFold: ->
|
||||
row = @renderer.bufferPositionForScreenPosition(@getCursorScreenPosition()).row
|
||||
@renderer.toggleFoldAtBufferRow(row)
|
||||
bufferRow = @bufferPositionForScreenPosition(@getCursorScreenPosition()).row
|
||||
@toggleFoldAtBufferRow(bufferRow)
|
||||
|
||||
toggleFoldAtBufferRow: (bufferRow) ->
|
||||
@renderer.toggleFoldAtBufferRow(bufferRow)
|
||||
|
||||
createFold: (startRow, endRow) ->
|
||||
@renderer.createFold(startRow, endRow)
|
||||
@@ -222,12 +220,6 @@ class EditSession
|
||||
fn(selection) for selection in selections
|
||||
@buffer.endUndoBatch(@getSelectedBufferRanges())
|
||||
|
||||
lineForScreenRow: (row) ->
|
||||
@renderer.lineForRow(row)
|
||||
|
||||
stateForScreenRow: (screenRow) ->
|
||||
@renderer.stateForScreenRow(screenRow)
|
||||
|
||||
getCursors: -> new Array(@cursors...)
|
||||
|
||||
getCursor: (index=0) ->
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{View, $$} = require 'space-pen'
|
||||
Buffer = require 'buffer'
|
||||
Gutter = require 'gutter'
|
||||
Renderer = require 'renderer'
|
||||
Point = require 'point'
|
||||
Range = require 'range'
|
||||
EditSession = require 'edit-session'
|
||||
@@ -41,7 +40,6 @@ class Editor extends View
|
||||
cursorViews: null
|
||||
selectionViews: null
|
||||
buffer: null
|
||||
renderer: null
|
||||
autoIndent: true
|
||||
lineCache: null
|
||||
isFocused: false
|
||||
@@ -219,17 +217,17 @@ class Editor extends View
|
||||
softWrapColumn ?= @calcSoftWrapColumn()
|
||||
@activeEditSession.setSoftWrapColumn(softWrapColumn) if softWrapColumn
|
||||
|
||||
linesForScreenRows: (start, end) -> @renderer.linesForRows(start, end)
|
||||
screenLineCount: -> @renderer.lineCount()
|
||||
maxScreenLineLength: -> @renderer.maxLineLength()
|
||||
getLastScreenRow: -> @renderer.getLastRow()
|
||||
clipScreenPosition: (screenPosition, options={}) -> @renderer.clipScreenPosition(screenPosition, options)
|
||||
screenPositionForBufferPosition: (position, options) -> @renderer.screenPositionForBufferPosition(position, options)
|
||||
bufferPositionForScreenPosition: (position, options) -> @renderer.bufferPositionForScreenPosition(position, options)
|
||||
screenRangeForBufferRange: (range) -> @renderer.screenRangeForBufferRange(range)
|
||||
bufferRangeForScreenRange: (range) -> @renderer.bufferRangeForScreenRange(range)
|
||||
bufferRowsForScreenRows: (startRow, endRow) -> @renderer.bufferRowsForScreenRows(startRow, endRow)
|
||||
stateForScreenRow: (row) -> @renderer.stateForScreenRow(row)
|
||||
linesForScreenRows: (start, end) -> @activeEditSession.linesForScreenRows(start, end)
|
||||
screenLineCount: -> @activeEditSession.screenLineCount()
|
||||
maxScreenLineLength: -> @activeEditSession.maxScreenLineLength()
|
||||
getLastScreenRow: -> @activeEditSession.getLastScreenRow()
|
||||
clipScreenPosition: (screenPosition, options={}) -> @activeEditSession.clipScreenPosition(screenPosition, options)
|
||||
screenPositionForBufferPosition: (position, options) -> @activeEditSession.screenPositionForBufferPosition(position, options)
|
||||
bufferPositionForScreenPosition: (position, options) -> @activeEditSession.bufferPositionForScreenPosition(position, options)
|
||||
screenRangeForBufferRange: (range) -> @activeEditSession.screenRangeForBufferRange(range)
|
||||
bufferRangeForScreenRange: (range) -> @activeEditSession.bufferRangeForScreenRange(range)
|
||||
bufferRowsForScreenRows: (startRow, endRow) -> @activeEditSession.bufferRowsForScreenRows(startRow, endRow)
|
||||
stateForScreenRow: (row) -> @activeEditSession.stateForScreenRow(row)
|
||||
|
||||
setText: (text) -> @buffer.setText(text)
|
||||
getText: -> @buffer.getText()
|
||||
@@ -383,7 +381,6 @@ class Editor extends View
|
||||
@buffer.on "path-change.editor#{@id}", => @trigger 'editor-path-change'
|
||||
@trigger 'editor-path-change'
|
||||
|
||||
@renderer = @activeEditSession.renderer
|
||||
@renderWhenAttached()
|
||||
|
||||
scrollTop: (scrollTop, options) ->
|
||||
@@ -737,7 +734,7 @@ class Editor extends View
|
||||
buildLineElements: (startRow, endRow) ->
|
||||
charWidth = @charWidth
|
||||
charHeight = @charHeight
|
||||
lines = @renderer.linesForRows(startRow, endRow)
|
||||
lines = @activeEditSession.linesForScreenRows(startRow, endRow)
|
||||
activeEditSession = @activeEditSession
|
||||
|
||||
$$ ->
|
||||
@@ -794,9 +791,8 @@ class Editor extends View
|
||||
element = @lineCache[screenRow - @firstRenderedScreenRow]
|
||||
$(element)
|
||||
|
||||
|
||||
logLines: (start, end) ->
|
||||
@renderer.logLines(start, end)
|
||||
logScreenLines: (start, end) ->
|
||||
@activeEditSession.logScreenLines(start, end)
|
||||
|
||||
toggleLineCommentsInSelection: ->
|
||||
@activeEditSession.toggleLineCommentsInSelection()
|
||||
|
||||
Reference in New Issue
Block a user