in src/language/providers/utils.ts [610:654]
export function cursorWithinBraces(
document: vscode.TextDocument,
position: vscode.Position
) {
let startLine = position.line
let currentText = document.lineAt(startLine).text
let braceStartLine = startLine
let braceStartPos = -1
while (
braceStartLine > 0 &&
(braceStartPos = currentText.indexOf('{')) === -1
) {
currentText = document.lineAt(--braceStartLine).text
}
let braceEndLine = braceStartLine
let braceEndPos = -1
if (braceStartPos > -1) {
while (
braceEndLine < document.lineCount &&
(braceEndPos = currentText.indexOf('}')) === -1
) {
currentText = document.lineAt(++braceEndLine).text
}
if (braceEndPos > -1) {
if (
(position.line > braceStartLine && position.line < braceEndLine) ||
(braceEndLine === braceStartLine &&
position.character > braceStartPos &&
position.character <= braceEndPos) ||
(position.line === braceStartLine &&
position.character > braceStartPos &&
position.line < braceEndLine) ||
(position.line === braceEndLine &&
position.character <= braceEndPos &&
position.line > braceStartLine)
) {
return true
}
}
}
return false
}