pub async fn complete_versions_generic(
registry: &dyn Registry,
package_name: &str,
prefix: &str,
operator_chars: &[char],
) -> Vec<CompletionItem>Expand description
Generic version completion logic used by all ecosystems.
Filters versions by prefix (stripping ecosystem-specific operators), hides yanked/deprecated versions, returns up to 5 completion items.
§Arguments
registry- Package registry to fetch versions frompackage_name- Name of the packageprefix- Partial version string typed by user (may include operators)operator_chars- Ecosystem-specific version operators to strip (e.g.,&['^', '~'])
§Returns
Up to 5 completion items for non-yanked versions, filtered by prefix. If no versions match the prefix, returns up to 5 non-yanked versions. The first item (latest version) is marked with “(latest)” suffix and preselected.
§Examples
use deps_core::completion::complete_versions_generic;
// Cargo: strip ^, ~, =, <, > operators
let items = complete_versions_generic(
registry,
"serde",
"^1.0",
&['^', '~', '=', '<', '>'],
).await;
// Go: no operators to strip
let items = complete_versions_generic(
registry,
"github.com/gin-gonic/gin",
"v1.9",
&[],
).await;