getCurrentWordPrefix method

String getCurrentWordPrefix(
  1. String text,
  2. int offset
)

Implementation

String getCurrentWordPrefix(String text, int offset) {
  final safeOffset = offset.clamp(0, text.length);
  if (isBufferActive) {
    final lineText = bufferLineText ?? '';
    final col = bufferCursorColumn;
    if (col <= 0) return '';
    if (col > lineText.length) return '';
    int i = col - 1;
    while (i >= 0) {
      final code = lineText.codeUnitAt(i);
      if (!_isIdentChar(code)) break;
      i--;
    }
    final start = i + 1;
    if (start >= col) return '';
    final firstCode = lineText.codeUnitAt(start);
    if (!_isIdentStartChar(firstCode)) return '';
    return lineText.substring(start, col);
  }

  if (safeOffset == 0) return '';
  int i = safeOffset - 1;
  while (i >= 0) {
    final code = text.codeUnitAt(i);
    if (!_isIdentChar(code)) break;
    i--;
  }
  final start = i + 1;
  if (start >= safeOffset) return '';
  final firstCode = text.codeUnitAt(start);
  if (!_isIdentStartChar(firstCode)) return '';
  return text.substring(start, safeOffset);
}