// src/sandbox/detectLanguage.ts

const PATTERNS: Array<[string, RegExp]> = [
  ["python",     /^(import |from \S+ import |def |class |print\(|#!.*python)/m],
  ["ruby",       /^(require |def |class |puts |#!.*ruby)/m],
  ["php",        /^<\?php|\becho\b.*\$[a-zA-Z]/m],
  ["perl",       /^(use strict|use warnings|my \$|#!.*perl)/m],
  ["r",          /^(library\(|require\(|<-|data\.frame\(|ggplot)/m],
  ["typescript", /^(import .+ from|interface |type [A-Z]|const .+: [A-Z])/m],
  ["javascript", /^(const |let |var |require\(|module\.exports|console\.)/m],
];

/**
 * Detect programming language from code content.
 * Returns language name (from available list) or null if undetected.
 */
export function detectLanguage(code: string, available: string[]): string | null {
  for (const [lang, re] of PATTERNS) {
    if (available.includes(lang) && re.test(code)) return lang;
  }
  return null;
}
