PSCompletions

0

A completion manager for better and simpler use and Manage completions.(一个补全管理模块,更好、更简单、更方便的使用和管理补全)

Productivity

module
powershell
ps
completions

✨PSCompletions(psc) ✨

English | 简体中文 | Github | Gitee

license code size repo size created


Introduce

  • PowerShell: A Cross-platform PowerShell. Start it in command line by running pwsh.

  • Windows PowerShell: A PowerShell which is built-in on Windows systems. Start it in command line by running powershell.


  • A completion manager in PowerShell for better and simpler use completions.

    It can also be used in Windows PowerShell.(Not Recommend)

  • Manage completions together.
  • Switch between languages(en-US,zh-CN,...) freely.
  • Sort completion tab dynamically by frequency of use.

If this project is helpful to you, please consider giving it a star ⭐.

How to install

  1. Start PowerShell
  2. Install-Module PSCompletions -Scope CurrentUser
  3. Import-Module PSCompletions
    • echo "Import-Module PSCompletions" >> $PROFILE
    • So you don't have to import the module every time you open PowerShell.

How to uninstall

  1. Start PowerShell
  2. Uninstall-Module PSCompletions

How to use(e.g. git)

Available Completions

  1. psc add git
  2. Then you can enter git and press Space Tab to get command completion.
  3. For more commands on psc, you can learn by entering psc and then pressing Space Tab.

Demo

demo

Tips

About the completion trigger key

  • The module uses the Tab key by default.
  • You can set it by running Set-PSReadLineKeyHandler <key> MenuComplete.

About completion update

  • When the module is imported after opening PowerShell, PSCompletions will start a background job to check for the completion status of the remote repository.
  • After getting the update, PSCompletions will show the latest status of the completions in the next time.

About completion menu

  • The module's completion menu provided by the module is based on PS-GuiCompletion realization idea, thanks!

  • It can only be used in PowerShell(pwsh) under Windows.

  • Some keys in the completion menu provided by the module.

    1. Apply the selected completion item: Enter

    2. Delete filter characters: Backspace

    3. Exit the completion menu: ESC / Ctrl + c

      • When there are no characters in the filter area, you can also use Backspace key to exit the completion menu.
    4. Select completion item:

      Select previous itemSelect next item
      UpDown
      LeftRight
      Shift + TabTab
      Shift + SpaceSpace
      Ctrl + uCtrl + d
      Ctrl + pCtrl + n
  • All configurations of it, you can trigger completion by running psc menu, then learn about them by completion tip.

About special symbols

  • 😄🤔😎 : If there are multiple, you can choose the effect of one of them.
    • 😄 : It means that after you apply it, you can press Space and Tab key to continue to get command completions.(Normal or optional completions)
      • It can be customized by running psc menu symbol SpaceTab <symbol>
    • 🤔 : It means that after you apply it (option completion), you can press Space and Tab key to continue to get option completions. (e.g. --verbose)
      • It can be customized by running psc menu symbol OptionTab <symbol>
    • 😎 : It means that after you apply it (option completion), you can press Space and enter a string, then press Space and Tab key to continue to get the rest of option completions.
      • If the string has Spaces, Please use "" or '' to wrap it. e.g. 'test content'
      • If there is also 😄, it means that there are some strings to complete, you can press Space and Tab key to continue to get command completions without entering a string.
      • It can be customized by running psc menu symbol WriteSpaceTab <symbol>
    • Completion of generic options can also be triggered if there is one or more generic option completion.
    • All complements can be triggered by pressing the Tab key after entering a part.
    • If you don't need or want to see these symbols, you can hide them by replacing them with the empty string.
      • e.g. psc menu symbol SpaceTab ""

About language

  • Global language: Default to the language of current system.
    • You can show it by running psc config language
    • You can change it by running psc config language zh-CN
  • Completion language: The language set for the specified completion.
    • e.g. psc completion git language en-US.
  • Available language: In the completion config.json file, there is a language attribute whose value is a list of available languages.

