From 9b7d2a933fdead11111a34337592a7cd66b581ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 18 Jul 2019 15:24:55 +0200 Subject: [PATCH] documentation: trim overly long search results even more. The function name should be shown fully, ideally together with a recognizable prefix. --- documentation/doxygen.py | 10 +++++----- documentation/test_doxygen/test_search.py | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/documentation/doxygen.py b/documentation/doxygen.py index 4e4ac2a0..ff918cb9 100755 --- a/documentation/doxygen.py +++ b/documentation/doxygen.py @@ -2317,15 +2317,15 @@ def build_search_data(state: State, merge_subtrees=True, add_lookahead_barriers= # the suffix_length to exceed 256, which won't fit into the # serialized search data. However that *also* won't fit in the # search result list so there's no point in storing so much. - # Truncate it to 65 chars which could fit at least a part of - # the function name in the list in most cases, yet be still - # long enough to be able to distinguish particular overloads. + # Truncate it to 48 chars which should fit the full function + # name in the list in most cases, yet be still long enough to + # be able to distinguish particular overloads. # TODO: the suffix_length has to be calculated on UTF-8 and I # am (un)escaping a lot back and forth here -- needs to be # cleaned up params = html.unescape(strip_tags(', '.join(result.params))) - if len(params) > 65: - params = params[:64] + '…' + if len(params) > 49: + params = params[:48] + '…' name_with_args += '(' + html.escape(params) + ')' suffix_length += len(params.encode('utf-8')) + 2 if hasattr(result, 'suffix') and result.suffix: diff --git a/documentation/test_doxygen/test_search.py b/documentation/test_doxygen/test_search.py index 4ed0a3c4..3cb23713 100755 --- a/documentation/test_doxygen/test_search.py +++ b/documentation/test_doxygen/test_search.py @@ -235,7 +235,7 @@ class SearchLongSuffixLength(IntegrationTestCase): serialized = f.read() search_data_pretty = pretty_print(serialized, entryTypeClass=EntryType)[0] #print(search_data_pretty) - self.assertEqual(len(serialized), 489) + self.assertEqual(len(serialized), 473) # The parameters get cut off with an ellipsis self.assertEqual(search_data_pretty, """ 2 symbols @@ -247,8 +247,8 @@ file.h [2] averylongfunctionname [0] | ($ | ) [1] -0: ::aVeryLongFunctionName(const std::reference_wrapper>&, c…) [prefix=2[:12], suffix_length=69, type=FUNC] -> #a1e9a11887275938ef5541070955c9d9c -1: [prefix=0[:46], suffix_length=67, type=FUNC] -> +0: ::aVeryLongFunctionName(const std::reference_wrapper #a1e9a11887275938ef5541070955c9d9c +1: [prefix=0[:46], suffix_length=51, type=FUNC] -> 2: File.h [type=FILE] -> File_8h.html (EntryType.PAGE, CssClass.SUCCESS, 'page'), (EntryType.NAMESPACE, CssClass.PRIMARY, 'namespace'), -- 2.30.2