( filepath: string, )
| 143 | const nameToLanguage = new Map<string, Language>(); |
| 144 | |
| 145 | export async function getLanguageForFile( |
| 146 | filepath: string, |
| 147 | ): Promise<Language | undefined> { |
| 148 | try { |
| 149 | await Parser.init(); |
| 150 | const extension = getUriFileExtension(filepath); |
| 151 | |
| 152 | const languageName = supportedLanguages[extension]; |
| 153 | if (!languageName) { |
| 154 | return undefined; |
| 155 | } |
| 156 | let language = nameToLanguage.get(languageName); |
| 157 | |
| 158 | if (!language) { |
| 159 | language = await loadLanguageForFileExt(extension); |
| 160 | nameToLanguage.set(languageName, language); |
| 161 | } |
| 162 | return language; |
| 163 | } catch (e) { |
| 164 | console.debug("Unable to load language for file", filepath, e); |
| 165 | return undefined; |
| 166 | } |
| 167 | } |
| 168 | |
| 169 | export const getFullLanguageName = (filepath: string) => { |
| 170 | const extension = getUriFileExtension(filepath); |
no test coverage detected