mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Fix a few issues with ace autocomplete and cursors
This commit is contained in:
parent
beae4f2424
commit
b51af73516
5 changed files with 24 additions and 16 deletions
|
@ -9,7 +9,7 @@ define [
|
|||
last_updated: null
|
||||
open_doc_id: null
|
||||
opening: true
|
||||
cursorPosition: null
|
||||
cursorPosition: {}
|
||||
gotoLine: null
|
||||
}
|
||||
|
||||
|
|
|
@ -29,19 +29,23 @@ define [
|
|||
constructor: (@$scope, @editor) ->
|
||||
@suggestionManager = new SuggestionManager()
|
||||
|
||||
insertMatch = Autocomplete::insertMatch
|
||||
editor = @editor
|
||||
Autocomplete::insertMatch = (data) ->
|
||||
pos = editor.getCursorPosition()
|
||||
range = new Range(pos.row, pos.column, pos.row, pos.column + 1)
|
||||
nextChar = editor.session.getTextRange(range)
|
||||
if !Autocomplete::_insertMatch?
|
||||
# Only override this once since it's global but we may create multiple
|
||||
# autocomplete handlers
|
||||
Autocomplete::_insertMatch = Autocomplete::insertMatch
|
||||
Autocomplete::insertMatch = (data) ->
|
||||
pos = editor.getCursorPosition()
|
||||
range = new Range(pos.row, pos.column, pos.row, pos.column + 1)
|
||||
nextChar = editor.session.getTextRange(range)
|
||||
|
||||
# If we are in \begin{it|}, then we need to remove the trailing }
|
||||
# since it will be adding in with the autocomplete of \begin{item}...
|
||||
if this.completions.filterText.match(/^\\begin\{/) and nextChar == "}"
|
||||
editor.session.remove(range)
|
||||
console.log "INSERT MATCH", this
|
||||
|
||||
insertMatch.call editor.completer, data
|
||||
# If we are in \begin{it|}, then we need to remove the trailing }
|
||||
# since it will be adding in with the autocomplete of \begin{item}...
|
||||
if this.completions.filterText.match(/^\\begin\{/) and nextChar == "}"
|
||||
editor.session.remove(range)
|
||||
|
||||
Autocomplete::_insertMatch.call this, data
|
||||
|
||||
@$scope.$watch "autoComplete", (autocomplete) =>
|
||||
console.log "autocomplete change", autocomplete
|
||||
|
|
|
@ -13,9 +13,9 @@ define [], () ->
|
|||
|
||||
@editor.on "changeSelection", () =>
|
||||
cursor = @editor.getCursorPosition()
|
||||
console.log "Updating cursor position", cursor
|
||||
@$scope.$apply () =>
|
||||
@$scope.cursorPosition = cursor
|
||||
if @$scope.cursorPosition?
|
||||
@$scope.cursorPosition = cursor
|
||||
|
||||
@$scope.$watch "gotoLine", (value) =>
|
||||
console.log "Going to line", value
|
||||
|
|
|
@ -42,7 +42,9 @@ define [
|
|||
else
|
||||
@$originalApply(fn);
|
||||
|
||||
window.editor = editor = Ace.edit(element.find(".ace-editor-body")[0])
|
||||
editor = Ace.edit(element.find(".ace-editor-body")[0])
|
||||
window.editors ||= []
|
||||
window.editors.push editor
|
||||
|
||||
autoCompleteManager = new AutoCompleteManager(scope, editor, element)
|
||||
spellCheckManager = new SpellCheckManager(scope, editor, element)
|
||||
|
|
|
@ -47,6 +47,8 @@ define [
|
|||
range = new Range(pos.row, pos.column, pos.row, pos.column + 1)
|
||||
nextChar = editor.session.getTextRange(range)
|
||||
|
||||
console.log "CALLING OLD"
|
||||
|
||||
# If we are in \begin{it|}, then we need to remove the trailing }
|
||||
# since it will be adding in with the autocomplete of \begin{item}...
|
||||
if this.completions.filterText.match(/^\\begin\{/) and nextChar == "}"
|
||||
|
|
Loading…
Reference in a new issue