| 1 | //! Project command area: workspace bootstrap, LSP wiring, sharing, and goals. |
| 2 | |
| 3 | mod goal; |
| 4 | mod init; |
| 5 | mod lsp; |
| 6 | pub mod share; |
| 7 | |
| 8 | use crate::commands::traits::{Command, CommandGroup, FunctionCommand, RegisterCommand}; |
| 9 | |
| 10 | pub struct ProjectCommands; |
| 11 | |
| 12 | impl CommandGroup for ProjectCommands { |
| 13 | fn commands(&self) -> &'static [Box<dyn Command>] { |
| 14 | cached_command_list!(vec![ |
| 15 | Box::new(FunctionCommand::new( |
| 16 | init::InitCmd::info(), |
| 17 | init::InitCmd::execute, |
| 18 | )), |
| 19 | Box::new(FunctionCommand::new( |
| 20 | lsp::LspCmd::info(), |
| 21 | lsp::LspCmd::execute, |
| 22 | )), |
| 23 | Box::new(FunctionCommand::new( |
| 24 | share::ShareCmd::info(), |
| 25 | share::ShareCmd::execute, |
| 26 | )), |
| 27 | Box::new(FunctionCommand::new( |
| 28 | goal::GoalCmd::info(), |
| 29 | goal::GoalCmd::execute, |
| 30 | )), |
| 31 | ]) |
| 32 | } |
| 33 | } |
| 34 |