{"record":{"id":"42806b7aa6f9794e","repo":"zed-industries/zed","slug":"language-not-found","errorCode":null,"errorMessage":"language not found","messagePattern":"language not found","errorType":"exception","errorClass":"LanguageNotFound","httpStatus":null,"severity":"error","filePath":"crates/language/src/language_registry.rs","lineNumber":596,"sourceCode":"    }\n\n    pub fn language_name_for_extension(self: &Arc<Self>, extension: &str) -> Option<LanguageName> {\n        self.state\n            .try_read()\n            .and_then(|state| state.available_languages.find_name_by_extension(extension))\n    }\n\n    pub fn language_for_name_or_extension(\n        self: &Arc<Self>,\n        string: &str,\n    ) -> impl Future<Output = Result<Arc<Language>>> {\n        let language_id = self\n            .state\n            .read()\n            .available_languages\n            .find_by_name_or_extension(string);\n        let rx = self.get_or_load_language(language_id);\n        async move { rx.await? }\n    }\n\n    pub fn available_language_for_name(self: &Arc<Self>, name: &str) -> Option<AvailableLanguage> {\n        let state = self.state.read();\n        state.available_languages.find_by_exact_name(name)\n    }\n\n    /// Look up a language by its modeline name (vim filetype or emacs mode).\n    ///\n    /// This performs a case-insensitive match against:\n    /// 1. Explicit modeline aliases defined in the language config\n    /// 2. The language's grammar name\n    /// 3. The language name itself\n    pub fn available_language_for_modeline_name(\n        self: &Arc<Self>,\n        modeline_name: &str,\n    ) -> Option<AvailableLanguage> {\n        self.state","sourceCodeStart":578,"sourceCodeEnd":614,"githubUrl":"https://github.com/zed-industries/zed/blob/5a9b9558db01a6b906cec2fb70a797affdc58cdd/crates/language/src/language_registry.rs#L578-L614","documentation":"Raised via get_or_load_language in language_for_name_or_extension when the lookup by name or file extension found no registered language: find_by_name_or_extension returned None, so there is no language id to load and the returned future resolves to the LanguageNotFound error. This is the normal outcome for an unknown language name or unrecognized file extension.","triggerScenarios":"Thrown at crates/language/src/language_registry.rs:588 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the language name spelling or the file extension; use one Zed registers (or configure a custom file type association)","Install/enable the language extension that registers this language","Handle the None/error case in the caller by falling back to plain text"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5a9b9558db01a6b906cec2fb70a797affdc58cdd","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}