diff --git a/crates/glua_doc_cli/src/cmd_args.rs b/crates/glua_doc_cli/src/cmd_args.rs index d305364ef..43ca7b659 100644 --- a/crates/glua_doc_cli/src/cmd_args.rs +++ b/crates/glua_doc_cli/src/cmd_args.rs @@ -66,6 +66,10 @@ pub struct CmdArgs { /// Verbose output #[arg(long)] pub verbose: bool, + + /// Path to GMod annotations directory + #[arg(long)] + pub gmod_annotations: Option, } #[derive(Debug, Clone, Eq, PartialEq, ValueEnum)] diff --git a/crates/glua_doc_cli/src/init.rs b/crates/glua_doc_cli/src/init.rs index 2dc3b4b6b..0f2efab05 100644 --- a/crates/glua_doc_cli/src/init.rs +++ b/crates/glua_doc_cli/src/init.rs @@ -68,6 +68,7 @@ pub fn load_workspace( config_paths: Option>, exclude_pattern: Option>, include_pattern: Option>, + gmod_annotations: Option, ) -> Result> { let (config_files, config_root): (Vec, PathBuf) = if let Some(config_paths) = config_paths { @@ -88,6 +89,24 @@ pub fn load_workspace( config_root.display() ); emmyrc.pre_process_emmyrc(&config_root); + + if let Some(annotations_path) = gmod_annotations { + if annotations_path.is_dir() { + log::info!( + "Adding GMod annotations from: {}", + annotations_path.display() + ); + emmyrc.prioritize_gmod_annotations_library( + annotations_path.to_string_lossy().into_owned(), + ); + } else { + log::warn!( + "GMod annotations path is not an existing directory: {}", + annotations_path.display() + ); + } + } + let mut workspace_folders = cmd_workspace_folders .iter() .map(|p| WorkspaceFolder::new(p.clone(), false)) diff --git a/crates/glua_doc_cli/src/lib.rs b/crates/glua_doc_cli/src/lib.rs index 6bfa3e901..9b1e1c88f 100644 --- a/crates/glua_doc_cli/src/lib.rs +++ b/crates/glua_doc_cli/src/lib.rs @@ -51,6 +51,7 @@ pub fn run_doc_cli(mut cmd_args: CmdArgs) -> Result<(), Box