language.js 662 B

123456789101112131415161718192021222324
  1. /**
  2. * 文件扩展名 → Monaco Editor 语言名称映射
  3. */
  4. const EXT_LANGUAGE_MAP = {
  5. js: 'javascript', jsx: 'javascript',
  6. ts: 'typescript', tsx: 'typescript',
  7. json: 'json', html: 'html', css: 'css',
  8. scss: 'scss', less: 'less',
  9. md: 'markdown', py: 'python',
  10. java: 'java', xml: 'xml',
  11. yaml: 'yaml', yml: 'yaml',
  12. sh: 'shell', bash: 'shell',
  13. sql: 'sql', rs: 'rust', go: 'go',
  14. vue: 'html', txt: 'plaintext'
  15. }
  16. /**
  17. * 根据文件路径推断 Monaco Editor 语言
  18. */
  19. export function getLanguageFromPath(path) {
  20. if (!path) return 'plaintext'
  21. const ext = path.split('.').pop().toLowerCase()
  22. return EXT_LANGUAGE_MAP[ext] || 'plaintext'
  23. }