(self, language: str)
| 839 | self._call_types[custom.name] = list(custom.call_node_types) |
| 840 | |
| 841 | def _get_parser(self, language: str): # type: ignore[arg-type] |
| 842 | if language not in self._parsers: |
| 843 | # Custom languages map their name onto a packaged grammar. |
| 844 | custom = self._custom_languages.get(language) |
| 845 | grammar = custom.grammar if custom is not None else language |
| 846 | try: |
| 847 | self._parsers[language] = tslp.get_parser(grammar) # type: ignore[arg-type] |
| 848 | except (LookupError, ValueError, ImportError) as exc: |
| 849 | # language not packaged, or grammar load failed |
| 850 | logger.debug("tree-sitter parser unavailable for %s: %s", language, exc) |
| 851 | return None |
| 852 | return self._parsers[language] |
| 853 | |
| 854 | def detect_language(self, path: Path) -> Optional[str]: |
| 855 | """Map a file path to its language name. |
no test coverage detected