on master help sign in
Add a way to directly search for a pattern
commitedd27645d07e4842e1feca5851964695d9cd8bf7 authorsharkdp <davidpeter@web.de> dateSun 12 Apr 2020, 18:34 (7 years ago) parentfc6f4f3
1 file changed+19−9
tests/scripts/find-slow-to-highlight-files.py+19−9
tests/scripts/find-slow-to-highlight-files.py+19−9
@@ -12,6 +12,7 @@
1212# - fd (https://github.com/sharkdp/fd)
1313# - wc
1414
15+import sys
1516import time
1617import os
1718import subprocess as sp
@@ -30,7 +31,7 @@ MAX_NUM_FILES = 100
3031SEARCH_ROOT = os.getenv("HOME")
3132
3233
33−def find_slow_files(startup_time, language, glob_pattern):
34+def find_slow_files(startup_time, glob_pattern, language=None):
3435 out = sp.check_output(
3536 [
3637 "fd",
@@ -46,7 +47,8 @@ def find_slow_files(startup_time, language, glob_pattern):
4647 )
4748
4849 paths = out.split(b"\n")[:-1]
49− print(f"Language: {language}, glob pattern: {glob_pattern} ({len(paths)} matches)")
50+ language_text = f"Language {language}, " if language else ""
51+ print(f"{language_text}glob pattern: {glob_pattern} ({len(paths)} matches)")
5052
5153 for path in paths:
5254 num_chars = int(sp.check_output(["wc", "-c", path]).split(b" ")[0].decode())
@@ -96,19 +98,27 @@ def measure_bat_startup_speed():
9698 return min_duration
9799
98100
99−def main():
100− print("Measuring 'bat' startup speed ... ", flush=True, end="")
101− startup_time = measure_bat_startup_speed()
102− print(f"{startup_time * 1000:.1f} ms")
103−
101+def traverse_all_languages(startup_time):
104102 output = sp.check_output(["bat", "--list-languages"]).decode()
105103
106104 for line in output.strip().split("\n"):
107105 language, extensions = line.split(":")
108106 for ext in extensions.split(","):
109− find_slow_files(startup_time, language, ext)
107+ find_slow_files(startup_time, ext, language)
110108 if not ext.startswith("."):
111− find_slow_files(startup_time, language, f"*.{ext}")
109+ find_slow_files(startup_time, f"*.{ext}", language)
110+
111+
112+def main():
113+ print("Measuring 'bat' startup speed ... ", flush=True, end="")
114+ startup_time = measure_bat_startup_speed()
115+ print(f"{startup_time * 1000:.1f} ms")
116+
117+ if len(sys.argv) == 1:
118+ traverse_all_languages(startup_time)
119+ else:
120+ pattern = sys.argv[1]
121+ find_slow_files(startup_time, pattern)
112122
113123
114124if __name__ == "__main__":