Closed
Description
Hello,
Currently arduino-cli can find a library when searched name match exactly lib name (lowercased):
$ ./arduino-cli lib search ArduinoJSON
Name: "ArduinoJson"
Author: Benoit Blanchon <blog.benoitblanchon.fr>
Maintainer: Benoit Blanchon <blog.benoitblanchon.fr>
Sentence: An efficient and elegant JSON library for Arduino.
Paragraph: ArduinoJson supports ✔ serialization, ✔ deserialization, ✔ MessagePack, ✔ fixed allocation, ✔ zero-copy, ✔ streams, and more. It is the most popular Arduino library on GitHub ❤❤❤❤❤. Check out arduinojson.org for a comprehensive documentation.
Website: https://arduinojson.org/?utm_source=meta&utm_medium=library.properties
Category: Data Processing
Architecture: *
Types: Contributed
Versions: [4.0.0, 5.0.0, 5.0.1, 5.0.2, 5.0.3, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.1.0-beta.1, 5.1.0-beta.2, 5.1.0, 5.1.1, 5.2.0, 5.3.0, 5.4.0, 5.5.0, 5.5.1, 5.6.0, 5.6.1, 5.6.2, 5.6.3, 5.6.4, 5.6.5, 5.6.6, 5.6.7, 5.7.0, 5.7.1, 5.7.2, 5.7.3, 5.8.0, 5.8.1, 5.8.2, 5.8.3, 5.8.4, 5.9.0, 5.10.0, 5.10.1, 5.11.0, 5.11.1, 5.11.2, 5.12.0, 5.13.0, 5.13.1, 5.13.2, 5.13.3, 5.13.4, 6.0.0-beta, 6.0.1-beta, 6.1.0-beta, 6.2.0-beta, 6.2.1-beta, 6.2.2-beta, 6.2.3-beta, 6.3.0-beta, 6.4.0-beta, 6.5.0-beta, 6.6.0-beta, 6.7.0-beta]
But not when it's slightly different
$ ./arduino-cli lib search ArduinoJason
No library found matching `arduinojason` search query
Maybe Arduino CLI could find nearest library named (or 5 nearest library name)
$ ./arduino-cli lib search ArduinoJason
No library found matching `arduinojason` search query
Did you mean?
ArduinoJson
...
I did something quite similar in https://github.com/scls19fr/arduino_libraries_search/blob/master/utils.py#L110-L127
using a similarity measurement named Sørensen–Dice coefficient
Other metrics / edit distance may be considered
https://en.wikipedia.org/wiki/String_metric
Kind regards
PS : quite similar to this Julia Pkg issue JuliaLang/Pkg.jl#616
PS2 : https://github.com/danieldk/editdistance may help because it implements Levenshtein algorithm in Go