complete_versions_generic

Function complete_versions_generic 

Source
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 from
  • package_name - Name of the package
  • prefix - 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;