Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shresht7/psfavorite

Favorite PowerShell commands to get as PSReadLine Predictions
https://github.com/shresht7/psfavorite

command-line powershell powershell-module psreadline

Last synced: about 1 month ago
JSON representation

Favorite PowerShell commands to get as PSReadLine Predictions

Awesome Lists containing this project

README

        

# `PSFavorite`

This module allows you to mark commands as **favorites**. Your favorite commands will appear as suggestions in the PSReadLine Predictor Views.

Favorites do not replace history, they complement it. The history tracks _everything_ you've done, and favorites track the things that you've _deemed important_.

![demo](./demo.gif)

---

## ๐Ÿ“˜ Usage

Write a command and press Ctrl + Shift + * to mark it as _favorite_.

![screenshot](./add-to-favorites.png)

> `Note:` Add a helpful comment to describe the command for future reference.

**Alternatively**, use the `Add-Favorite` cmdlet

```powershell
PS C:\> "Get-Command | Get-Random | Get-Help # Get help about a random command" | Add-Favorite
```

> `Note:` Remember to wrap the expressions in quotes!

Your _favorite commands_ will start appearing as suggestions in the **PSReadLine Predictor View**.

---

## ๐Ÿ“„ Requirements

- PowerShell v7.2.0 or higher
- PSReadLine v2.2.2 or higher

PSReadLine must allow plugins as a `-PredictionSource`. (i.e. `Plugin` or `HistoryAndPlugin`)

```powershell
Set-PSReadLineOption -PredictionSource HistoryAndPlugin
```

To enable the `List` view:

```powershell
Set-PSReadLineOption -PredictionViewStyle ListView
```

## ๐Ÿ“ฆ Installation

### 1. Install the Module

```powershell
Install-Module -Name PSFavorite
```

### 2. Import the Module

```powershell
Import-Module -Name PSFavorite
```

> Add this to your `$PROFILE` if you wish to enable this for every session.

## ๐Ÿช“ Uninstallation

1. Close **all** PowerShell instances
2. Launch a PowerShell session with no profile. `pwsh -NoProfile`
3. Uninstall the Module. `Uninstall-Module -Name PSFavorite -Force`
4. Close PowerShell

---

## ๐Ÿ’ฝ Development

### ๐Ÿ“œ Scripts

- [`Build.ps1`](./Build.ps1) - Builds the PowerShell module

### ๐Ÿงช Testing

This module uses [Pester](https://pester.dev/) for testing. Run the following command to test the PowerShell module.

```pwsh
Invoke-Pester
```

## ๐Ÿ“• Reference

- https://learn.microsoft.com/en-us/powershell/scripting/dev-cross-plat/create-cmdline-predictor?view=powershell-7.3

---

## ๐Ÿ“ƒ License

This project is licensed under the [MIT License](./LICENSE). Please read the [LICENSE](./LICENSE) for more details.