mirror of
https://github.com/overleaf/overleaf.git
synced 2025-03-06 02:33:52 +00:00
Fetch the keys when autocomplete is triggered on a cite element.
This commit is contained in:
parent
2a7894f6e4
commit
dbbc3bbbbb
3 changed files with 36 additions and 23 deletions
|
@ -68,12 +68,13 @@ define [
|
|||
|
||||
$scope.chat = {}
|
||||
|
||||
|
||||
|
||||
window._ide = ide
|
||||
|
||||
ide.project_id = $scope.project_id = window.project_id
|
||||
ide.$scope = $scope
|
||||
|
||||
ide.referencesSearchManager = new ReferencesSearchManager(ide, $scope)
|
||||
ide.connectionManager = new ConnectionManager(ide, $scope)
|
||||
ide.fileTreeManager = new FileTreeManager(ide, $scope)
|
||||
ide.editorManager = new EditorManager(ide, $scope)
|
||||
|
@ -82,7 +83,6 @@ define [
|
|||
ide.pdfManager = new PdfManager(ide, $scope)
|
||||
ide.permissionsManager = new PermissionsManager(ide, $scope)
|
||||
ide.binaryFilesManager = new BinaryFilesManager(ide, $scope)
|
||||
ide.referencesSearchManager = new ReferencesSearchManager(ide, $scope)
|
||||
|
||||
inited = false
|
||||
$scope.$on "project:joined", () ->
|
||||
|
|
|
@ -12,6 +12,14 @@ define [
|
|||
else
|
||||
return null
|
||||
|
||||
referenceKeyToAutocompleteEntry = (key) ->
|
||||
return {
|
||||
caption: "\\cite{#{key}",
|
||||
snippet: "\\cite{#{key}",
|
||||
meta: "reference",
|
||||
score: 10000
|
||||
}
|
||||
|
||||
class AutoCompleteManager
|
||||
constructor: (@$scope, @editor) ->
|
||||
@suggestionManager = new SuggestionManager()
|
||||
|
@ -47,26 +55,30 @@ define [
|
|||
getCompletions: (editor, session, pos, prefix, callback) ->
|
||||
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
||||
return callback(null, [])
|
||||
if references.keys
|
||||
range = new Range(pos.row, 0, pos.row, pos.column)
|
||||
lineUpToCursor = editor.getSession().getTextRange(range)
|
||||
commandFragment = getLastCommandFragment(lineUpToCursor)
|
||||
if commandFragment and commandFragment.match(/^~?\\cite{\w*/)
|
||||
result = references.keys.map (key) -> {
|
||||
caption: "\\cite{#{key}",
|
||||
snippet: "\\cite{#{key}",
|
||||
meta: "reference",
|
||||
score: 10000
|
||||
}
|
||||
result.push {
|
||||
caption: "\\cite{",
|
||||
snippet: "\\cite{",
|
||||
meta: "reference",
|
||||
score: 11000
|
||||
}
|
||||
|
||||
range = new Range(pos.row, 0, pos.row, pos.column)
|
||||
lineUpToCursor = editor.getSession().getTextRange(range)
|
||||
commandFragment = getLastCommandFragment(lineUpToCursor)
|
||||
if commandFragment and commandFragment.match(/^~?\\cite{\w*/)
|
||||
result = []
|
||||
result.push {
|
||||
caption: "\\cite{",
|
||||
snippet: "\\cite{",
|
||||
meta: "reference",
|
||||
score: 11000
|
||||
}
|
||||
if references.keys and references.keys.length > 0
|
||||
references.keys.forEach (key) ->
|
||||
result.push(referenceKeyToAutocompleteEntry(key))
|
||||
callback null, result
|
||||
else
|
||||
callback null, []
|
||||
# get keys from the backend
|
||||
referencesSearch = window?._ide?.referencesSearchManager
|
||||
if referencesSearch
|
||||
referencesSearch.getReferenceKeys (keys) =>
|
||||
keys.forEach (key) ->
|
||||
result.push(referenceKeyToAutocompleteEntry(key))
|
||||
callback null, result
|
||||
|
||||
@editor.completers = [@suggestionManager, SnippetCompleter, ReferencesCompleter]
|
||||
@editor.completers = [SnippetCompleter, ReferencesCompleter]
|
||||
|
|
|
@ -25,14 +25,13 @@ define [
|
|||
_csrf: window.csrfToken
|
||||
},
|
||||
(data) =>
|
||||
console.log(data)
|
||||
setTimeout(
|
||||
( () -> @getReferenceKeys() ).bind(this),
|
||||
100
|
||||
500
|
||||
)
|
||||
)
|
||||
|
||||
getReferenceKeys: () ->
|
||||
getReferenceKeys: (callback) ->
|
||||
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
||||
return
|
||||
$.get(
|
||||
|
@ -42,4 +41,6 @@ define [
|
|||
},
|
||||
(data) =>
|
||||
@$scope.$root._references.keys = data.keys
|
||||
if callback
|
||||
callback(data.keys)
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue