Browse Source

Removed Ubuntu specific code, and fixed Ctags::get_result on older systems

merge-requests/365/head
eidheim 10 years ago
parent
commit
b3ccd4bb89
  1. 11
      src/CMakeLists.txt
  2. 17
      src/ctags.cc
  3. 2
      src/ctags.h
  4. 747
      src/menu.cc
  5. 2
      src/source_clang.cc
  6. 2
      src/window.cc

11
src/CMakeLists.txt

@ -1,14 +1,3 @@
if(UNIX) #Checking if compiling on Ubuntu that for instance has a buggy menu system
find_program(LSB_RELEASE_BIN lsb_release)
if(LSB_RELEASE_BIN)
execute_process(COMMAND ${LSB_RELEASE_BIN} -is
OUTPUT_VARIABLE DISTRIBUTION OUTPUT_STRIP_TRAILING_WHITESPACE)
if((DISTRIBUTION STREQUAL Ubuntu) OR (DISTRIBUTION STREQUAL LinuxMint))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DJUCI_UBUNTU")
endif()
endif()
endif()
if(MSYS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMSYS_PROCESS_USE_SH")
endif()

17
src/ctags.cc

@ -13,13 +13,20 @@ std::pair<boost::filesystem::path, std::unique_ptr<std::stringstream> > Ctags::g
auto run_path=build->project_path;
std::string exclude;
if(!run_path.empty()) {
auto path=filesystem::get_relative_path(build->get_default_path(), build->project_path);
boost::system::error_code ec;
auto default_path=boost::filesystem::canonical(build->get_default_path(), ec);
if(!ec) {
auto path=filesystem::get_relative_path(default_path, build->project_path);
if(!path.empty())
exclude+=" --exclude="+path.string();
path=filesystem::get_relative_path(build->get_debug_path(), build->project_path);
}
auto debug_path=boost::filesystem::canonical(build->get_debug_path(), ec);
if(!ec) {
auto path=filesystem::get_relative_path(debug_path, build->project_path);
if(!path.empty())
exclude+=" --exclude="+path.string();
}
}
else {
if(!Directories::get().path.empty())
run_path=Directories::get().path;
@ -30,12 +37,12 @@ std::pair<boost::filesystem::path, std::unique_ptr<std::stringstream> > Ctags::g
std::stringstream stdin_stream;
//TODO: when debian stable gets newer g++ version that supports move on streams, remove unique_ptr below
std::unique_ptr<std::stringstream> stdout_stream(new std::stringstream());
auto command=Config::get().project.ctags_command+exclude+" --fields=n --sort=foldcase -I \"override noexcept\" -f- -R *";
auto command=Config::get().project.ctags_command+exclude+" --fields=n --sort=foldcase -I \"override noexcept\" -f - -R *";
Terminal::get().process(stdin_stream, *stdout_stream, command, run_path);
return {run_path, std::move(stdout_stream)};
}
Ctags::Location Ctags::parse_line(const std::string &line, bool markup) {
Ctags::Location Ctags::get_location(const std::string &line, bool markup) {
Location location;
const static std::regex regex("^([^\t]+)\t([^\t]+)\t(?:/\\^)?([ \t]*)(.+)$");
@ -133,7 +140,7 @@ Ctags::Location Ctags::get_location(const boost::filesystem::path &path, const s
while(std::getline(*result.second, line)) {
if(line.find(name)==std::string::npos)
continue;
auto location=Ctags::parse_line(line, false);
auto location=Ctags::get_location(line, false);
location.file_path=result.first/location.file_path;
//Find match score

2
src/ctags.h

@ -18,7 +18,7 @@ public:
static std::pair<boost::filesystem::path, std::unique_ptr<std::stringstream> > get_result(const boost::filesystem::path &path);
static Location parse_line(const std::string &line, bool markup);
static Location get_location(const std::string &line, bool markup);
static Location get_location(const boost::filesystem::path &path, const std::string &name, const std::string &type);
};

747
src/menu.cc

@ -3,422 +3,341 @@
#include <string>
#include <iostream>
//TODO: if Ubuntu ever gets fixed, cleanup the Ubuntu specific code
Menu::Menu() {
auto accels=Config::get().menu.keys;
for(auto &accel: accels) {
#ifdef JUCI_UBUNTU
size_t pos=0;
std::string second=accel.second;
while((pos=second.find('<', pos))!=std::string::npos) {
second.replace(pos, 1, "&lt;");
pos+=4;
}
pos=0;
while((pos=second.find('>', pos))!=std::string::npos) {
second.replace(pos, 1, "&gt;");
pos+=4;
}
if(second.size()>0)
accel.second="<attribute name='accel'>"+second+"</attribute>";
else
accel.second="";
#else
accel.second="";
#endif
}
ui_xml = R"RAW(
<interface>
<menu id='juci-menu'>
<section>
<item>
<attribute name='label' translatable='yes'>_About</attribute>
<attribute name='action'>app.about</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Preferences</attribute>
<attribute name='action'>app.preferences</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Quit</attribute>
<attribute name='action'>app.quit</attribute>
</item>
</section>
</menu>
<menu id='window-menu'>
<submenu>
<attribute name='label' translatable='yes'>_File</attribute>
<section>
<item>
<attribute name='label' translatable='yes'>_New _File</attribute>
<attribute name='action'>app.new_file</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_New _Folder</attribute>
<attribute name='action'>app.new_folder</attribute>
</item>
<submenu>
<attribute name='label' translatable='yes'>_New _Project</attribute>
<item>
<attribute name='label' translatable='no'>C++</attribute>
<attribute name='action'>app.new_project_cpp</attribute>
</item>
</submenu>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Open _File</attribute>
<attribute name='action'>app.open_file</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Open _Folder</attribute>
<attribute name='action'>app.open_folder</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Save</attribute>
<attribute name='action'>app.save</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Save _As</attribute>
<attribute name='action'>app.save_as</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Print</attribute>
<attribute name='action'>app.print</attribute>
</item>
</section>
</submenu>
<submenu>
<attribute name='label' translatable='yes'>_Edit</attribute>
<section>
<item>
<attribute name='label' translatable='yes'>_Undo</attribute>
<attribute name='action'>app.edit_undo</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Redo</attribute>
<attribute name='action'>app.edit_redo</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Cut</attribute>
<attribute name='action'>app.edit_cut</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Copy</attribute>
<attribute name='action'>app.edit_copy</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Paste</attribute>
<attribute name='action'>app.edit_paste</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Find</attribute>
<attribute name='action'>app.edit_find</attribute>
</item>
</section>
</submenu>
<submenu>
<attribute name='label' translatable='yes'>_Source</attribute>
<section>
<submenu>
<attribute name='label' translatable='yes'>_Spell _Check</attribute>
<item>
<attribute name='label' translatable='yes'>_Spell _Check _Buffer</attribute>
<attribute name='action'>app.source_spellcheck</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Clear _Spelling _Errors</attribute>
<attribute name='action'>app.source_spellcheck_clear</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Go _to _Next _Spelling _Error</attribute>
<attribute name='action'>app.source_spellcheck_next_error</attribute>
</item>
</submenu>
</section>
<section>
<submenu>
<attribute name='label' translatable='yes'>_Git</attribute>
<item>
<attribute name='label' translatable='yes'>_Go _to _Next _Diff</attribute>
<attribute name='action'>app.source_git_next_diff</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Show _Diff</attribute>
<attribute name='action'>app.source_git_show_diff</attribute>
</item>
</submenu>
</section>
<section>
<submenu>
<attribute name='label' translatable='yes'>_Indentation</attribute>
<item>
<attribute name='label' translatable='yes'>_Set _Current _Buffer _Tab</attribute>
<attribute name='action'>app.source_indentation_set_buffer_tab</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Auto-Indent _Current _Buffer</attribute>
<attribute name='action'>app.source_indentation_auto_indent_buffer</attribute>
</item>
</submenu>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Go _to _Line</attribute>
<attribute name='action'>app.source_goto_line</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Center _Cursor</attribute>
<attribute name='action'>app.source_center_cursor</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Find _Symbol (Ctags)</attribute>
<attribute name='action'>app.source_find_symbol_ctags</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Find _Documentation</attribute>
<attribute name='action'>app.source_find_documentation</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Go to Declaration</attribute>
<attribute name='action'>app.source_goto_declaration</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Go to Implementation</attribute>
<attribute name='action'>app.source_goto_implementation</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Go to Usage</attribute>
<attribute name='action'>app.source_goto_usage</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Go to Method</attribute>
<attribute name='action'>app.source_goto_method</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Rename</attribute>
<attribute name='action'>app.source_rename</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Implement _Method</attribute>
<attribute name='action'>app.source_implement_method</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Go to Next Diagnostic</attribute>
<attribute name='action'>app.source_goto_next_diagnostic</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Apply Fix-Its</attribute>
<attribute name='action'>app.source_apply_fix_its</attribute>
</item>
</section>
</submenu>
<submenu>
<attribute name='label' translatable='yes'>_Project</attribute>
<section>
<item>
<attribute name='label' translatable='yes'>_Set _Run _Arguments</attribute>
<attribute name='action'>app.project_set_run_arguments</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Compile _and _Run</attribute>
<attribute name='action'>app.compile_and_run</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Compile</attribute>
<attribute name='action'>app.compile</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Run _Command</attribute>
<attribute name='action'>app.run_command</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Kill _Last _Process</attribute>
<attribute name='action'>app.kill_last_running</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Force _Kill _Last _Process</attribute>
<attribute name='action'>app.force_kill_last_running</attribute>
</item>
</section>
</submenu>
<submenu>
<attribute name='label' translatable='yes'>_Debug</attribute>
<section>
<item>
<attribute name='label' translatable='yes'>_Set _Run _Arguments</attribute>
<attribute name='action'>app.debug_set_run_arguments</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Start/_Continue</attribute>
<attribute name='action'>app.debug_start_continue</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Stop</attribute>
<attribute name='action'>app.debug_stop</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Kill</attribute>
<attribute name='action'>app.debug_kill</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Step _Over</attribute>
<attribute name='action'>app.debug_step_over</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Step _Into</attribute>
<attribute name='action'>app.debug_step_into</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Step _Out</attribute>
<attribute name='action'>app.debug_step_out</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Backtrace</attribute>
<attribute name='action'>app.debug_backtrace</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Show _Variables</attribute>
<attribute name='action'>app.debug_show_variables</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Run Command</attribute>
<attribute name='action'>app.debug_run_command</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Toggle _Breakpoint</attribute>
<attribute name='action'>app.debug_toggle_breakpoint</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Go _to _Stop</attribute>
<attribute name='action'>app.debug_goto_stop</attribute>
</item>
</section>
</submenu>
ui_xml =
"<interface>"
" <menu id='juci-menu'>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_About</attribute>"
" <attribute name='action'>app.about</attribute>"
+accels["about"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Preferences</attribute>"
" <attribute name='action'>app.preferences</attribute>"
+accels["preferences"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Quit</attribute>"
" <attribute name='action'>app.quit</attribute>"
+accels["quit"]+ //For Ubuntu...
" </item>"
" </section>"
" </menu>"
""
" <menu id='window-menu'>"
" <submenu>"
" <attribute name='label' translatable='yes'>_File</attribute>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_New _File</attribute>"
" <attribute name='action'>app.new_file</attribute>"
+accels["new_file"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_New _Folder</attribute>"
" <attribute name='action'>app.new_folder</attribute>"
+accels["new_folder"]+ //For Ubuntu...
" </item>"
" <submenu>"
" <attribute name='label' translatable='yes'>_New _Project</attribute>"
" <item>"
" <attribute name='label' translatable='no'>C++</attribute>"
" <attribute name='action'>app.new_project_cpp</attribute>"
+accels["new_project_cpp"]+ //For Ubuntu...
" </item>"
" </submenu>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Open _File</attribute>"
" <attribute name='action'>app.open_file</attribute>"
+accels["open_file"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Open _Folder</attribute>"
" <attribute name='action'>app.open_folder</attribute>"
+accels["open_folder"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Save</attribute>"
" <attribute name='action'>app.save</attribute>"
+accels["save"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Save _As</attribute>"
" <attribute name='action'>app.save_as</attribute>"
+accels["save_as"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Print</attribute>"
" <attribute name='action'>app.print</attribute>"
+accels["print"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
""
" <submenu>"
" <attribute name='label' translatable='yes'>_Edit</attribute>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Undo</attribute>"
" <attribute name='action'>app.edit_undo</attribute>"
+accels["edit_undo"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Redo</attribute>"
" <attribute name='action'>app.edit_redo</attribute>"
+accels["edit_redo"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Cut</attribute>"
" <attribute name='action'>app.edit_cut</attribute>"
+accels["edit_cut"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Copy</attribute>"
" <attribute name='action'>app.edit_copy</attribute>"
+accels["edit_copy"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Paste</attribute>"
" <attribute name='action'>app.edit_paste</attribute>"
+accels["edit_paste"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Find</attribute>"
" <attribute name='action'>app.edit_find</attribute>"
+accels["edit_find"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
""
" <submenu>"
" <attribute name='label' translatable='yes'>_Source</attribute>"
" <section>"
" <submenu>"
" <attribute name='label' translatable='yes'>_Spell _Check</attribute>"
" <item>"
" <attribute name='label' translatable='yes'>_Spell _Check _Buffer</attribute>"
" <attribute name='action'>app.source_spellcheck</attribute>"
+accels["source_spellcheck"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Clear _Spelling _Errors</attribute>"
" <attribute name='action'>app.source_spellcheck_clear</attribute>"
+accels["source_spellcheck_clear"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Go _to _Next _Spelling _Error</attribute>"
" <attribute name='action'>app.source_spellcheck_next_error</attribute>"
+accels["source_spellcheck_next_error"]+ //For Ubuntu...
" </item>"
" </submenu>"
" </section>"
" <section>"
" <submenu>"
" <attribute name='label' translatable='yes'>_Git</attribute>"
" <item>"
" <attribute name='label' translatable='yes'>_Go _to _Next _Diff</attribute>"
" <attribute name='action'>app.source_git_next_diff</attribute>"
+accels["source_git_next_diff"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Show _Diff</attribute>"
" <attribute name='action'>app.source_git_show_diff</attribute>"
+accels["source_git_show_diff"]+ //For Ubuntu...
" </item>"
" </submenu>"
" </section>"
" <section>"
" <submenu>"
" <attribute name='label' translatable='yes'>_Indentation</attribute>"
" <item>"
" <attribute name='label' translatable='yes'>_Set _Current _Buffer _Tab</attribute>"
" <attribute name='action'>app.source_indentation_set_buffer_tab</attribute>"
+accels["source_indentation_set_buffer_tab"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Auto-Indent _Current _Buffer</attribute>"
" <attribute name='action'>app.source_indentation_auto_indent_buffer</attribute>"
+accels["source_indentation_auto_indent_buffer"]+ //For Ubuntu...
" </item>"
" </submenu>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Go _to _Line</attribute>"
" <attribute name='action'>app.source_goto_line</attribute>"
+accels["source_goto_line"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Center _Cursor</attribute>"
" <attribute name='action'>app.source_center_cursor</attribute>"
+accels["source_center_cursor"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Find _Symbol (Ctags)</attribute>"
" <attribute name='action'>app.source_find_symbol_ctags</attribute>"
+accels["source_find_symbol_ctags"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Find _Documentation</attribute>"
" <attribute name='action'>app.source_find_documentation</attribute>"
+accels["source_find_documentation"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Go to Declaration</attribute>"
" <attribute name='action'>app.source_goto_declaration</attribute>"
+accels["source_goto_declaration"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Go to Implementation</attribute>"
" <attribute name='action'>app.source_goto_implementation</attribute>"
+accels["source_goto_implementation"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Go to Usage</attribute>"
" <attribute name='action'>app.source_goto_usage</attribute>"
+accels["source_goto_usage"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Go to Method</attribute>"
" <attribute name='action'>app.source_goto_method</attribute>"
+accels["source_goto_method"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Rename</attribute>"
" <attribute name='action'>app.source_rename</attribute>"
+accels["source_rename"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Implement _Method</attribute>"
" <attribute name='action'>app.source_implement_method</attribute>"
+accels["source_implement_method"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Go to Next Diagnostic</attribute>"
" <attribute name='action'>app.source_goto_next_diagnostic</attribute>"
+accels["source_goto_next_diagnostic"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Apply Fix-Its</attribute>"
" <attribute name='action'>app.source_apply_fix_its</attribute>"
+accels["source_apply_fix_its"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
""
" <submenu>"
" <attribute name='label' translatable='yes'>_Project</attribute>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Set _Run _Arguments</attribute>"
" <attribute name='action'>app.project_set_run_arguments</attribute>"
+accels["project_set_run_arguments"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Compile _and _Run</attribute>"
" <attribute name='action'>app.compile_and_run</attribute>"
+accels["compile_and_run"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Compile</attribute>"
" <attribute name='action'>app.compile</attribute>"
+accels["compile"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Run _Command</attribute>"
" <attribute name='action'>app.run_command</attribute>"
+accels["run_command"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Kill _Last _Process</attribute>"
" <attribute name='action'>app.kill_last_running</attribute>"
+accels["kill_last_running"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Force _Kill _Last _Process</attribute>"
" <attribute name='action'>app.force_kill_last_running</attribute>"
+accels["force_kill_last_running"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
""
" <submenu>"
" <attribute name='label' translatable='yes'>_Debug</attribute>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Set _Run _Arguments</attribute>"
" <attribute name='action'>app.debug_set_run_arguments</attribute>"
+accels["debug_set_run_arguments"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Start/_Continue</attribute>"
" <attribute name='action'>app.debug_start_continue</attribute>"
+accels["debug_start_continue"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Stop</attribute>"
" <attribute name='action'>app.debug_stop</attribute>"
+accels["debug_stop"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Kill</attribute>"
" <attribute name='action'>app.debug_kill</attribute>"
+accels["debug_kill"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Step _Over</attribute>"
" <attribute name='action'>app.debug_step_over</attribute>"
+accels["debug_step_over"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Step _Into</attribute>"
" <attribute name='action'>app.debug_step_into</attribute>"
+accels["debug_step_into"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Step _Out</attribute>"
" <attribute name='action'>app.debug_step_out</attribute>"
+accels["debug_step_out"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Backtrace</attribute>"
" <attribute name='action'>app.debug_backtrace</attribute>"
+accels["debug_backtrace"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Show _Variables</attribute>"
" <attribute name='action'>app.debug_show_variables</attribute>"
+accels["debug_show_variables"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Run Command</attribute>"
" <attribute name='action'>app.debug_run_command</attribute>"
+accels["debug_run_command"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Toggle _Breakpoint</attribute>"
" <attribute name='action'>app.debug_toggle_breakpoint</attribute>"
+accels["debug_toggle_breakpoint"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Go _to _Stop</attribute>"
" <attribute name='action'>app.debug_goto_stop</attribute>"
+accels["debug_goto_stop"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
""
" <submenu>"
" <attribute name='label' translatable='yes'>_Window</attribute>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Next _Tab</attribute>"
" <attribute name='action'>app.next_tab</attribute>"
+accels["next_tab"]+ //For Ubuntu...
" </item>"
" <item>"
" <attribute name='label' translatable='yes'>_Previous _Tab</attribute>"
" <attribute name='action'>app.previous_tab</attribute>"
+accels["previous_tab"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Close _Tab</attribute>"
" <attribute name='action'>app.close_tab</attribute>"
+accels["close_tab"]+ //For Ubuntu...
" </item>"
" </section>"
" <section>"
" <item>"
" <attribute name='label' translatable='yes'>_Toggle _Split</attribute>"
" <attribute name='action'>app.window_toggle_split</attribute>"
+accels["window_toggle_split"]+ //For Ubuntu...
" </item>"
" </section>"
" </submenu>"
" </menu>"
"</interface>";
<submenu>
<attribute name='label' translatable='yes'>_Window</attribute>
<section>
<item>
<attribute name='label' translatable='yes'>_Next _Tab</attribute>
<attribute name='action'>app.next_tab</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Previous _Tab</attribute>
<attribute name='action'>app.previous_tab</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Close _Tab</attribute>
<attribute name='action'>app.close_tab</attribute>
</item>
</section>
<section>
<item>
<attribute name='label' translatable='yes'>_Toggle _Split</attribute>
<attribute name='action'>app.window_toggle_split</attribute>
</item>
</section>
</submenu>
</menu>
</interface>
)RAW";
}
void Menu::add_action(const std::string &name, std::function<void()> action) {

2
src/source_clang.cc

@ -805,7 +805,7 @@ std::unordered_map<std::string, std::string> Source::ClangViewAutocomplete::auto
Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file_path, Glib::RefPtr<Gsv::Language> language) :
Source::ClangViewParse(file_path, language) {
similar_identifiers_tag=get_buffer()->create_tag();
similar_identifiers_tag->property_weight()=1000; //TODO: replace with Pango::WEIGHT_ULTRAHEAVY in 2016 or so (when Ubuntu 14 is history)
similar_identifiers_tag->property_weight()=1000; //TODO: Replace 1000 with Pango::WEIGHT_ULTRAHEAVY when debian stable gets updated in 2017
get_buffer()->signal_changed().connect([this]() {
if(!renaming && last_tagged_identifier) {

2
src/window.cc

@ -457,7 +457,7 @@ void Window::set_menu_actions() {
std::string line;
while(std::getline(*stream, line)) {
auto location=Ctags::parse_line(line, true);
auto location=Ctags::get_location(line, true);
std::string row=location.file_path.string()+":"+std::to_string(location.line+1)+": "+location.source;
(*rows)[row]=Source::Offset(location.line, location.index, location.file_path);

Loading…
Cancel
Save