Determine language

  1. Get the specified language:
    • If there is Completion language,use it.
    • If not, use Global language.
  2. Determine the final language:
    • Determine whether the value of the first step exists in Available language.
    • If it exists, use it.
    • If not, use the first of the Available language. (It's usually en-US)

About path completion

  • Take git for example, when entering git add, pressing the Space and Tab keys, path completion will not be triggered, only completion provided by the module will be triggered.
  • If you want to trigger path completion, you need to enter a content.
  • If the content matches this regex rule ^\.*[\\/].*, it will get the path completion, which is PowerShell completion.
  • e.g.
    • Please enter ./ or .\ and press Tab key to get path completion for the subdirectory or file.
    • Please enter ../ or ..\ and press Tab key to get path completion for the parent directory or file.
    • Please enter / or \ and press Tab key to get path completion for the sibling directory.
  • So you can enter git add ./ and then press Tab key to get the path completion.

Available Completions List

  • Guide
    • Completion :Click to view to the official website of the command. Sort by first letter(0-9,a-z).
      • Special case: abc(a), it means that you need to download it by psc add abc, but by default a is used instead of abc to trigger the completion.
    • Language: Supported Languages, and Translation Progress.
      • The translation progress is compared to en-US
    • Description: Command Description.
CompletionLanguageDescription
7zen-US
zh-CN(100%)
The command line cli of 7-Zip
archen-US
zh-CN(100%)
Display machine architecture.
Come from uutils/coreutils
b2sumen-US
zh-CN(15.38%)
Compute and check message digests.
Come from uutils/coreutils
b3sumen-US
zh-CN(15.38%)
Compute and check message digests.
Come from uutils/coreutils
base32en-US
zh-CN(33.33%)
Encode/decode data and print to standard output.
Come from uutils/coreutils
base64en-US
zh-CN(33.33%)
Encode/decode data and print to standard output.
Come from uutils/coreutils
basenameen-US
zh-CN(33.33%)
Print NAME with any leading directory components removed.
Come from uutils/coreutils
basencen-US
zh-CN(18.18%)
Encode/decode data and print to standard output.
Come from uutils/coreutils
bunen-US
zh-CN(100%)
Bun - JavaScript all-in-one toolkit
cargoen-US
zh-CN(100%)
cargo - Rust package manager
chfsen-US
zh-CN(100%)
CuteHttpFileServer - A free, HTTP protocol file sharing server cross-platform file sharing server
chocoen-US
zh-CN(100%)
choco(chocolatey) - Software Manager
cksumen-US
zh-CN(17.14%)
Print CRC and size for each file.
Come from uutils/coreutils
commen-US
zh-CN(27.27%)
Compare two sorted files line by line.
Come from uutils/coreutils
condaen-US
zh-CN(100%)
conda - binary package and environment manager
cspliten-US
zh-CN(19.35%)
Split a file into sections determined by context lines.
Come from uutils/coreutils
cuten-US
zh-CN(16.22%)
Print specified byte or field columns from each line of stdin or the input files.
Come from uutils/coreutils
dateen-US
zh-CN(14.29%)
Print or set the system date and time.
Come from uutils/coreutils
dden-US
zh-CN(100%)
Copy, and optionally convert, a file system resource.
Come from uutils/coreutils
denoen-US
zh-CN(100%)
Deno - A secure runtime for JavaScript and TypeScript.
dfen-US
zh-CN(6.67%)
Show information about the file system on which each FILE resides, or all file systems by default.
Come from uutils/coreutils
dircolorsen-US
zh-CN(31.58%)
Output commands to set the LS_COLORS environment variable.
Come from uutils/coreutils
dirnameen-US
zh-CN(54.55%)
Strip last component from file name.
Come from uutils/coreutils
dockeren-US
zh-CN(100%)
docker - Container Application Development
duen-US
zh-CN(5.83%)
Estimate file space usage.
Come from uutils/coreutils
enven-US
zh-CN(16.67%)
Set each NAME to VALUE in the environment and run COMMAND.
Come from uutils/coreutils
factoren-US
zh-CN(60%)
Print the prime factors of the given NUMBER(s).
Come from uutils/coreutils
fmten-US
zh-CN(14.63%)
Reformat paragraphs from input files (or stdin) to stdout.
Come from uutils/coreutils
fnmen-US
zh-CN(14.52%)
Fast and simple Node.js version manager, built in Rust.
folden-US
zh-CN(33.33%)
Writes each file (or standard input if no files are given) to standard output whilst breaking long lines.
Come from uutils/coreutils
giten-US
zh-CN(100%)
Git - Version control system
hashsumen-US
zh-CN(8.57%)
Compute and check message digests.
Come from uutils/coreutils
headen-US
zh-CN(24%)
Print the first 10 lines of each 'FILE' to standard output.
Come from uutils/coreutils
joinen-US
zh-CN(13.04%)
For each pair of input lines with identical join fields, write a line to standard output.
The default join field is the first, delimited by blanks.
Come from uutils/coreutils
kubectlen-US
zh-CN(100%)
Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications.
kubectl is its command-line tool.
linken-US
zh-CN(100%)
Call the link function to create a link named FILE2 to an existing FILE1.
Come from uutils/coreutils
lnen-US
zh-CN(14.63%)
Make links between files.
Come from uutils/coreutils
md5sumen-US
zh-CN(17.14%)
Compute and check message digests.
Come from uutils/coreutils
mktempen-US
zh-CN(24%)
Create a temporary file or directory.
Come from uutils/coreutils
ngroken-US
zh-CN(100%)
ngrok - Unified Ingress Platform for developers.
Connect localhost to the internet for testing applications and APIs.
nlen-US
zh-CN(6.58%)
Number lines of files.
Come from uutils/coreutils
npmen-US
zh-CN(100%)
npm - package manager
nprocen-US
zh-CN(46.15%)
Print the number of cores available to the current process.
Come from uutils/coreutils
nrmen-US
zh-CN(100%)
nrm - npm registry manager
numfmten-US
zh-CN(8.57%)
Convert numbers from/to human-readable strings.
Come from uutils/coreutils
nvmen-US
zh-CN(100%)
nvm - Node Version Manager
oden-US
zh-CN(7.41%)
Dump files in octal and other formats.
Come from uutils/coreutils
pasteen-US
zh-CN(33.33%)
Write lines consisting of the sequentially corresponding lines from each 'FILE', separated by 'TAB's, to standard output.
Come from uutils/coreutils
pdmen-US
zh-CN(8.86%)
A modern Python package and dependency manager supporting the latest PEP standards
pipen-US
zh-CN(100%)
pip - Python Package Manager
pnpmen-US
zh-CN(100%)
pnpm - Package Manager
pscen-US
zh-CN(100%)
PSCompletions module's completion tips.
It can only be updated, not removed.
If removed, it will be automatically added again.
pythonen-US
zh-CN(100%)
python - command-line
scoopen-US
zh-CN(100%)
Scoop - Software Manager
sfsuen-US
zh-CN(10.77%)
Scoop utilities that can replace the slowest parts of Scoop, and run anywhere from 30-100 times faster
voltaen-US
zh-CN(100%)
volta - Accessible JavaScript Tool Manager
wingeten-US
zh-CN(100%)
WinGet - Windows package manager
wslen-US
zh-CN(100%)
WSL - Windows Subsystem for Linux
wten-US
zh-CN(100%)
Windows Terminal command line.
You can use it to start a terminal.
yarnen-US
zh-CN(100%)
yarn - package manager
......                          ...