feat: Add todo tool (#286)

This commit is contained in:
Petr Mironychev
2025-12-03 21:28:59 +01:00
committed by GitHub
parent fb941cea99
commit 498eb4d932
17 changed files with 563 additions and 13 deletions

View File

@ -111,6 +111,7 @@ const char CA_ALLOW_ACCESS_OUTSIDE_PROJECT[] = "QodeAssist.caAllowAccessOutsideP
const char CA_ENABLE_EDIT_FILE_TOOL[] = "QodeAssist.caEnableEditFileTool";
const char CA_ENABLE_BUILD_PROJECT_TOOL[] = "QodeAssist.caEnableBuildProjectTool";
const char CA_ENABLE_TERMINAL_COMMAND_TOOL[] = "QodeAssist.caEnableTerminalCommandTool";
const char CA_ENABLE_TODO_TOOL[] = "QodeAssist.caEnableTodoTool";
const char CA_ALLOWED_TERMINAL_COMMANDS[] = "QodeAssist.caAllowedTerminalCommands";
const char CA_ALLOWED_TERMINAL_COMMANDS_LINUX[] = "QodeAssist.caAllowedTerminalCommandsLinux";
const char CA_ALLOWED_TERMINAL_COMMANDS_MACOS[] = "QodeAssist.caAllowedTerminalCommandsMacOS";

View File

@ -97,6 +97,13 @@ ToolsSettings::ToolsSettings()
"unexpected behavior."));
enableTerminalCommandTool.setDefaultValue(false);
enableTodoTool.setSettingsKey(Constants::CA_ENABLE_TODO_TOOL);
enableTodoTool.setLabelText(Tr::tr("Enable Todo Tool"));
enableTodoTool.setToolTip(
Tr::tr("Enable the todo_tool that helps AI track and organize multi-step tasks. "
"Useful for complex refactoring, debugging, and feature implementation workflows."));
enableTodoTool.setDefaultValue(true);
allowedTerminalCommandsLinux.setSettingsKey(Constants::CA_ALLOWED_TERMINAL_COMMANDS_LINUX);
allowedTerminalCommandsLinux.setLabelText(Tr::tr("Allowed Commands (Linux)"));
allowedTerminalCommandsLinux.setToolTip(
@ -158,6 +165,7 @@ ToolsSettings::ToolsSettings()
enableEditFileTool,
enableBuildProjectTool,
enableTerminalCommandTool,
enableTodoTool,
currentOsCommands,
autoApplyFileEdits}},
Stretch{1}};
@ -191,6 +199,7 @@ void ToolsSettings::resetSettingsToDefaults()
resetAspect(enableEditFileTool);
resetAspect(enableBuildProjectTool);
resetAspect(enableTerminalCommandTool);
resetAspect(enableTodoTool);
resetAspect(allowedTerminalCommandsLinux);
resetAspect(allowedTerminalCommandsMacOS);
resetAspect(allowedTerminalCommandsWindows);

View File

@ -41,6 +41,7 @@ public:
Utils::BoolAspect enableEditFileTool{this};
Utils::BoolAspect enableBuildProjectTool{this};
Utils::BoolAspect enableTerminalCommandTool{this};
Utils::BoolAspect enableTodoTool{this};
Utils::StringAspect allowedTerminalCommandsLinux{this};
Utils::StringAspect allowedTerminalCommandsMacOS{this};
Utils::StringAspect allowedTerminalCommandsWindows{this};