blob: c4469eaf42b896eb591bcaddc5a81105e0988fa3 [file] [log] [blame]
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer_plugin/protocol/protocol_common.dart'
show SourceChange;
import 'package:analyzer_plugin/utilities/assist/assist.dart';
/// A description of a single proposed assist.
///
/// Clients may not extend, implement or mix-in this class.
class Assist {
/// A comparator that can be used to sort assists by their relevance. The most
/// relevant assists will be sorted before assists with a lower relevance.
/// Assists with the same relevance are sorted alphabetically.
static final Comparator<Assist> SORT_BY_RELEVANCE = (Assist a, Assist b) {
if (a.kind.priority != b.kind.priority) {
return a.kind.priority - b.kind.priority;
}
return a.change.message.compareTo(b.change.message);
};
/// A description of the assist being proposed.
final AssistKind kind;
/// The change to be made in order to apply the assist.
final SourceChange change;
/// Initialize a newly created assist to have the given [kind] and [change].
Assist(this.kind, this.change);
@override
String toString() {
return 'Assist(kind=$kind, change=$change)';
}
}