Определитель языка

Вставьте фрагмент кода и сразу получите его наиболее вероятный язык: определитель оценивает употребление ключевых слов, характерные синтаксические признаки, стиль комментариев и необязательное имя файла по сигнатурам для 27 распространённых языков (Python, JavaScript, Java, C/C++, C#, Go, Rust, SQL, HTML/CSS и других). Показаны три лучших предположения с точными признаками, которые совпали. Эвристика, работает локально и не передаёт ваш код никуда: всё остаётся в браузере.
Как это работает и ограничения. Определение — эвристическое: оно считает характерные ключевые слова, синтаксические признаки (например , def , package main), стили комментариев и расширение файла, затем ранжирует 27 сигнатур. Короткие или обобщённые фрагменты могут быть неоднозначны (например import есть и в Python, и в Go), а лучшее предположение может быть неверным для смешанного или сильно обрезанного кода: относитесь к результату как к подсказке. Поддерживаются: JavaScript, TypeScript, Python, Java, C, C++, C#, Go, Rust, Ruby, PHP, Swift, Kotlin, Objective-C, Bash, Perl, PowerShell, SQL, HTML, CSS, JSON, YAML, XML, Markdown, Scala, R, Lua.
Как работает определение языка кода?

Определение — это задача классификации с двумя основными подходами: статистические модели, обученные на корпусах (частоты токенов, n-граммы), и вручную построенное сопоставление сигнатур, то, что делает эта страница. У каждого языка есть сигнатура из характерных признаков: ключевые слова, которые используются только им (def, fn, public static void), синтаксические маркеры, такие как стили комментариев или <?php, и расширения файлов. Определитель считает, какие признаки встречаются во фрагменте, и ранжирует лучше всего совпавшие сигнатуры, показывая точные доказательства, чтобы вы могли судить сами.

Короткие фрагменты по природе неоднозначны: import сам по себе есть в Python, Go и Java, поэтому ранжирование определителя (и список признаков) информативнее, чем его единственное лучшее предположение.