Browse Source

Improved javascript support

merge-requests/365/head
eidheim 10 years ago
parent
commit
0dacfdedaa
  1. 2
      src/project.cc
  2. 46
      src/source.cc

2
src/project.cc

@ -553,7 +553,7 @@ void Project::Python::compile_and_run() {
} }
void Project::JavaScript::compile_and_run() { void Project::JavaScript::compile_and_run() {
auto command="node "+filesystem::escape_argument(Notebook::get().get_current_view()->file_path.string()); auto command="node --harmony "+filesystem::escape_argument(Notebook::get().get_current_view()->file_path.string());
Terminal::get().print("Running "+command+"\n"); Terminal::get().print("Running "+command+"\n");
Terminal::get().async_process(command, Notebook::get().get_current_view()->file_path.parent_path(), [command](int exit_status) { Terminal::get().async_process(command, Notebook::get().get_current_view()->file_path.parent_path(), [command](int exit_status) {
Terminal::get().async_print(command+" returned: "+std::to_string(exit_status)+'\n'); Terminal::get().async_print(command+" returned: "+std::to_string(exit_status)+'\n');

46
src/source.cc

@ -272,26 +272,6 @@ Source::View::View(const boost::filesystem::path &file_path, Glib::RefPtr<Gsv::L
set_tooltip_and_dialog_events(); set_tooltip_and_dialog_events();
set_tab_width(4); //Visual size of a \t hardcoded to be equal to visual size of 4 spaces
tab_char=Config::get().source.default_tab_char;
tab_size=Config::get().source.default_tab_size;
if(Config::get().source.auto_tab_char_and_size) {
auto tab_char_and_size=find_tab_char_and_size();
if(tab_char_and_size.first!=0) {
if(tab_char!=tab_char_and_size.first || tab_size!=tab_char_and_size.second) {
std::string tab_str;
if(tab_char_and_size.first==' ')
tab_str="<space>";
else
tab_str="<tab>";
}
tab_char=tab_char_and_size.first;
tab_size=tab_char_and_size.second;
}
}
set_tab_char_and_size(tab_char, tab_size);
bracket_regex=boost::regex("^([ \\t]*).*\\{ *$"); bracket_regex=boost::regex("^([ \\t]*).*\\{ *$");
no_bracket_statement_regex=boost::regex("^([ \\t]*)(if|for|else if|while) *\\(.*[^;}] *$"); no_bracket_statement_regex=boost::regex("^([ \\t]*)(if|for|else if|while) *\\(.*[^;}] *$");
no_bracket_no_para_statement_regex=boost::regex("^([ \\t]*)(else) *$"); no_bracket_no_para_statement_regex=boost::regex("^([ \\t]*)(else) *$");
@ -299,7 +279,7 @@ Source::View::View(const boost::filesystem::path &file_path, Glib::RefPtr<Gsv::L
if(language && (language->get_id()=="chdr" || language->get_id()=="cpphdr" || language->get_id()=="c" || if(language && (language->get_id()=="chdr" || language->get_id()=="cpphdr" || language->get_id()=="c" ||
language->get_id()=="cpp" || language->get_id()=="objc" || language->get_id()=="java" || language->get_id()=="cpp" || language->get_id()=="objc" || language->get_id()=="java" ||
language->get_id()=="js" || language->get_id()=="ts" || language->get_id()=="proto" || language->get_id()=="js" || language->get_id()=="ts" || language->get_id()=="proto" ||
language->get_id()=="c-sharp")) { language->get_id()=="c-sharp" || language->get_id()=="html")) {
is_bracket_language=true; is_bracket_language=true;
auto_indent=[this]() { auto_indent=[this]() {
@ -364,6 +344,26 @@ Source::View::View(const boost::filesystem::path &file_path, Glib::RefPtr<Gsv::L
} }
}; };
} }
set_tab_width(4); //Visual size of a \t hardcoded to be equal to visual size of 4 spaces
tab_char=Config::get().source.default_tab_char;
tab_size=Config::get().source.default_tab_size;
if(Config::get().source.auto_tab_char_and_size) {
auto tab_char_and_size=find_tab_char_and_size();
if(tab_char_and_size.first!=0) {
if(tab_char!=tab_char_and_size.first || tab_size!=tab_char_and_size.second) {
std::string tab_str;
if(tab_char_and_size.first==' ')
tab_str="<space>";
else
tab_str="<tab>";
}
tab_char=tab_char_and_size.first;
tab_size=tab_char_and_size.second;
}
}
set_tab_char_and_size(tab_char, tab_size);
} }
void Source::View::set_tab_char_and_size(char tab_char, unsigned tab_size) { void Source::View::set_tab_char_and_size(char tab_char, unsigned tab_size) {
@ -1538,9 +1538,7 @@ std::pair<char, unsigned> Source::View::find_tab_char_and_size() {
bool single_quoted=false; bool single_quoted=false;
bool double_quoted=false; bool double_quoted=false;
//For bracket languages, TODO: add more language ids //For bracket languages, TODO: add more language ids
if(language && (language->get_id()=="chdr" || language->get_id()=="cpphdr" || language->get_id()=="c" || if(is_bracket_language) {
language->get_id()=="cpp" || language->get_id()=="objc" || language->get_id()=="java" ||
language->get_id()=="javascript")) {
bool line_comment=false; bool line_comment=false;
bool comment=false; bool comment=false;
bool bracket_last_line=false; bool bracket_last_line=false;

Loading…
Cancel
Save