Fetch the keys when autocomplete is triggered on a cite element.
This commit is contained in:
@@ -68,12 +68,13 @@ define [
|
|||||||
|
|
||||||
$scope.chat = {}
|
$scope.chat = {}
|
||||||
|
|
||||||
|
|
||||||
window._ide = ide
|
window._ide = ide
|
||||||
|
|
||||||
ide.project_id = $scope.project_id = window.project_id
|
ide.project_id = $scope.project_id = window.project_id
|
||||||
ide.$scope = $scope
|
ide.$scope = $scope
|
||||||
|
|
||||||
|
ide.referencesSearchManager = new ReferencesSearchManager(ide, $scope)
|
||||||
ide.connectionManager = new ConnectionManager(ide, $scope)
|
ide.connectionManager = new ConnectionManager(ide, $scope)
|
||||||
ide.fileTreeManager = new FileTreeManager(ide, $scope)
|
ide.fileTreeManager = new FileTreeManager(ide, $scope)
|
||||||
ide.editorManager = new EditorManager(ide, $scope)
|
ide.editorManager = new EditorManager(ide, $scope)
|
||||||
@@ -82,7 +83,6 @@ define [
|
|||||||
ide.pdfManager = new PdfManager(ide, $scope)
|
ide.pdfManager = new PdfManager(ide, $scope)
|
||||||
ide.permissionsManager = new PermissionsManager(ide, $scope)
|
ide.permissionsManager = new PermissionsManager(ide, $scope)
|
||||||
ide.binaryFilesManager = new BinaryFilesManager(ide, $scope)
|
ide.binaryFilesManager = new BinaryFilesManager(ide, $scope)
|
||||||
ide.referencesSearchManager = new ReferencesSearchManager(ide, $scope)
|
|
||||||
|
|
||||||
inited = false
|
inited = false
|
||||||
$scope.$on "project:joined", () ->
|
$scope.$on "project:joined", () ->
|
||||||
|
|||||||
+30
-18
@@ -12,6 +12,14 @@ define [
|
|||||||
else
|
else
|
||||||
return null
|
return null
|
||||||
|
|
||||||
|
referenceKeyToAutocompleteEntry = (key) ->
|
||||||
|
return {
|
||||||
|
caption: "\\cite{#{key}",
|
||||||
|
snippet: "\\cite{#{key}",
|
||||||
|
meta: "reference",
|
||||||
|
score: 10000
|
||||||
|
}
|
||||||
|
|
||||||
class AutoCompleteManager
|
class AutoCompleteManager
|
||||||
constructor: (@$scope, @editor) ->
|
constructor: (@$scope, @editor) ->
|
||||||
@suggestionManager = new SuggestionManager()
|
@suggestionManager = new SuggestionManager()
|
||||||
@@ -47,26 +55,30 @@ define [
|
|||||||
getCompletions: (editor, session, pos, prefix, callback) ->
|
getCompletions: (editor, session, pos, prefix, callback) ->
|
||||||
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
||||||
return callback(null, [])
|
return callback(null, [])
|
||||||
if references.keys
|
|
||||||
range = new Range(pos.row, 0, pos.row, pos.column)
|
range = new Range(pos.row, 0, pos.row, pos.column)
|
||||||
lineUpToCursor = editor.getSession().getTextRange(range)
|
lineUpToCursor = editor.getSession().getTextRange(range)
|
||||||
commandFragment = getLastCommandFragment(lineUpToCursor)
|
commandFragment = getLastCommandFragment(lineUpToCursor)
|
||||||
if commandFragment and commandFragment.match(/^~?\\cite{\w*/)
|
if commandFragment and commandFragment.match(/^~?\\cite{\w*/)
|
||||||
result = references.keys.map (key) -> {
|
result = []
|
||||||
caption: "\\cite{#{key}",
|
result.push {
|
||||||
snippet: "\\cite{#{key}",
|
caption: "\\cite{",
|
||||||
meta: "reference",
|
snippet: "\\cite{",
|
||||||
score: 10000
|
meta: "reference",
|
||||||
}
|
score: 11000
|
||||||
result.push {
|
}
|
||||||
caption: "\\cite{",
|
if references.keys and references.keys.length > 0
|
||||||
snippet: "\\cite{",
|
references.keys.forEach (key) ->
|
||||||
meta: "reference",
|
result.push(referenceKeyToAutocompleteEntry(key))
|
||||||
score: 11000
|
|
||||||
}
|
|
||||||
callback null, result
|
callback null, result
|
||||||
else
|
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 = [@suggestionManager, SnippetCompleter, ReferencesCompleter]
|
||||||
@editor.completers = [SnippetCompleter, ReferencesCompleter]
|
@editor.completers = [SnippetCompleter, ReferencesCompleter]
|
||||||
|
|||||||
@@ -25,14 +25,13 @@ define [
|
|||||||
_csrf: window.csrfToken
|
_csrf: window.csrfToken
|
||||||
},
|
},
|
||||||
(data) =>
|
(data) =>
|
||||||
console.log(data)
|
|
||||||
setTimeout(
|
setTimeout(
|
||||||
( () -> @getReferenceKeys() ).bind(this),
|
( () -> @getReferenceKeys() ).bind(this),
|
||||||
100
|
500
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
getReferenceKeys: () ->
|
getReferenceKeys: (callback) ->
|
||||||
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
||||||
return
|
return
|
||||||
$.get(
|
$.get(
|
||||||
@@ -42,4 +41,6 @@ define [
|
|||||||
},
|
},
|
||||||
(data) =>
|
(data) =>
|
||||||
@$scope.$root._references.keys = data.keys
|
@$scope.$root._references.keys = data.keys
|
||||||
|
if callback
|
||||||
|
callback(data.keys)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user