Fix dependancies and precompile ruby module

This commit is contained in:
2026-01-29 23:21:47 +00:00
parent 78949bc770
commit 86d5b7a021
14 changed files with 643 additions and 218 deletions

View File

@@ -2,7 +2,6 @@
std::unordered_map<std::string, Language> languages;
std::unordered_map<std::string, std::string> language_extensions;
std::unordered_map<std::string, std::string> language_mimetypes;
std::unordered_map<std::string, LSP> lsps;
void log(const char *fmt, ...) {
@@ -106,24 +105,6 @@ static std::string file_extension(const char *filename) {
return ext;
}
char *detect_file_type(const char *filename) {
magic_t magic = magic_open(MAGIC_MIME_TYPE);
if (!magic)
return nullptr;
if (magic_load(magic, nullptr) != 0) {
magic_close(magic);
return nullptr;
}
const char *type = magic_file(magic, filename);
if (!type) {
magic_close(magic);
return nullptr;
}
char *result = strdup(type);
magic_close(magic);
return result;
}
Language language_for_file(const char *filename) {
std::string ext = file_extension(filename);
std::string lang_name;
@@ -132,14 +113,6 @@ Language language_for_file(const char *filename) {
if (it != language_extensions.end())
return languages.find(it->second)->second;
}
char *mime = detect_file_type(filename);
if (mime) {
std::string mime_type(mime);
free(mime);
auto it = language_mimetypes.find(mime_type);
if (it != language_mimetypes.end())
return languages.find(it->second)->second;
}
return Language{};
}