diff --git a/lib/pangea/analytics_details_popup/morph_analytics_view.dart b/lib/pangea/analytics_details_popup/morph_analytics_view.dart index 1b7a49d14..14fcf12c4 100644 --- a/lib/pangea/analytics_details_popup/morph_analytics_view.dart +++ b/lib/pangea/analytics_details_popup/morph_analytics_view.dart @@ -31,6 +31,12 @@ class MorphAnalyticsView extends StatelessWidget { builder: (context, snapshot) { final morphs = snapshot.data ?? defaultMorphMapping; + morphs.displayFeatures.sort( + (a, b) => morphFeatureSortOrder + .indexOf(a.feature) + .compareTo(morphFeatureSortOrder.indexOf(b.feature)), + ); + return snapshot.connectionState == ConnectionState.done ? ListView.builder( key: const PageStorageKey('morph-analytics'), diff --git a/lib/pangea/morphs/default_morph_mapping.dart b/lib/pangea/morphs/default_morph_mapping.dart index 4a0118c33..7e9513747 100644 --- a/lib/pangea/morphs/default_morph_mapping.dart +++ b/lib/pangea/morphs/default_morph_mapping.dart @@ -232,3 +232,36 @@ final MorphFeaturesAndTags defaultMorphMapping = MorphFeaturesAndTags.fromJson({ } ], }); + +final List morphFeatureSortOrder = [ + "pos", + "advtype", + "aspect", + "case", + "conjtype", + "definite", + "degree", + "evident", + "gender", + "mood", + "nountype", + "numform", + "numtype", + "number", + "number[psor]", + "person", + "polarity", + "polite", + "poss", + "prepcase", + "prontype", + "punctside", + "puncttype", + "reflex", + "tense", + "verbform", + "verbtype", + "voice", + "foreign", + "x", +];