|
|
|
@ -170,19 +170,25 @@ bool Notebook::open(const boost::filesystem::path &file_path_, Position position |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
size_t source_views_previous_size = source_views.size(); |
|
|
|
if(language && (language->get_id() == "chdr" || language->get_id() == "cpphdr" || language->get_id() == "c" || language->get_id() == "cpp" || language->get_id() == "objc")) |
|
|
|
if(language && (language->get_id() == "chdr" || language->get_id() == "cpphdr" || language->get_id() == "c" || language->get_id() == "cpp" || language->get_id() == "objc")) |
|
|
|
source_views.emplace_back(new Source::ClangView(file_path, language)); |
|
|
|
source_views.emplace_back(new Source::ClangView(file_path, language)); |
|
|
|
else if(language && !language_protocol_language_id.empty() && !filesystem::find_executable(language_protocol_language_id + "-language-server").empty()) |
|
|
|
else if(language && !language_protocol_language_id.empty() && !filesystem::find_executable(language_protocol_language_id + "-language-server").empty()) |
|
|
|
source_views.emplace_back(new Source::LanguageProtocolView(file_path, language, language_protocol_language_id, language_protocol_language_id + "-language-server")); |
|
|
|
source_views.emplace_back(new Source::LanguageProtocolView(file_path, language, language_protocol_language_id, language_protocol_language_id + "-language-server")); |
|
|
|
else if(language && language_protocol_language_id == "rust" && !filesystem::get_rust_sysroot_path().empty()) { |
|
|
|
else if(language && language_protocol_language_id == "rust") { |
|
|
|
auto rust_analyzer = filesystem::get_rust_sysroot_path() / "bin" / "rust-analyzer"; |
|
|
|
if(!filesystem::find_executable("rust-analyzer").empty()) |
|
|
|
boost::system::error_code ec; |
|
|
|
source_views.emplace_back(new Source::LanguageProtocolView(file_path, language, language_protocol_language_id, "rust-analyzer")); |
|
|
|
if(boost::filesystem::exists(rust_analyzer, ec)) |
|
|
|
else { |
|
|
|
source_views.emplace_back(new Source::LanguageProtocolView(file_path, language, language_protocol_language_id, rust_analyzer.string())); |
|
|
|
auto sysroot = filesystem::get_rust_sysroot_path(); |
|
|
|
else |
|
|
|
if(!sysroot.empty()) { |
|
|
|
source_views.emplace_back(new Source::GenericView(file_path, language)); |
|
|
|
auto rust_analyzer = sysroot / "bin" / "rust-analyzer"; |
|
|
|
|
|
|
|
boost::system::error_code ec; |
|
|
|
|
|
|
|
if(boost::filesystem::exists(rust_analyzer, ec)) |
|
|
|
|
|
|
|
source_views.emplace_back(new Source::LanguageProtocolView(file_path, language, language_protocol_language_id, rust_analyzer.string())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
if(source_views_previous_size == source_views.size()) { |
|
|
|
if(language) { |
|
|
|
if(language) { |
|
|
|
static std::set<std::string> shown; |
|
|
|
static std::set<std::string> shown; |
|
|
|
std::string language_id = language->get_id(); |
|
|
|
std::string language_id = language->get_id(); |
|
|
|
|