Skip to content

digikar99/cl-docsearch

Repository files navigation

Docsearch

Search documentation of Common Lisp symbols in the current lisp image for a query string.

The base package and system is pure Common Lisp. An additional system docsearch-ollama is included for use with ollama.

Example

To search for symbols related to "function" in all packages, you would call:

(docsearch:docsearch "alist")

This will print out any symbols and their documentation that contain the word "alist".

To restrict the search to a certain package or packages, supply it as a second argument.

(docsearch:docsearch "alist" :alexandria)
ALEXANDRIA:ALIST-HASH-TABLE
  Function:
    Returns a hash table containing the keys and values of the association list
    ALIST. Hash table is initialized using the HASH-TABLE-INITARGS.

ALEXANDRIA:ASSOC-VALUE
  Function:
    ASSOC-VALUE is an alist accessor very much like ASSOC, but it can
    be used with SETF.

ALEXANDRIA:RASSOC-VALUE
  Function:
    RASSOC-VALUE is an alist accessor very much like RASSOC, but it can
    be used with SETF.

ALEXANDRIA:HASH-TABLE-ALIST
ALEXANDRIA:PLIST-ALIST
ALEXANDRIA:ALIST-PLIST
  Function:
    Returns a property list containing the same keys and values as the
    association list ALIST in the same order.

Installation

  1. quicklisp with https support:
curl https://raw.githubusercontent.com/rudolfochrist/ql-https/master/install.sh | bash
  1. ultralisp:
(ql-dist:install-dist "https://dist.ultralisp.org/" :prompt nil)
  1. docsearch:
(ql:quickload "docsearch")
  1. (Optional) more-docstrings:
(ql:quickload "more-docstrings")

Related Projects

API Documentation

Variables *symbol-doc-types*

A list of types of documentation to search within symbols. TODO: Expand this with in-nomine

Variable *search-function*

The function used by docsearch for searching documentation strings. By default this uses search with char-equal.

Function: docsearch

Lambda list: (search-term &optional packages (mode :external) (method *search-function*))

Searches for Lisp symbols based on a given search string.

Parameters:

  • search-string (string or symbol): The term to search for.
  • packages (a single package-designator, list of package-designators, or a predicate function, optional): List of packages to search within. Defaults to all packages. If it is a function, it is used to narrow the search to the good packages of (list-all-packages).
  • mode (symbol, optional): Whether to search external or internal symbols. Options are :external and :internal. Defaults to :external.
  • method (function, optional): The function to use for searching documentation strings.

Example packages function to search for quicklisp related packages:

(defun ql-package-p (pkg)
  (let ((name (package-name pkg)))
    (or (search "QL" name)
        (search "QUICKLISP" name))))
(docsearch:docsearch "dist" #'ql-package-p)

Returns:

None

About

A tool to search documentation of lisp symbols in the current lisp image.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors