mirror of
https://github.com/atom/atom.git
synced 2026-02-14 08:35:11 -05:00
Rename Highlighter -> LanguageMode
This commit is contained in:
@@ -2,8 +2,8 @@ module.exports =
|
||||
class AceFoldAdaptor
|
||||
foldWidgets: {}
|
||||
|
||||
constructor: (@highlighter) ->
|
||||
@buffer = @highlighter.buffer
|
||||
constructor: (@languageMode) ->
|
||||
@buffer = @languageMode.buffer
|
||||
|
||||
getLine: (bufferRow) ->
|
||||
@buffer.lineForRow(bufferRow)
|
||||
@@ -12,5 +12,5 @@ class AceFoldAdaptor
|
||||
@buffer.getLineCount()
|
||||
|
||||
$findClosingBracket: (bracketType, bufferPosition) ->
|
||||
@highlighter.findClosingBracket([bufferPosition.row, bufferPosition.column - 1])
|
||||
@languageMode.findClosingBracket([bufferPosition.row, bufferPosition.column - 1])
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@ AceFoldAdaptor = require 'ace-fold-adaptor'
|
||||
|
||||
module.exports =
|
||||
class FoldSuggester
|
||||
constructor: (@highlighter) ->
|
||||
@buffer = @highlighter.buffer
|
||||
constructor: (@languageMode) ->
|
||||
@buffer = @languageMode.buffer
|
||||
@aceFoldMode = @buffer.getMode().foldingRules
|
||||
@aceFoldAdaptor = new AceFoldAdaptor(@highlighter)
|
||||
@aceFoldAdaptor = new AceFoldAdaptor(@languageMode)
|
||||
|
||||
isBufferRowFoldable: (bufferRow) ->
|
||||
@aceFoldMode?.getFoldWidget(@aceFoldAdaptor, null, bufferRow) == "start"
|
||||
|
||||
@@ -6,7 +6,7 @@ Range = require 'range'
|
||||
Point = require 'point'
|
||||
|
||||
module.exports =
|
||||
class Highlighter
|
||||
class LanguageMode
|
||||
@idCounter: 1
|
||||
buffer: null
|
||||
screenLines: []
|
||||
@@ -14,7 +14,7 @@ class Highlighter
|
||||
constructor: (@buffer, @tabText) ->
|
||||
@id = @constructor.idCounter++
|
||||
@screenLines = @buildScreenLinesForRows('start', 0, @buffer.getLastRow())
|
||||
@buffer.on "change.highlighter#{@id}", (e) => @handleBufferChange(e)
|
||||
@buffer.on "change.languageMode#{@id}", (e) => @handleBufferChange(e)
|
||||
|
||||
handleBufferChange: (e) ->
|
||||
oldRange = e.oldRange.copy()
|
||||
@@ -75,7 +75,7 @@ class Highlighter
|
||||
@screenLines[row]?.state ? 'start'
|
||||
|
||||
destroy: ->
|
||||
@buffer.off ".highlighter#{@id}"
|
||||
@buffer.off ".languageMode#{@id}"
|
||||
|
||||
iterateTokensInBufferRange: (bufferRange, iterator) ->
|
||||
bufferRange = Range.fromObject(bufferRange)
|
||||
@@ -107,4 +107,4 @@ class Highlighter
|
||||
stop()
|
||||
position
|
||||
|
||||
_.extend(Highlighter.prototype, EventEmitter)
|
||||
_.extend(LanguageMode.prototype, EventEmitter)
|
||||
@@ -3,15 +3,15 @@ AceLineCommentAdaptor = require 'ace-line-comment-adaptor'
|
||||
|
||||
module.exports =
|
||||
class LineCommenter
|
||||
highlighter: null
|
||||
languageMode: null
|
||||
buffer: null
|
||||
aceMode: null
|
||||
|
||||
constructor: (@highlighter) ->
|
||||
@buffer = @highlighter.buffer
|
||||
constructor: (@languageMode) ->
|
||||
@buffer = @languageMode.buffer
|
||||
@aceMode = @buffer.getMode()
|
||||
@adaptor = new AceLineCommentAdaptor(@buffer)
|
||||
|
||||
toggleLineCommentsInRange: (range) ->
|
||||
range = Range.fromObject(range)
|
||||
@aceMode.toggleCommentLines(@highlighter.stateForRow(range.start.row), @adaptor, range.start.row, range.end.row)
|
||||
@aceMode.toggleCommentLines(@languageMode.stateForRow(range.start.row), @adaptor, range.start.row, range.end.row)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
_ = require 'underscore'
|
||||
Highlighter = require 'highlighter'
|
||||
LanguageMode = require 'language-mode'
|
||||
FoldSuggester = require 'fold-suggester'
|
||||
LineMap = require 'line-map'
|
||||
Point = require 'point'
|
||||
@@ -14,22 +14,22 @@ module.exports =
|
||||
class Renderer
|
||||
@idCounter: 1
|
||||
lineMap: null
|
||||
highlighter: null
|
||||
languageMode: null
|
||||
activeFolds: null
|
||||
lineCommenter: null
|
||||
foldsById: null
|
||||
lastHighlighterChangeEvent: null
|
||||
lastLanguageModeChangeEvent: null
|
||||
|
||||
constructor: (@buffer, options={}) ->
|
||||
@id = @constructor.idCounter++
|
||||
@highlighter = new Highlighter(@buffer, options.tabText ? ' ')
|
||||
@lineCommenter = new LineCommenter(@highlighter)
|
||||
@foldSuggester = new FoldSuggester(@highlighter)
|
||||
@languageMode = new LanguageMode(@buffer, options.tabText ? ' ')
|
||||
@lineCommenter = new LineCommenter(@languageMode)
|
||||
@foldSuggester = new FoldSuggester(@languageMode)
|
||||
@softWrapColumn = options.softWrapColumn ? Infinity
|
||||
@activeFolds = {}
|
||||
@foldsById = {}
|
||||
@buildLineMap()
|
||||
@highlighter.on 'change', (e) => @lastHighlighterChangeEvent = e
|
||||
@languageMode.on 'change', (e) => @lastLanguageModeChangeEvent = e
|
||||
@buffer.on "change.renderer#{@id}", (e) => @handleBufferChange(e)
|
||||
|
||||
buildLineMap: ->
|
||||
@@ -163,7 +163,7 @@ class Renderer
|
||||
@lineMap.bufferPositionForScreenPosition(position, options)
|
||||
|
||||
stateForScreenRow: (screenRow) ->
|
||||
@highlighter.stateForRow(screenRow)
|
||||
@languageMode.stateForRow(screenRow)
|
||||
|
||||
clipScreenPosition: (position, options) ->
|
||||
@lineMap.clipScreenPosition(position, options)
|
||||
@@ -173,9 +173,9 @@ class Renderer
|
||||
allFolds.push(folds...) for row, folds of @activeFolds
|
||||
fold.handleBufferChange(e) for fold in allFolds
|
||||
|
||||
@handleHighlighterChange(@lastHighlighterChangeEvent)
|
||||
@handleLanguageModeChange(@lastLanguageModeChangeEvent)
|
||||
|
||||
handleHighlighterChange: (e) ->
|
||||
handleLanguageModeChange: (e) ->
|
||||
newRange = e.newRange.copy()
|
||||
newRange.start.row = @bufferRowForScreenRow(@screenRowForBufferRow(newRange.start.row))
|
||||
|
||||
@@ -202,7 +202,7 @@ class Renderer
|
||||
|
||||
startBufferColumn = 0
|
||||
while currentBufferRow <= endBufferRow
|
||||
screenLine = @highlighter.lineForScreenRow(currentBufferRow)
|
||||
screenLine = @languageMode.lineForScreenRow(currentBufferRow)
|
||||
screenLine.foldable = @foldSuggester.isBufferRowFoldable(currentBufferRow)
|
||||
|
||||
if fold = @largestFoldForBufferRow(currentBufferRow)
|
||||
@@ -256,7 +256,7 @@ class Renderer
|
||||
new Range([0, 0], @clipScreenPosition([Infinity, Infinity]))
|
||||
|
||||
destroy: ->
|
||||
@highlighter.destroy()
|
||||
@languageMode.destroy()
|
||||
@buffer.off ".renderer#{@id}"
|
||||
|
||||
logLines: (start, end) ->
|
||||
|
||||
Reference in New Issue
Block a user