My pastebin dpaste does this - when you paste stuff in the “Content” box and wait three seconds, it makes a guess.
The REST API I use for this feature is not publicized or documented, but you can use it if it suits you.
Here’s a usage example. Enter the curl command given below, then paste your content, then hit Enter, then hit ctrl-D. You get a JSON response with ranked guesses.
- $ curl -s -F "content=<-" dpaste.com/api/v2/guess-syntax/
- # Python 3: Fibonacci series up to n
- >>> def fib(n):
- >>> a, b = 0, 1
- >>> while a < n:
- >>> print(a, end=' ')
- >>> a, b = b, a+b
- >>> print()
- >>> fib(1000)
- ^d
- ["Python console session", "pycon", [["pycon", 1.25], ["python", 0.17]]]
Il reconnaît actuellement ces langages/syntaxes :
Bash, BBcode, C, Clojure, C#, diff, HTML, HTML + modèle Django, HTML + PHP, Java, Javascript, JSON, nginx config, Objective-C, Python console, Python traceback, Python, Ruby, Tex, XML.
Tous les autres outils que j'ai vus pour cela visaient à identifier des programmes complets, plutôt que de courts extraits de code. Mais les extraits courts sont typiques dans un pastebin, alors j'ai fait le mien. C'est grossier mais ça fonctionne.
À un moment donné, je vais en faire un service autonome alimenté par AWS Lambda ou autre, et l'améliorer avec un peu de magie ML.