All Projects → phuctm97 → shell.how

phuctm97 / shell.how

Licence: MIT license
Explain shell commands using next-generation autocomplete Fig.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to shell.how

Picocli
Picocli is a modern framework for building powerful, user-friendly, GraalVM-enabled command line apps with ease. It supports colors, autocompletion, subcommands, and more. In 1 source file so apps can include as source & avoid adding a dependency. Written in Java, usable from Groovy, Kotlin, Scala, etc.
Stars: ✭ 3,286 (+1286.5%)
Mutual labels:  commandline, autocomplete
googletranslate
Python Google Translate (using reverse-engineered public API, so free)
Stars: ✭ 67 (-71.73%)
Mutual labels:  commandline
Functional intro to python
[tutorial]A functional, Data Science focused introduction to Python
Stars: ✭ 228 (-3.8%)
Mutual labels:  commandline
todo-cli
✅ Command-line tool to manage Todo lists
Stars: ✭ 88 (-62.87%)
Mutual labels:  commandline
Tv Overlord
TV Overlord — Download and manage tv shows:
Stars: ✭ 242 (+2.11%)
Mutual labels:  commandline
react-search-autocomplete
A search box that filters the provided array of objects
Stars: ✭ 152 (-35.86%)
Mutual labels:  autocomplete
Gitlab Cli
Create a merge request from command line in gitlab
Stars: ✭ 224 (-5.49%)
Mutual labels:  commandline
react-native-autocomplete-dropdown
Dropdown Item picker with search and autocomplete (typeahead) functionality for react native
Stars: ✭ 87 (-63.29%)
Mutual labels:  autocomplete
swoole-ide-helper-phar
Swoole IDE 自动补全,PHAR 包。
Stars: ✭ 14 (-94.09%)
Mutual labels:  autocomplete
combobox-nav
Attach combobox navigation behavior to <input> or <textarea>.
Stars: ✭ 76 (-67.93%)
Mutual labels:  autocomplete
svelte-mapbox
MapBox Map and Autocomplete components for Svelte (or Vanilla JS)
Stars: ✭ 267 (+12.66%)
Mutual labels:  autocomplete
Kunst
Download and display album art or display embedded album art
Stars: ✭ 242 (+2.11%)
Mutual labels:  commandline
semver-cli
semver-cli is a simple command line tool to compare and manipulate version strings.
Stars: ✭ 28 (-88.19%)
Mutual labels:  commandline
Ace
Node.js framework for creating command line applications
Stars: ✭ 233 (-1.69%)
Mutual labels:  commandline
gatsby-theme-terminal
A Gatsby theme for techies who love terminal / command line / bash like portfolio.
Stars: ✭ 20 (-91.56%)
Mutual labels:  commandline
Radare2
UNIX-like reverse engineering framework and command-line toolset
Stars: ✭ 15,412 (+6402.95%)
Mutual labels:  commandline
react-power-select
A highly composable & reusable select/autocomplete components
Stars: ✭ 63 (-73.42%)
Mutual labels:  autocomplete
vim-stylus
A better vim plugin for stylus, including proper and up-to-date syntax highligting, indentation and autocomplete
Stars: ✭ 49 (-79.32%)
Mutual labels:  autocomplete
rdf2smw
Convert RDF to Semantic MediaWiki facts in MediaWiki XML format, with a standalone commandline tool
Stars: ✭ 18 (-92.41%)
Mutual labels:  commandline
react-autocomplete-tags
React Autocomplete Tags
Stars: ✭ 17 (-92.83%)
Mutual labels:  autocomplete

shell.how · CI

Explain shell commands using next-generation autocomplete from Fig.

shell.how - Explain how your shell command works | Product Hunt

Contributing

Requirements

  • Node 14

  • Yarn 1.22+

Setup

  1. Install requirements

  2. Clone the repository

  3. Run yarn to install dependencies

Develop

Tech stack

  • TypeScript

  • Next.js

  • Tailwind CSS

  • Recoil for state management, it works natively with React concurrent mode & has builtin caching, allows lean pattern for querying dynamic data (see hooks/use-spec.ts)

  • React concurrent mode for loading data before rendering components & handling errors

Start development

  • Run yarn start to start development

  • Commit adhering to Angular commit convention, use yarn commit or Code conventional commits to commit interactively

  • Submit a PR and make sure required status checks pass

  • When a PR is merged or code is pushed to main:

    • Vercel deploys latest changes to shell.how

    • Github validates and creates a new release if there're relevant changes

Understand parser

The parser has 2 steps:

  1. Escape and split the string into tokens delimited white space, a quoted string is a single token. Nested quotes are supported, too.

  2. Load Fig's autocomplete spec for the command (the first token from step 1). Iterate through the tokens, validate, and annotate the tokens with information from the spec.

interface Token extends SimpleToken, Fig.BaseSuggestion {
  indices: [number, number]; // [start, end], end is exclusive
  value: string; // a copy of [start, end) from original string
  type: "command" | "subcommand" | "option" | "argument";
}

Author

Minh-Phuc Tran (@phuctm97) - Fig

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].