LinuxCommandLibrary

cs-complete-dep

Resolve and install Coq project dependencies

TLDR

Print which artifacts are published under a specific Maven group identifier

$ cs complete-dep [group_id]
copy

List published library versions under a specific Maven group identifier and an artifact one
$ cs complete-dep [group_id]:[artifact_id]
copy

Print which artifacts are pubblished under a given Maven groupId searching in the ivy2local
$ cs complete-dep [group_id] --repository ivy2local
copy

List published artifacts under a Maven group identifier searching in a specific repository and credentials
$ cs complete-dep [group_id]:[artifact_id] --repository [repository_url] --credentials [user]:[password]
copy

SYNOPSIS

The cs-complete-dep command is typically invoked as a Common Lisp function within a Lisp environment, rather than directly from the shell as an executable. Its conceptual invocation resembles:
(cs-complete-dep "PARTIAL-SYSTEM-NAME")
Where "PARTIAL-SYSTEM-NAME" is a string representing the initial characters of an ASDF system name for which completion candidates are sought. In most interactive settings (e.g., Emacs SLIME), this function is called automatically by completion frameworks.

PARAMETERS

PARTIAL-SYSTEM-NAME
    A string containing the initial characters of the ASDF system name for which to generate completion suggestions. The function returns a list of ASDF system names that start with or contain this partial string.

DESCRIPTION

The cs-complete-dep utility is a specialized component within the Common Lisp ecosystem, primarily designed to facilitate interactive dependency resolution for ASDF (Another System Definition Facility) systems. ASDF is Common Lisp's de-facto standard system definition tool, similar in concept to Makefiles or project files in other languages, used to define how Common Lisp code is organized, compiled, and loaded.

cs-complete-dep works by providing a list of possible ASDF system names that match a given partial input string. Its main use case is within interactive development environments, particularly in Emacs with SLIME (Superior Lisp Interaction Mode for Emacs), where it powers completion functionality for commands that require an ASDF system name (e.g., loading a system, finding its definition). It's not a standalone general-purpose shell command but rather a Lisp function that is invoked programmatically to enhance developer workflow by reducing typing and errors when dealing with numerous Lisp systems and their dependencies.

CAVEATS

cs-complete-dep is a Common Lisp function and not a standard Linux shell command found in typical system paths. Its direct execution from a shell prompt is not common or straightforward. It requires a Common Lisp implementation (e.g., SBCL, CCL), ASDF, and the `cs-tools` library (or similar completion-providing library) to be loaded and available within the Lisp environment. Its primary utility is within interactive Lisp development tools like Emacs with SLIME for dynamic completion.

INTERACTIVE USAGE

In practical use, cs-complete-dep is seldom called directly by a user. Instead, it serves as a backend function for interactive completion utilities. For example, when using Emacs with SLIME and typing a partial ASDF system name at the REPL or when loading a system, SLIME's completion machinery internally calls cs-complete-dep to fetch relevant suggestions, which are then presented to the user for selection. This makes system loading and interaction much more efficient and less error-prone.

HISTORY

cs-complete-dep is part of the `cs-tools` collection, a set of Common Lisp utilities aimed at enhancing the developer experience. Its development is intertwined with the evolution of interactive Common Lisp programming environments, particularly the growing adoption of SLIME and the need for robust, dynamic completion mechanisms for ASDF system names and other Lisp entities. It emerged as a solution to streamline dependency management and system loading workflows within the Lisp REPL and editor integration.

SEE ALSO

asdf (Common Lisp system definition tool), quicklisp (Common Lisp library manager), slime (Emacs mode for Common Lisp development), emacs (Text editor, often used for Lisp development), sbcl (Steel Bank Common Lisp implementation)

Copied to clipboard