From 918c3193af6ba11c202691451b2d1e058fed627e Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:06:45 -0500 Subject: [PATCH] feat: custom sort order for morph features (#1794) --- .../morph_analytics_view.dart | 6 ++++ lib/pangea/morphs/default_morph_mapping.dart | 33 +++++++++++++++++++ 2 files changed, 39 insertions(+) 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", +];