Extract SpellCheckAdapter to separate file

This commit is contained in:
Alasdair Smith 2018-05-11 12:22:45 +01:00
parent d2bba0eb60
commit ebf1b7c84c
2 changed files with 47 additions and 35 deletions

View file

@ -7,7 +7,7 @@ define [
"ide/editor/directives/aceEditor/undo/UndoManager"
"ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager"
"ide/editor/directives/aceEditor/spell-check/SpellCheckManager"
"ide/editor/directives/aceEditor/spell-check/HighlightedWordManager"
"ide/editor/directives/aceEditor/spell-check/SpellCheckAdapter"
"ide/editor/directives/aceEditor/highlights/HighlightsManager"
"ide/editor/directives/aceEditor/cursor-position/CursorPositionManager"
"ide/editor/directives/aceEditor/track-changes/TrackChangesManager"
@ -16,11 +16,10 @@ define [
"ide/graphics/services/graphics"
"ide/preamble/services/preamble"
"ide/files/services/files"
], (App, Ace, SearchBox, Vim, ModeList, UndoManager, AutoCompleteManager, SpellCheckManager, HighlightedWordManager, HighlightsManager, CursorPositionManager, TrackChangesManager, MetadataManager) ->
], (App, Ace, SearchBox, Vim, ModeList, UndoManager, AutoCompleteManager, SpellCheckManager, SpellCheckAdapter, HighlightsManager, CursorPositionManager, TrackChangesManager, MetadataManager) ->
EditSession = ace.require('ace/edit_session').EditSession
ModeList = ace.require('ace/ext/modelist')
Vim = ace.require('ace/keyboard/vim').Vim
Range = ace.require('ace/range').Range
# set the path for ace workers if using a CDN (from editor.pug)
if window.aceWorkerPath != ""
@ -599,35 +598,3 @@ define [
SearchBox::$init = () ->
@element = $compile(searchHtml)($rootScope.$new())[0];
$init.apply(@)
class SpellCheckAdapter
constructor: (@editor) ->
@wordManager = new HighlightedWordManager(@editor)
getLines: () -> @editor.getValue().split('\n')
normalizeChangeEvent: (e) -> e
getCoordsFromContextMenuEvent: (e) ->
e.domEvent.stopPropagation()
return {
x: e.domEvent.clientX,
y: e.domEvent.clientY
}
preventContextMenuEventDefault: (e) ->
e.domEvent.preventDefault()
getHighlightFromCoords: (coords) ->
position = @editor.renderer.screenToTextCoordinates(coords.x, coords.y)
@wordManager.findHighlightWithinRange({
start: position
end: position
})
selectHighlightedWord: (highlight) ->
@editor.getSession().getSelection().setSelectionRange(
new Range(
highlight.row, highlight.column,
highlight.row, highlight.column + highlight.word.length
)
)
replaceWord: (highlight, newWord) =>
@editor.getSession().replace(new Range(
highlight.row, highlight.column,
highlight.row, highlight.column + highlight.word.length
), newWord)

View file

@ -0,0 +1,45 @@
define [
"ace/ace"
"ide/editor/directives/aceEditor/spell-check/HighlightedWordManager"
], (Ace, HighlightedWordManager) ->
Range = ace.require('ace/range').Range
class SpellCheckAdapter
constructor: (@editor) ->
@wordManager = new HighlightedWordManager(@editor)
getLines: () ->
@editor.getValue().split('\n')
normalizeChangeEvent: (e) -> e
getCoordsFromContextMenuEvent: (e) ->
e.domEvent.stopPropagation()
return {
x: e.domEvent.clientX,
y: e.domEvent.clientY
}
preventContextMenuEventDefault: (e) ->
e.domEvent.preventDefault()
getHighlightFromCoords: (coords) ->
position = @editor.renderer.screenToTextCoordinates(coords.x, coords.y)
@wordManager.findHighlightWithinRange({
start: position
end: position
})
selectHighlightedWord: (highlight) ->
@editor.getSession().getSelection().setSelectionRange(
new Range(
highlight.row, highlight.column,
highlight.row, highlight.column + highlight.word.length
)
)
replaceWord: (highlight, newWord) =>
@editor.getSession().replace(new Range(
highlight.row, highlight.column,
highlight.row, highlight.column + highlight.word.length
), newWord)