Skip to content

SeeminglyScience/ClassExplorer

Repository files navigation

ClassExplorer

Discover the API you need with ease.

Build Status PowerShell Gallery Version (including pre-releases) GitHub

ClassExplorer is a PowerShell module that enables quickly searching the AppDomain for classes and members.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to seeminglyscience@gmail.com.

Why

Whenever you're working with a new library you may frequently come across a scenario where you:

  1. Have an object of a specific type that you're unsure what accepts it
  2. Need an object of a specific type, and you don't know what returns it
  3. Are looking for an example of a method that fits a certain signature

This module was created to make all of those problems easy to solve without being forced to look at documentation online.

Documentation

Check out our documentation for information about how to use this project.

Installation

Gallery

Install-Module ClassExplorer -Scope CurrentUser

PowerShellGet v3

Install-PSResource ClassExplorer

Source

git clone 'https://github.com/SeeminglyScience/ClassExplorer.git'
Set-Location ./ClassExplorer
./build.ps1

Formatting

This module includes some formatting with syntax highlighting for base types like MemberInfo, Type and also PSMethod:

Formatting-Example

The colors for syntax highlighting is controlled by PSReadLine options. See my dotfiles for the configuration shown in these examples.

Usage

Find an accessible version of an abstract type

Find-Type RunspaceConnectionInfo

Example-1-Results-1

Find-Type -InheritsType System.Management.Automation.Runspaces.RunspaceConnectionInfo

Example-1-Results-2

Find-Type -InheritsType System.Management.Automation.Runspaces.RunspaceConnectionInfo |
    Find-Type { $_ | Find-Member -MemberType Constructor }

Example-1-Results-3

[Management.Automation.Runspaces.NamedPipeConnectionInfo] |
    Find-Member -MemberType Constructor |
    Get-Parameter

Example-1-Results-4

# Or, alternatively this will return all constructors, properties, methods, etc that return any
# implementation of RunspaceConnectionInfo.
Find-Member -ReturnType System.Management.Automation.Runspaces.RunspaceConnectionInfo

Example-1-Results-5

Find something to do with a type

using namespace System.Management.Automation.Runspaces

Find-Member -ParameterType RunspaceConnectionInfo -ReturnType RunspacePool

Example-2-Results

Use type signature queries

See about_Type_Signatures.help.md

Find-Member -ReturnType { [ReadOnlySpan[byte]] } -ParameterType { [ReadOnlySpan[any]] }

Example-3-Results

Get real specific

Find-Member -MemberType Method -Instance -ParameterType string -ReturnType bool -ParameterCount 4.. |
    Find-Member -ParameterType { [anyref] [any] } |
    Find-Member -Not -RegularExpression 'Should(Continue|Process)'

Example-4-Results

Contributions Welcome!

We would love to incorporate community contributions into this project. If you would like to contribute code, documentation, tests, or bug reports, please read our Contribution Guide to learn more.