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]]]
Riconosce questi linguaggi/sintassi attualmente:
Bash, BBcode, C, Clojure, C#, diff, HTML, HTML + Django template, HTML + PHP, Java, Javascript, JSON, nginx config, Objective-C, Python console, Python traceback, Python, Ruby, Tex, XML.
Tutti gli altri strumenti che ho visto per questo si sono occupati di identificare programmi completi, piuttosto che brevi frammenti di codice. Ma i brevi snippet sono tipici in un pastebin, così ho fatto il mio. È grezzo ma funziona.
A un certo punto ho intenzione di rendere questo un servizio autonomo alimentato da AWS Lambda o simili, e migliorarlo con qualche magia ML.