26 lines
648 B
Python
26 lines
648 B
Python
from typing import List
|
|
|
|
|
|
class LanguageDetector:
|
|
SUPPORTED_EXTENSIONS = {
|
|
"py": "python",
|
|
"js": "javascript",
|
|
"ts": "typescript",
|
|
"rs": "rust",
|
|
"go": "go",
|
|
"java": "java",
|
|
"cpp": "cpp",
|
|
"c": "c",
|
|
"rb": "ruby",
|
|
"php": "php",
|
|
}
|
|
|
|
def is_supported(self, extension: str) -> bool:
|
|
return extension in self.SUPPORTED_EXTENSIONS
|
|
|
|
def get_language(self, extension: str) -> Optional[str]:
|
|
return self.SUPPORTED_EXTENSIONS.get(extension)
|
|
|
|
def get_supported_extensions(self) -> List[str]:
|
|
return list(self.SUPPORTED_EXTENSIONS.keys())
|