formatRange method

Future<List> formatRange({
  1. required String filePath,
  2. required int startLine,
  3. required int startCharacter,
  4. required int endLine,
  5. required int endCharacter,
})

Formats a specific range in the document.

Useful for formatting selections.

Implementation

Future<List<dynamic>> formatRange({
  required String filePath,
  required int startLine,
  required int startCharacter,
  required int endLine,
  required int endCharacter,
}) async {
  final response = await _sendRequest(
    method: 'textDocument/rangeFormatting',
    params: {
      'textDocument': {'uri': Uri.file(filePath).toString()},
      'range': {
        'start': {'line': startLine, 'character': startCharacter},
        'end': {'line': endLine, 'character': endCharacter},
      },
      'options': {'tabSize': 2, 'insertSpaces': true},
    },
  );

  final result = response['result'];
  if (result is! List) return [];
  return result;
}