Compare commits

..

1 Commits

Author SHA1 Message Date
Joakim Skogø Langvand 0c50edc61d Merge branch 'more-editor-actions' into 'master' 2 months ago
  1. 7
      src/directories.cpp
  2. 26
      src/source_base.cpp

7
src/directories.cpp

@ -702,8 +702,11 @@ void Directories::add_or_update_path(const boost::filesystem::path &dir_path, co
grandchild->set_value(column_record.markup, Glib::Markup::escape_text("(empty)")); grandchild->set_value(column_record.markup, Glib::Markup::escape_text("(empty)"));
grandchild->set_value(column_record.type, PathType::unknown); grandchild->set_value(column_record.type, PathType::unknown);
} }
else else {
child->set_value(column_record.type, Source::guess_language(filename.second) ? PathType::known : PathType::unknown); auto language = Source::guess_language(filename.first);
if(!language)
child->set_value(column_record.type, PathType::unknown);
}
} }
} }
if(children.empty()) { if(children.empty()) {

26
src/source_base.cpp

@ -78,32 +78,10 @@ Glib::RefPtr<Gsv::Language> Source::guess_language(const boost::filesystem::path
language = language_manager->get_language("cpphdr"); language = language_manager->get_language("cpphdr");
else { else {
std::ifstream input(file_path.string(), std::ios::binary); std::ifstream input(file_path.string(), std::ios::binary);
std::string first_chars(2, '\0'); std::string tag(5, '\0');
if(input && input.read(&first_chars[0], static_cast<std::streamsize>(first_chars.size()))) { if(input && input.read(&tag[0], static_cast<std::streamsize>(tag.size())) && tag == "<?xml")
if(first_chars == "<?") {
std::string next_chars(3, '\0');
if(input.read(&next_chars[0], static_cast<std::streamsize>(next_chars.size())) && next_chars == "xml")
language = language_manager->get_language("xml"); language = language_manager->get_language("xml");
} }
else if(first_chars == "#!") {
boost::filesystem::path interpreter;
input >> interpreter;
auto interpreter_filename = interpreter.filename().string();
if(interpreter_filename == "env")
input >> interpreter_filename;
if(interpreter_filename == "perl")
return language_manager->get_language("perl");
else if(interpreter_filename == "python3")
return language_manager->get_language("python3");
else if(interpreter_filename == "python")
return language_manager->get_language("python");
else if(interpreter_filename == "sh" || interpreter_filename == "bash")
return language_manager->get_language("sh");
else if(interpreter_filename == "node")
return language_manager->get_language("js");
}
}
}
} }
else if(language->get_id() == "cuda") { else if(language->get_id() == "cuda") {
if(extension == ".cuh") if(extension == ".cuh")

Loading…
Cancel
Save