From 7a855549247bffa64ce8334423200eecb88ca5e7 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 31 Aug 2014 11:01:53 -0400 Subject: [PATCH] TW-1405 - TW-1405 Add command _zshattributes (thanks to Roman Inflianskas). --- AUTHORS | 2 +- ChangeLog | 1 + src/commands/CMakeLists.txt | 1 + src/commands/CmdAttributes.cpp | 66 ++++++++++++++++++++++++++++++++++ src/commands/CmdAttributes.h | 41 +++++++++++++++++++++ src/commands/Command.cpp | 2 ++ src/l10n/eng-USA.h | 1 + src/l10n/epo-RUS.h | 1 + src/l10n/esp-ESP.h | 1 + src/l10n/fra-FRA.h | 1 + src/l10n/ita-ITA.h | 1 + src/l10n/por-PRT.h | 1 + 12 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 src/commands/CmdAttributes.cpp create mode 100644 src/commands/CmdAttributes.h diff --git a/AUTHORS b/AUTHORS index fc7c42769..ce9c9e61e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -229,4 +229,4 @@ suggestions: Lee Lieske Peter Vitt dev-zero - + Roman Inflianskas diff --git a/ChangeLog b/ChangeLog index eaa4880ed..786532743 100644 --- a/ChangeLog +++ b/ChangeLog @@ -141,6 +141,7 @@ - TW-1381 blocking report exits with "Unknown error" and exit code 3. - TW-1383 Segmentation fault running import-yaml.pl with included example (thanks to Markus Beppler). +- TW-1405 Add command _zshattributes (thanks to Roman Inflianskas). - Removed deprecated 'echo.command' setting, in favor of the 'header' and 'affected' verbosity tokens. - Removed deprecated 'edit.verbose' setting, in favor of the 'edit' verbosity diff --git a/src/commands/CMakeLists.txt b/src/commands/CMakeLists.txt index d9bec2e3a..4e0288972 100644 --- a/src/commands/CMakeLists.txt +++ b/src/commands/CMakeLists.txt @@ -10,6 +10,7 @@ set (commands_SRCS Command.cpp Command.h CmdAliases.cpp CmdAliases.h CmdAnnotate.cpp CmdAnnotate.h CmdAppend.cpp CmdAppend.h + CmdAttributes.cpp CmdAttributes.h CmdBurndown.cpp CmdBurndown.h CmdCalc.cpp CmdCalc.h CmdCalendar.cpp CmdCalendar.h diff --git a/src/commands/CmdAttributes.cpp b/src/commands/CmdAttributes.cpp new file mode 100644 index 000000000..7bcceb8c8 --- /dev/null +++ b/src/commands/CmdAttributes.cpp @@ -0,0 +1,66 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +// http://www.opensource.org/licenses/mit-license.php +// +//////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include + +extern Context context; + +//////////////////////////////////////////////////////////////////////////////// +CmdZshAttributes::CmdZshAttributes () +{ + _keyword = "_zshattributes"; + _usage = "task _zshattributes"; + _description = STRING_CMD_ZSHATTS_USAGE; + _read_only = true; + _displays_id = false; +} + +//////////////////////////////////////////////////////////////////////////////// +int CmdZshAttributes::execute (std::string& output) +{ + // Get a list of all columns. + std::vector columns = context.getColumns (); + + // Sort alphabetically. + std::sort (columns.begin (), columns.end ()); + + std::stringstream out; + std::vector ::iterator c; + for (c = columns.begin (); c != columns.end (); ++c) + out << *c << ":" << *c << "\n"; + + output = out.str (); + return 0; +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/commands/CmdAttributes.h b/src/commands/CmdAttributes.h new file mode 100644 index 000000000..bf37c3f7a --- /dev/null +++ b/src/commands/CmdAttributes.h @@ -0,0 +1,41 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +// http://www.opensource.org/licenses/mit-license.php +// +//////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDED_CMDATTRIBUTES +#define INCLUDED_CMDATTRIBUTES + +#include +#include + +class CmdZshAttributes : public Command +{ +public: + CmdZshAttributes (); + int execute (std::string&); +}; + +#endif +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 45d62f87e..18560d799 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -155,6 +156,7 @@ void Command::factory (std::map & all) c = new CmdUrgency (); all[c->keyword ()] = c; c = new CmdUUIDs (); all[c->keyword ()] = c; c = new CmdVersion (); all[c->keyword ()] = c; + c = new CmdZshAttributes (); all[c->keyword ()] = c; c = new CmdZshCommands (); all[c->keyword ()] = c; c = new CmdZshCompletionIds (); all[c->keyword ()] = c; c = new CmdZshCompletionUuids (); all[c->keyword ()] = c; diff --git a/src/l10n/eng-USA.h b/src/l10n/eng-USA.h index b82862342..91414b0e0 100644 --- a/src/l10n/eng-USA.h +++ b/src/l10n/eng-USA.h @@ -511,6 +511,7 @@ #define STRING_CMD_DIAG_HOOKS "Hooks" #define STRING_CMD_HCOMMANDS_USAGE "Generates a list of all commands, for autocompletion purposes" #define STRING_CMD_ZSHCOMMANDS_USAGE "Generates a list of all commands, for zsh autocompletion purposes" +#define STRING_CMD_ZSHATTS_USAGE "Generates a list of all attributes, for zsh autocompletion purposes" #define STRING_CMD_ALIASES_USAGE "Generates a list of all aliases, for autocompletion purposes" #define STRING_CMD_INSTALL_USAGE "Installs extensions and external scripts" diff --git a/src/l10n/epo-RUS.h b/src/l10n/epo-RUS.h index d2b5562bc..c94359a7b 100644 --- a/src/l10n/epo-RUS.h +++ b/src/l10n/epo-RUS.h @@ -511,6 +511,7 @@ #define STRING_CMD_DIAG_HOOKS "Hokoj" #define STRING_CMD_HCOMMANDS_USAGE "Produktas liston de ĉia komando, por motivo memkompletada" #define STRING_CMD_ZSHCOMMANDS_USAGE "Produktas liston de ĉia komando, por motivo de memkompletado en zsh" +#define STRING_CMD_ZSHATTS_USAGE "Generates a list of all attributes, for zsh autocompletion purposes" #define STRING_CMD_ALIASES_USAGE "Produktas liston de ĉia alinomo, por motivo memkompletada" #define STRING_CMD_INSTALL_USAGE "Instalas kromprogramojn kaj eksternajn skribojn" diff --git a/src/l10n/esp-ESP.h b/src/l10n/esp-ESP.h index ea1b0926d..7bed6a347 100644 --- a/src/l10n/esp-ESP.h +++ b/src/l10n/esp-ESP.h @@ -520,6 +520,7 @@ #define STRING_CMD_DIAG_HOOKS "Hooks" #define STRING_CMD_HCOMMANDS_USAGE "Genera una lista de todos los comandos, con fines de auto-completado" #define STRING_CMD_ZSHCOMMANDS_USAGE "Genera una lista de todos los comandos, con fines de auto-completado zsh" +#define STRING_CMD_ZSHATTS_USAGE "Generates a list of all attributes, for zsh autocompletion purposes" #define STRING_CMD_ALIASES_USAGE "Genera una lista de todos los alias, con fines de auto-completado" #define STRING_CMD_INSTALL_USAGE "Instala extensiones y scripts externos" diff --git a/src/l10n/fra-FRA.h b/src/l10n/fra-FRA.h index 8bda6040c..9d154cadc 100644 --- a/src/l10n/fra-FRA.h +++ b/src/l10n/fra-FRA.h @@ -510,6 +510,7 @@ #define STRING_CMD_DIAG_HOOKS "Hooks" #define STRING_CMD_HCOMMANDS_USAGE "Generates a list of all commands, for autocompletion purposes" #define STRING_CMD_ZSHCOMMANDS_USAGE "Generates a list of all commands, for zsh autocompletion purposes" +#define STRING_CMD_ZSHATTS_USAGE "Generates a list of all attributes, for zsh autocompletion purposes" #define STRING_CMD_ALIASES_USAGE "Generates a list of all aliases, for autocompletion purposes" #define STRING_CMD_INSTALL_USAGE "Installs extensions and external scripts" diff --git a/src/l10n/ita-ITA.h b/src/l10n/ita-ITA.h index 89cb314ee..3dd6a0ec2 100644 --- a/src/l10n/ita-ITA.h +++ b/src/l10n/ita-ITA.h @@ -511,6 +511,7 @@ #define STRING_CMD_DIAG_HOOKS "Hooks" #define STRING_CMD_HCOMMANDS_USAGE "Genera la lista di tutti i comandi, per autocompletamento" #define STRING_CMD_ZSHCOMMANDS_USAGE "Genera la lista di tutti i comandi, per autocompletamento in zsh" +#define STRING_CMD_ZSHATTS_USAGE "Generates a list of all attributes, for zsh autocompletion purposes" #define STRING_CMD_ALIASES_USAGE "Genera la lista di tutti gli alias, per autocompletamento" #define STRING_CMD_INSTALL_USAGE "Installa estensioni e script esterni" diff --git a/src/l10n/por-PRT.h b/src/l10n/por-PRT.h index 64cdcf5ee..5f67b2d3d 100644 --- a/src/l10n/por-PRT.h +++ b/src/l10n/por-PRT.h @@ -511,6 +511,7 @@ #define STRING_CMD_DIAG_HOOKS "Hooks" #define STRING_CMD_HCOMMANDS_USAGE "Gera uma lista com todos os comandos, para fins de terminação automática" #define STRING_CMD_ZSHCOMMANDS_USAGE "Gera uma lista com todos os comandos, para terminação automática em zsh" +#define STRING_CMD_ZSHATTS_USAGE "Generates a list of all attributes, for zsh autocompletion purposes" #define STRING_CMD_ALIASES_USAGE "Gera uma lista com todos os 'alias', para fins de terminação automática" #define STRING_CMD_INSTALL_USAGE "Instala extensões e scripts externos"