handleEditGetFixes method
Handle an 'edit.getFixes' request.
Throw a RequestFailure
if the request could not be handled.
Implementation
@override
Future<plugin.EditGetFixesResult> handleEditGetFixes(
plugin.EditGetFixesParams parameters) async {
try {
final resolvedUnit = await getResolvedUnitResult(parameters.file);
final analysisOptions = (_options[resolvedUnit.session] ??=
_getAnalysisOptions(resolvedUnit.session.analysisContext));
_logger.fine('handleEditGetFixes($parameters)');
final fixes = _check(
resolvedUnit.session.analysisContext.contextRoot.root.path,
analysisOptions,
resolvedUnit.path,
resolvedUnit.unit,
resolvedUnit,
)
.where((fix) =>
fix.error.location.file == parameters.file &&
fix.error.location.offset <= parameters.offset &&
parameters.offset <=
fix.error.location.offset + fix.error.location.length &&
fix.fixes.isNotEmpty)
.toList();
_logger.fine('result: $fixes');
return plugin.EditGetFixesResult(fixes);
} on Exception catch (e, stackTrace) {
channel.sendNotification(
plugin.PluginErrorParams(false, e.toString(), stackTrace.toString())
.toNotification(),
);
return plugin.EditGetFixesResult([]);
}
}