diff --git a/.travis.yml b/.travis.yml index 1383c0e6..bf566730 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ sudo: required +# osx_image: xcode7.3 + env: - distribution: ubuntu - distribution: fedora @@ -7,15 +9,19 @@ env: - distribution: debian-testing - distribution: debian +#matrix: +# include: +# - os: osx + services: - docker - + before_install: - - ./ci/update_travis.sh + - ./ci/update_ci.sh #travis_wait 90 ./ci/update_ci.sh script: - script=compile CXX=clang++ CC=clang ./ci/execute.sh - script=clean ./ci/execute.sh - - script=compile ./ci/execute.sh + - script=compile CXX=g++ CC=gcc ./ci/execute.sh - script=static_analysis ./ci/execute.sh - - script=compile make_command="broadwayd & make test" ./ci/execute.sh \ No newline at end of file + - script=compile make_command="broadwayd & CTEST_OUTPUT_ON_FAILURE=1 make test" ./ci/execute.sh diff --git a/README.md b/README.md index b74dcb3f..9f50c083 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# juCi++ [![Build Status](https://travis-ci.org/cppit/jucipp.svg?branch=master)](https://travis-ci.org/cppit/jucipp) +# juCi++ [![Build Status](https://travis-ci.org/cppit/jucipp.svg?branch=master)](https://travis-ci.org/cppit/jucipp) [![Build status](https://ci.appveyor.com/api/projects/status/tj8ants9q8ouuoob/branch/master?svg=true)](https://ci.appveyor.com/project/zalox/jucipp-6hwdu/branch/master) + ###### a lightweight, platform independent C++-IDE with support for C++11, C++14, and experimental C++17 features depending on libclang version. ## About diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 00000000..9fed3a7d --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,15 @@ +platform: + - x64 + +environment: + MSYSTEM: MSYS + +before_build: + - C:\msys64\usr\bin\pacman --noconfirm --sync --refresh --refresh pacman + - C:\msys64\usr\bin\pacman --noconfirm --sync --refresh --refresh git + - C:\msys64\usr\bin\pacman --noconfirm --sync --refresh --refresh --sysupgrade --sysupgrade + - C:\msys64\usr\bin\bash -lc "$(cygpath ${APPVEYOR_BUILD_FOLDER})/ci/update_ci.sh" + +build_script: + - C:\msys64\usr\bin\bash -lc "script=compile $(cygpath ${APPVEYOR_BUILD_FOLDER})/ci/execute.sh" + - C:\msys64\usr\bin\bash -lc "script=compile make_command='CTEST_OUTPUT_ON_FAILURE=1 make test' $(cygpath ${APPVEYOR_BUILD_FOLDER})/ci/execute.sh" diff --git a/ci/compile.sh b/ci/compile.sh index 9a072b0f..59d86f21 100755 --- a/ci/compile.sh +++ b/ci/compile.sh @@ -1,14 +1,25 @@ #!/bin/bash if [ "${cmake_command}" == "" ]; then - cmake_command="cmake -DENABLE_TESTING=1 -DCMAKE_CXX_FLAGS=-Werror .." + if [ "$APPVEYOR" != "" ]; then + if [ "$PLATFORM" == "x64" ]; then + mingw="mingw64" + else + mingw="mingw32" + fi + cmake_command="cmake -G\"MSYS Makefiles\" -DCMAKE_INSTALL_PREFIX=/${mingw} -DENABLE_TESTING=1 -DCMAKE_CXX_FLAGS=-Werror .." + make_command="make" + else + cmake_command="cmake -DENABLE_TESTING=1 -DCMAKE_CXX_FLAGS=-Werror .." + fi fi if [ "${make_command}" == "" ]; then make_command="make -j 2" fi -cd jucipp || exit -mkdir -p build && cd build || exit -sh -c "${cmake_command}" || exit -exec sh -c "${make_command}" \ No newline at end of file +cd jucipp || echo "Can't cd into jucipp" +git submodule update --init --recursive # appveyor doesn't checkout recursively +mkdir -p build && cd build || echo "Error making build directory" +sh -c "${cmake_command}" || echo "Cmake configuration failed" +exec sh -c "${make_command}" diff --git a/ci/execute.sh b/ci/execute.sh index a90cee56..18df1d60 100755 --- a/ci/execute.sh +++ b/ci/execute.sh @@ -19,7 +19,28 @@ function linux () { #TODO Should run compile/install instructions for osx function osx () { - true + cd .. || (echo "Error changing directory";return 1) + if [ "${script}" == "clean" ]; then + sudo rm -rf "./jucipp/build" + return 0 + fi + sh -c "./jucipp/ci/${script}.sh" || return 1 +} + +function windows () { + export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" + bf=$(cygpath ${APPVEYOR_BUILD_FOLDER}) + cd "$bf" || (echo "Error changing directory"; return 1) + if [ "${script}" == "clean" ]; then + sudo rm "./build" -rf + return 0 + fi + sh -c "${bf}/ci/${script}.sh" } + +if [ "$TRAVIS_OS_NAME" == "" ]; then + TRAVIS_OS_NAME=windows +fi + $TRAVIS_OS_NAME diff --git a/ci/update_ci.sh b/ci/update_ci.sh new file mode 100755 index 00000000..795ac870 --- /dev/null +++ b/ci/update_ci.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +function linux () { + sudo apt-get update + sudo apt-get purge lxc-docker + sudo apt-get install --yes --force-yes -o Dpkg::Options::="--force-confnew" linux-image-extra-$(uname -r) docker-engine + sudo service docker stop || exit + sudo rm -rf /var/lib/docker || exit + sudo service docker start || exit +} + +function brew_install() { + (brew outdated "$1" || brew install $1) || (echo "Error installing $1"; return 1) +} + +function osx () { + brew update || return 1 + brew uninstall llvm --force || return 1 + brew upgrade --all || return 1 + brew update || return 1 + brew upgrade --all || return 1 + brew install --with-clang llvm + brew_install "boost" || return 1 + brew_install "aspell" || return 1 + brew_install "clang-format" || return 1 + brew_install "pkg-config" || return 1 + brew_install "gtksourceviewmm3" || return 1 +} + +function windows () { + arch=x86_64 + if [ "$PLATFORM" == "x86" ]; then + arch=i686 + fi + sh -c "pacman -S --noconfirm git mingw-w64-${arch}-cmake make mingw-w64-${arch}-toolchain mingw-w64-${arch}-clang mingw-w64-${arch}-gtkmm3 mingw-w64-${arch}-gtksourceviewmm3 mingw-w64-${arch}-boost mingw-w64-${arch}-aspell mingw-w64-${arch}-aspell-en" +} + +if [ "$TRAVIS_OS_NAME" == "" ]; then + TRAVIS_OS_NAME=windows +fi + +$TRAVIS_OS_NAME \ No newline at end of file diff --git a/ci/update_travis.sh b/ci/update_travis.sh deleted file mode 100755 index 8969baee..00000000 --- a/ci/update_travis.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -function linux () { - sudo apt-get update - sudo apt-get purge lxc-docker - sudo apt-get install --yes --force-yes -o Dpkg::Options::="--force-confnew" linux-image-extra-$(uname -r) docker-engine - sudo service docker stop || exit - sudo rm -rf /var/lib/docker || exit - sudo service docker start || exit -} - -# TODO method should update osx, brew, packages etc needed for juCi++ -function osx () { - brew update - brew rm llvm - brew doctor - brew upgrade - brew install --with-clang --with-lldb llvm - brew install cmake pkg-config boost homebrew/x11/gtksourceviewmm3 aspell clang-format -} - -$TRAVIS_OS_NAME \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9a3f2556..1b750f12 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -44,6 +44,7 @@ set(global_libraries set(project_files config.cc dialogs.cc + dialogs_unix.cc directories.cc entrybox.cc info.cc @@ -56,8 +57,6 @@ set(project_files terminal.cc tooltips.cc window.cc - - ../tiny-process-library/process.cpp ) #Files used both in ../src and ../tests @@ -83,6 +82,8 @@ set(project_shared_files ../libclangmm/src/Tokens.cc ../libclangmm/src/TranslationUnit.cc ../libclangmm/src/Utility.cc + + ../tiny-process-library/process.cpp ) if(LIBLLDB_FOUND) @@ -90,9 +91,9 @@ if(LIBLLDB_FOUND) endif() if(MSYS) - list(APPEND project_files dialogs_unix.cc ../tiny-process-library/process_win.cpp) + list(APPEND project_shared_files ../tiny-process-library/process_win.cpp) else() - list(APPEND project_files dialogs_unix.cc ../tiny-process-library/process_unix.cpp) + list(APPEND project_shared_files ../tiny-process-library/process_unix.cpp) endif() include_directories(${global_includes}) diff --git a/src/config.cc b/src/config.cc index 363bcfdd..11680f66 100644 --- a/src/config.cc +++ b/src/config.cc @@ -49,7 +49,7 @@ void Config::load() { catch(const std::exception &e) { ::Terminal::get().print("Error: could not parse "+config_json+": "+e.what()+"\n", true); std::stringstream ss; - ss << configjson; + ss << default_config_file; boost::property_tree::read_json(ss, cfg); retrieve_config(); } @@ -64,7 +64,7 @@ void Config::find_or_create_config_files() { boost::filesystem::create_directories(home/"plugins"); if (!boost::filesystem::exists(config_json)) - filesystem::write(config_json, configjson); + filesystem::write(config_json, default_config_file); auto juci_style_path = home/"styles"; boost::filesystem::create_directories(juci_style_path); // io exp captured by calling method @@ -163,7 +163,7 @@ void Config::update_config_file() { try { if(cfg.get("version")!=JUCI_VERSION) { std::stringstream ss; - ss << configjson; + ss << default_config_file; boost::property_tree::read_json(ss, default_cfg); cfg_ok=false; if(cfg.count("version")>0) @@ -199,6 +199,7 @@ void Config::get_source() { source.default_tab_char = source_json.get("default_tab_char"); source.default_tab_size = source_json.get("default_tab_size"); source.auto_tab_char_and_size = source_json.get("auto_tab_char_and_size"); + source.tab_indents_line = source_json.get("tab_indents_line"); source.wrap_lines = source_json.get("wrap_lines"); diff --git a/src/config.h b/src/config.h index b96f4e09..3647631d 100644 --- a/src/config.h +++ b/src/config.h @@ -64,6 +64,7 @@ class Config { bool auto_tab_char_and_size; char default_tab_char; unsigned default_tab_size; + bool tab_indents_line; bool wrap_lines; bool highlight_current_line; bool show_line_numbers; diff --git a/src/debug_clang.cc b/src/debug_clang.cc index 143cba4b..b5fe4791 100644 --- a/src/debug_clang.cc +++ b/src/debug_clang.cc @@ -357,7 +357,7 @@ void Debug::Clang::select_frame(uint32_t frame_index, uint32_t thread_index_id) } } -void Debug::Clang::delete_debug() { +void Debug::Clang::cancel() { kill(); if(debug_thread.joinable()) debug_thread.join(); diff --git a/src/debug_clang.h b/src/debug_clang.h index 0e9001aa..3be3c1ba 100644 --- a/src/debug_clang.h +++ b/src/debug_clang.h @@ -55,7 +55,7 @@ namespace Debug { std::vector get_variables(); void select_frame(uint32_t frame_index, uint32_t thread_index_id=0); - void delete_debug(); //can't use delete as function name + void cancel(); std::string get_value(const std::string &variable, const boost::filesystem::path &file_path, unsigned int line_nr, unsigned int line_index); std::string get_return_value(const boost::filesystem::path &file_path, unsigned int line_nr, unsigned int line_index); diff --git a/src/files.h b/src/files.h index 906c44c6..028e2e5f 100644 --- a/src/files.h +++ b/src/files.h @@ -2,331 +2,342 @@ #define JUCI_FILES_H_ #include -#define JUCI_VERSION "1.1.3-3" - -const std::string configjson = -"{\n" -" \"version\": \""+std::string(JUCI_VERSION)+"\",\n" -" \"default_window_size\": {\n" -" \"width\": 800,\n" -" \"height\": 600\n" -" },\n" -" \"gtk_theme\": {\n" -" \"name_comment\": \"Use \\\"\\\" for default theme, At least these two exist on all systems: Adwaita, Raleigh\",\n" -" \"name\": \"\",\n" -" \"variant_comment\": \"Use \\\"\\\" for default variant, and \\\"dark\\\" for dark theme variant. Note that not all themes support dark variant, but for instance Adwaita does\",\n" -" \"variant\": \"\"\n" -" },\n" -" \"terminal\": {\n" -" \"history_size\": 1000,\n" -" \"font_comment\": \"Use \\\"\\\" to use source.font with slightly smaller size\",\n" -" \"font\": \"\"\n" -" },\n" -" \"source\": {\n" -" \"style_comment\": \"Use \\\"\\\" for default style, and for instance juci-dark or juci-dark-blue together with dark gtk_theme variant. Styles from normal gtksourceview install: classic, cobalt, kate, oblivion, solarized-dark, solarized-light, tango\",\n" -" \"style\": \"juci-light\",\n" -" \"font_comment\": \"Use \\\"\\\" for default font, and for instance \\\"Monospace 12\\\" to also set size\",\n" +#define JUCI_VERSION "1.1.3-4" + +const std::string default_config_file = R"RAW({ + "version": ")RAW"+std::string(JUCI_VERSION)+R"RAW(", + "default_window_size": { + "width": 800, + "height": 600 + }, + "gtk_theme": { + "name_comment": "Use \"\" for default theme, At least these two exist on all systems: Adwaita, Raleigh", + "name": "", + "variant_comment": "Use \"\" for default variant, and \"dark\" for dark theme variant. Note that not all themes support dark variant, but for instance Adwaita does", + "variant": "" + }, + "terminal": { + "history_size": 1000, + "font_comment": "Use \"\" to use source.font with slightly smaller size", + "font": "" + }, + "source": { + "style_comment": "Use \"\" for default style, and for instance juci-dark or juci-dark-blue together with dark gtk_theme variant. Styles from normal gtksourceview install: classic, cobalt, kate, oblivion, solarized-dark, solarized-light, tango", + "style": "juci-light", + "font_comment": "Use \"\" for default font, and for instance \"Monospace 12\" to also set size",)RAW" #ifdef __APPLE__ -" \"font\": \"Menlo 11\",\n" +R"RAW( + "font": "Menlo 11",)RAW" #else #ifdef _WIN32 -" \"font\": \"Consolas\",\n" +R"RAW( + "font": "Consolas",)RAW" #else -" \"font\": \"Monospace\",\n" +R"RAW( + "font": "Monospace",)RAW" #endif #endif -" \"cleanup_whitespace_characters_comment\": \"Remove trailing whitespace characters on save, and add trailing newline if missing\",\n" -" \"cleanup_whitespace_characters\": false,\n" -" \"show_whitespace_characters_comment\": \"Determines what kind of whitespaces should be drawn. Use comma-separated list of: space, tab, newline, nbsp, leading, text, trailing or all\",\n" -" \"show_whitespace_characters\": \"\",\n" -" \"show_map\": true,\n" -" \"map_font_size\": \"1\",\n" -" \"spellcheck_language_comment\": \"Use \\\"\\\" to set language from your locale settings\",\n" -" \"spellcheck_language\": \"en_US\",\n" -" \"auto_tab_char_and_size_comment\": \"Use false to always use default tab char and size\",\n" -" \"auto_tab_char_and_size\": true,\n" -" \"default_tab_char_comment\": \"Use \\\"\\t\\\" for regular tab\",\n" -" \"default_tab_char\": \" \",\n" -" \"default_tab_size\": 2,\n" -" \"wrap_lines\": false,\n" -" \"highlight_current_line\": true,\n" -" \"show_line_numbers\": true,\n" -" \"clang_types\": {\n" -" \"8\": \"def:function\",\n" -" \"21\": \"def:function\",\n" -" \"22\": \"def:identifier\",\n" -" \"24\": \"def:function\",\n" -" \"25\": \"def:function\",\n" -" \"43\": \"def:type\",\n" -" \"44\": \"def:type\",\n" -" \"45\": \"def:type\",\n" -" \"46\": \"def:identifier\",\n" -" \"109\": \"def:string\",\n" -" \"702\": \"def:statement\",\n" -" \"705\": \"def:comment\"\n" -" },\n" -" \"clang_format_style_comment\": \"IndentWidth, AccessModifierOffset and UseTab are set automatically. See http://clang.llvm.org/docs/ClangFormatStyleOptions.html\",\n" -" \"clang_format_style\": \"ColumnLimit: 0, MaxEmptyLinesToKeep: 2\"\n" -" },\n" -" \"keybindings\": {\n" -" \"preferences\": \"comma\",\n" -" \"quit\": \"q\",\n" -" \"new_file\": \"n\",\n" -" \"new_folder\": \"n\",\n" -" \"open_file\": \"o\",\n" -" \"open_folder\": \"o\",\n" -" \"save\": \"s\",\n" -" \"save_as\": \"s\",\n" -" \"print\": \"p\",\n" -" \"edit_undo\": \"z\",\n" -" \"edit_redo\": \"z\",\n" -" \"edit_cut\": \"x\",\n" -" \"edit_copy\": \"c\",\n" -" \"edit_paste\": \"v\",\n" -" \"edit_find\": \"f\",\n" -" \"edit_set_tab\": \"\",\n" -" \"source_spellcheck\": \"\",\n" -" \"source_spellcheck_clear\": \"\",\n" -" \"source_spellcheck_next_error\": \"e\",\n" -" \"source_indentation_set_buffer_tab\": \"\",\n" -" \"source_indentation_auto_indent_buffer\": \"i\",\n" -" \"source_goto_line\": \"g\",\n" -" \"source_center_cursor\": \"l\",\n" -" \"source_find_documentation\": \"d\",\n" -" \"source_goto_declaration\": \"d\",\n" -" \"source_goto_implementation\": \"i\",\n" -" \"source_goto_usage\": \"u\",\n" -" \"source_goto_method\": \"m\",\n" -" \"source_rename\": \"r\",\n" -" \"source_goto_next_diagnostic\": \"e\",\n" -" \"source_apply_fix_its\": \"space\",\n" -" \"project_set_run_arguments\": \"\",\n" -" \"compile_and_run\": \"Return\",\n" -" \"compile\": \"Return\",\n" -" \"run_command\": \"Return\",\n" -" \"kill_last_running\": \"Escape\",\n" -" \"force_kill_last_running\": \"Escape\",\n" -" \"debug_set_run_arguments\": \"\",\n" -" \"debug_start_continue\": \"y\",\n" -" \"debug_stop\": \"y\",\n" -" \"debug_kill\": \"k\",\n" -" \"debug_step_over\": \"j\",\n" -" \"debug_step_into\": \"t\",\n" -" \"debug_step_out\": \"t\",\n" -" \"debug_backtrace\": \"j\",\n" -" \"debug_show_variables\": \"b\",\n" -" \"debug_run_command\": \"Return\",\n" -" \"debug_toggle_breakpoint\": \"b\",\n" -" \"debug_goto_stop\": \"l\",\n" +R"RAW( + "cleanup_whitespace_characters_comment": "Remove trailing whitespace characters on save, and add trailing newline if missing", + "cleanup_whitespace_characters": false, + "show_whitespace_characters_comment": "Determines what kind of whitespaces should be drawn. Use comma-separated list of: space, tab, newline, nbsp, leading, text, trailing or all", + "show_whitespace_characters": "", + "show_map": true, + "map_font_size": "1", + "spellcheck_language_comment": "Use \"\" to set language from your locale settings", + "spellcheck_language": "en_US", + "auto_tab_char_and_size_comment": "Use false to always use default tab char and size", + "auto_tab_char_and_size": true, + "default_tab_char_comment": "Use \"\t\" for regular tab", + "default_tab_char": " ", + "default_tab_size": 2, + "tab_indents_line": true, + "wrap_lines": false, + "highlight_current_line": true, + "show_line_numbers": true, + "clang_types": { + "8": "def:function", + "21": "def:function", + "22": "def:identifier", + "24": "def:function", + "25": "def:function", + "43": "def:type", + "44": "def:type", + "45": "def:type", + "46": "def:identifier", + "109": "def:string", + "702": "def:statement", + "705": "def:comment" + }, + "clang_format_style_comment": "IndentWidth, AccessModifierOffset and UseTab are set automatically. See http://clang.llvm.org/docs/ClangFormatStyleOptions.html", + "clang_format_style": "ColumnLimit: 0, MaxEmptyLinesToKeep: 2" + }, + "keybindings": { + "preferences": "comma", + "quit": "q", + "new_file": "n", + "new_folder": "n", + "open_file": "o", + "open_folder": "o", + "save": "s", + "save_as": "s", + "print": "p", + "edit_undo": "z", + "edit_redo": "z", + "edit_cut": "x", + "edit_copy": "c", + "edit_paste": "v", + "edit_find": "f", + "edit_set_tab": "", + "source_spellcheck": "", + "source_spellcheck_clear": "", + "source_spellcheck_next_error": "e", + "source_indentation_set_buffer_tab": "", + "source_indentation_auto_indent_buffer": "i", + "source_goto_line": "g", + "source_center_cursor": "l", + "source_find_documentation": "d", + "source_goto_declaration": "d", + "source_goto_implementation": "i", + "source_goto_usage": "u", + "source_goto_method": "m", + "source_rename": "r", + "source_goto_next_diagnostic": "e", + "source_apply_fix_its": "space", + "project_set_run_arguments": "", + "compile_and_run": "Return", + "compile": "Return", + "run_command": "Return", + "kill_last_running": "Escape", + "force_kill_last_running": "Escape", + "debug_set_run_arguments": "", + "debug_start_continue": "y", + "debug_stop": "y", + "debug_kill": "k", + "debug_step_over": "j", + "debug_step_into": "t", + "debug_step_out": "t", + "debug_backtrace": "j", + "debug_show_variables": "b", + "debug_run_command": "Return", + "debug_toggle_breakpoint": "b", + "debug_goto_stop": "l",)RAW" #ifdef __linux -" \"next_tab\": \"Tab\",\n" -" \"previous_tab\": \"Tab\",\n" +R"RAW( + "next_tab": "Tab", + "previous_tab": "Tab",)RAW" #else -" \"next_tab\": \"Right\",\n" -" \"previous_tab\": \"Left\",\n" +R"RAW( + "next_tab": "Right", + "previous_tab": "Left",)RAW" #endif -" \"close_tab\": \"w\"\n" -" },\n" -" \"project\": {\n" -" \"default_build_path_comment\": \"Use to insert the project top level directory name\",\n" -" \"default_build_path\": \"./build\",\n" -" \"debug_build_path_comment\": \"Use to insert the project top level directory name, and to insert your default_build_path setting.\",\n" -" \"debug_build_path\": \"/debug\",\n" +R"RAW( + "close_tab": "w" + }, + "project": { + "default_build_path_comment": "Use to insert the project top level directory name", + "default_build_path": "./build", + "debug_build_path_comment": "Use to insert the project top level directory name, and to insert your default_build_path setting.", + "debug_build_path": "/debug",)RAW" #ifdef _WIN32 -" \"cmake_command\": \"cmake -G\\\"MSYS Makefiles\\\"\",\n" +R"RAW( + "cmake_command": "cmake -G\"MSYS Makefiles\"",)RAW" #else -" \"cmake_command\": \"cmake\",\n" +R"RAW( + "cmake_command": "cmake",)RAW" #endif -" \"make_command\": \"cmake --build .\",\n" -" \"save_on_compile_or_run\": true,\n" -" \"clear_terminal_on_compile\": true\n" -" },\n" -" \"documentation_searches\": {\n" -" \"clang\": {\n" -" \"separator\": \"::\",\n" -" \"queries\": {\n" -" \"@empty\": \"https://www.google.com/search?btnI&q=c%2B%2B+\",\n" -" \"std\": \"https://www.google.com/search?btnI&q=site:http://www.cplusplus.com/reference/+\",\n" -" \"boost\": \"https://www.google.com/search?btnI&q=site:http://www.boost.org/doc/libs/1_59_0/+\",\n" -" \"Gtk\": \"https://www.google.com/search?btnI&q=site:https://developer.gnome.org/gtkmm/stable/+\",\n" -" \"@any\": \"https://www.google.com/search?btnI&q=\"\n" -" }\n" -" }\n" -" }\n" -"}\n"; - -const std::string juci_light_style = -"\n" -"\n" -"\n" -" juCi++ team\n" -" <_description>Default juCi++ style\n" -"\n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -"\n" -"