Merge branch 'sk-ref-variants'

This commit is contained in:
Shane Kilkelly 2017-06-15 09:17:48 +01:00
commit b0bb4b3e47

View file

@ -42,28 +42,29 @@ define [
labelsManager = @labelsManager labelsManager = @labelsManager
LabelsCompleter = LabelsCompleter =
getCompletions: (editor, session, pos, prefxi, callback) -> getCompletions: (editor, session, pos, prefix, callback) ->
upToCursorRange = new Range(pos.row, 0, pos.row, pos.column) upToCursorRange = new Range(pos.row, 0, pos.row, pos.column)
lineUpToCursor = editor.getSession().getTextRange(upToCursorRange) lineUpToCursor = editor.getSession().getTextRange(upToCursorRange)
commandFragment = getLastCommandFragment(lineUpToCursor) commandFragment = getLastCommandFragment(lineUpToCursor)
if commandFragment if commandFragment
refMatch = commandFragment.match(/^~?\\ref{([^}]*, *)?(\w*)/) refMatch = commandFragment.match(/^~?\\([a-z]*ref){([^}]*, *)?(\w*)/)
if refMatch if refMatch
beyondCursorRange = new Range(pos.row, pos.column, pos.row, 99999) beyondCursorRange = new Range(pos.row, pos.column, pos.row, 99999)
lineBeyondCursor = editor.getSession().getTextRange(beyondCursorRange) lineBeyondCursor = editor.getSession().getTextRange(beyondCursorRange)
needsClosingBrace = !lineBeyondCursor.match(/^[^{]*}/) needsClosingBrace = !lineBeyondCursor.match(/^[^{]*}/)
currentArg = refMatch[1] commandName = refMatch[1]
currentArg = refMatch[2]
result = [] result = []
result.push { result.push {
caption: "\\ref{}", caption: "\\#{commandName}{}",
snippet: "\\ref{}", snippet: "\\#{commandName}{}",
meta: "cross-reference", meta: "cross-reference",
score: 11000 score: 11000
} }
for label in labelsManager.getAllLabels() for label in labelsManager.getAllLabels()
result.push { result.push {
caption: "\\ref{#{label}#{if needsClosingBrace then '}' else ''}", caption: "\\#{commandName}{#{label}#{if needsClosingBrace then '}' else ''}",
value: "\\ref{#{label}#{if needsClosingBrace then '}' else ''}", value: "\\#{commandName}{#{label}#{if needsClosingBrace then '}' else ''}",
meta: "cross-reference", meta: "cross-reference",
score: 10000 score: 10000
} }