App-lms

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

    uses `--style=header,grid,snip`.  For `less`, `--number` adds
    `-N` option.

- **-r**, **--raw**

    Show raw paths without resolving Homebrew wrapper scripts to
    their actual executables.

- **-v**, **--version**

    Display version information and exit.

- **-p**, **--pager** _command_

    Specify the pager command to use for displaying files.
    Defaults to the `$LMS_PAGER` environment variable, or `bat` if available,
    otherwise `less`.

    When multiple files are found, `bat` displays all files continuously
    with syntax highlighting. With `less`, use `:n` to navigate to the
    next file and `:p` for the previous file.

- **-t**, **--type** _handler\[:handler:...\]_

    Specify which file type handlers to use and in what order.
    Handlers are specified as colon-separated names (case-insensitive).

    Default: `Command:Perl:Python:Ruby:Node`

    Available handlers:
    \- `Command`: Search for executable commands in `$PATH`
    \- `Perl`: Search for Perl modules in `@INC`
    \- `Python`: Search for Python libraries using Python's inspect module
    \- `Ruby`: Search for Ruby libraries using `$LOADED_FEATURES`
    \- `Node`: Search for Node.js modules using `require.resolve`

    Examples:
        lms --type Perl Getopt::Long       # Only search Perl modules
        lms --type python json             # Only search Python modules
        lms --type ruby yaml               # Only search Ruby libraries
        lms --type node express            # Only search Node.js modules

- **--py**

    Shortcut for `--type Python`. Search only Python modules.

- **--pl**

    Shortcut for `--type Perl`. Search only Perl modules.

- **--rb**

    Shortcut for `--type Ruby`. Search only Ruby libraries.

- **--nd**

    Shortcut for `--type Node`. Search only Node.js modules.

- **--bat-theme** _mode_=_theme_

    Specify the default bat theme for light or dark terminal backgrounds.
    Can be used multiple times.

        --bat-theme light=GitHub --bat-theme dark=Monokai

    If `bat` is used as the pager and `BAT_THEME` is not set, the
    terminal background luminance is detected and the appropriate theme
    is applied.  Built-in defaults are `Coldark-Cold` for light and
    `Coldark-Dark` for dark backgrounds.

- **--suffix** _extension_

    Specify file suffix/extension to search for (mainly for Perl modules).

    Default: `.pm`

- **--skip** _pattern_

    Specify directory patterns to skip during search.
    Can be used multiple times to specify multiple patterns.

    Default: `.optex.d/bin` (or `$OPTEX_BINDIR` if set)

# HANDLER MODULES

The program uses a plugin architecture where different file type handlers
are dynamically loaded based on the `--type` option. Each handler must
implement a `get_path($app, $name)` method.

- **App::lms::Command**

    Handler for executable commands. Searches through `$PATH` environment
    variable to find executable files.

- **App::lms::Perl**

    Handler for Perl modules. Searches through `@INC` paths to find
    Perl module files (.pm and .pl files).

- **App::lms::Python**

    Handler for Python libraries. Executes Python's `inspect.getsourcefile()`
    function to locate Python module files.

- **App::lms::Ruby**

    Handler for Ruby libraries. Loads the specified library with `require`
    and inspects `$LOADED_FEATURES` to find the actual file path.
    Documentation is displayed using `ri`.

- **App::lms::Node**

    Handler for Node.js modules. Uses `require.resolve` with global paths
    to locate module entry points.
    Documentation is opened via `npm docs`.

# EXAMPLES

    # Display a script command (brew is a shell script)
    lms brew

    # Display a Perl module
    lms List::Util

    # Display a Python module
    lms --py json

    # Just show the file path
    lms -l brew



( run in 0.611 second using v1.01-cache-2.11-cpan-f56aa216473 )