Browse Source

Added installation instruction outputs upon detecting missing language servers when opening some source file types

pipelines/280567345
eidheim 5 years ago
parent
commit
77b60abf07
  1. 6
      docs/language_servers.md
  2. 24
      src/notebook.cpp

6
docs/language_servers.md

@ -1,6 +1,8 @@
# Setup of tested language servers # Setup of tested language servers
## JavaScript with Flow static type checker ## JavaScript/TypeScript
### JavaScript with Flow static type checker
* Prerequisites: * Prerequisites:
* Node.js * Node.js
* Recommended: * Recommended:
@ -19,7 +21,7 @@ chmod 755 /usr/local/bin/javascript-language-server
* Additional setup within a JavaScript project: * Additional setup within a JavaScript project:
* Add a `.prettierrc` file to enable style format on save * Add a `.prettierrc` file to enable style format on save
## TypeScript or JavaScript without Flow ### TypeScript or JavaScript without Flow
* Prerequisites: * Prerequisites:
* Node.js * Node.js
* Recommended: * Recommended:

24
src/notebook.cpp

@ -174,8 +174,30 @@ bool Notebook::open(const boost::filesystem::path &file_path_, Position position
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)); source_views.emplace_back(new Source::LanguageProtocolView(file_path, language, language_protocol_language_id));
else else {
if(language) {
static std::set<std::string> shown;
std::string language_id = language->get_id();
if(shown.find(language_id) == shown.end()) {
if(language_id == "js") {
Terminal::get().print("\e[33mWarning\e[m: Could not find JavaScript/TypeScript language server.\n");
Terminal::get().print("For installation instructions please visit: https://gitlab.com/cppit/jucipp/-/blob/master/docs/language_servers.md#javascripttypescript.\n");
shown.emplace(language_id);
}
else if(language_id == "python") {
Terminal::get().print("\e[33mWarning\e[m: Could not find Python language server.\n");
Terminal::get().print("For installation instructions please visit: https://gitlab.com/cppit/jucipp/-/blob/master/docs/language_servers.md#python3.\n");
shown.emplace(language_id);
}
else if(language_id == "rust") {
Terminal::get().print("\e[33mWarning\e[m: Could not find Rust language server.\n");
Terminal::get().print("For installation instructions please visit: https://gitlab.com/cppit/jucipp/-/blob/master/docs/language_servers.md#rust.\n");
shown.emplace(language_id);
}
}
}
source_views.emplace_back(new Source::GenericView(file_path, language)); source_views.emplace_back(new Source::GenericView(file_path, language));
}
auto view = source_views.back(); auto view = source_views.back();

Loading…
Cancel
Save