pub enum LanguageId {
Show 26 variants
Rust,
Python,
JavaScript,
JavaScriptReact,
TypeScript,
TypeScriptReact,
Go,
Java,
C,
Cpp,
CSharp,
Ruby,
Php,
Swift,
Kotlin,
Scala,
Html,
Css,
Json,
Yaml,
Toml,
Markdown,
Xml,
Sql,
ShellScript,
PlainText,
}Expand description
Identifies a programming language for LSP server selection.
LanguageId maps languages to their LSP server configuration, file extensions, and protocol identifiers. The daemon uses this to determine which language server to spawn and which files to associate with it.
§Detection
from_extension– Detect from a file extension (e.g."rs"→Rust).from_path– Detect from a file path. Falls back toPlainTextfor unknown extensions.as_str– Get the LSP language ID string for this variant.detect_project_languages– Detect configured languages from project manifests.
§Supported language servers
| Server | Languages | Env override |
|---|---|---|
rust-analyzer | Rust | AETHER_LSPD_SERVER_COMMAND_RUST_ANALYZER |
tsc --lsp (TypeScript 7+) | JavaScript, JSX, TypeScript, TSX | AETHER_LSPD_SERVER_COMMAND_TSC |
pyright-langserver | Python | AETHER_LSPD_SERVER_COMMAND_PYRIGHT |
gopls | Go | AETHER_LSPD_SERVER_COMMAND_GOPLS |
clangd | C, C++ | AETHER_LSPD_SERVER_COMMAND_CLANGD |
Languages without a configured server (Java, Ruby, etc.) can still be identified but won’t have LSP support.
§Server pooling
Languages that share a server implementation also share a daemon socket. For example, TypeScript and TSX both use tsc, so socket_path returns the same path for both. This avoids spawning duplicate server processes.
§Metadata
LANGUAGES lists every language with its LSP language ID, file extensions and language server, if any. metadata looks up a single language, and server returns its server’s display name and installation guidance.
Variants§
Rust
Python
JavaScript
JavaScriptReact
TypeScript
TypeScriptReact
Go
Java
C
Cpp
CSharp
Ruby
Php
Swift
Kotlin
Scala
Html
Css
Json
Yaml
Toml
Markdown
Xml
Sql
ShellScript
PlainText
Implementations§
Source§impl LanguageId
impl LanguageId
pub fn metadata(self) -> &'static LanguageMetadata
pub fn server(self) -> Option<&'static ServerSpec>
Sourcepub fn from_extension(ext: &str) -> Option<Self>
pub fn from_extension(ext: &str) -> Option<Self>
Detect language from a file extension.