All Projects → openautocomplete → Openautocomplete

openautocomplete / Openautocomplete

Licence: cc-by-4.0
OpenAutoComplete -- CLI autocomplete specification

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Openautocomplete

Validot
Validot is a performance-first, compact library for advanced model validation. Using a simple declarative fluent interface, it efficiently handles classes, structs, nested members, collections, nullables, plus any relation or combination of them. It also supports translations, custom logic extensions with tests, and DI containers.
Stars: ✭ 198 (-20.48%)
Mutual labels:  specification
Quickstrom
High-confidence browser testing
Stars: ✭ 208 (-16.47%)
Mutual labels:  specification
Massautocomplete
Auto Complete for Angularjs applications with a lot to complete
Stars: ✭ 231 (-7.23%)
Mutual labels:  autocomplete
Oma lwm2m for developers
OMA LightweightM2M public resources.
Stars: ✭ 200 (-19.68%)
Mutual labels:  specification
Heyui
🎉UI Toolkit for Web, Vue2.0 http://www.heyui.top
Stars: ✭ 2,373 (+853.01%)
Mutual labels:  autocomplete
Intelephense
Intellisense for PHP
Stars: ✭ 212 (-14.86%)
Mutual labels:  autocomplete
Longtasks
Long Task API
Stars: ✭ 193 (-22.49%)
Mutual labels:  specification
Autocomplete
Blazing fast and lightweight autocomplete widget without dependencies. Only 1KB gzipped. Demo:
Stars: ✭ 244 (-2.01%)
Mutual labels:  autocomplete
Punchkeyboard
Punchkeyboard is an open-source keyboard for virtual reality, enhanced with autocomplete and next word prediction functionality for a swift typing experience.
Stars: ✭ 208 (-16.47%)
Mutual labels:  autocomplete
Vue2 Autocomplete
Vue 2 Component to make Autocomplete element.
Stars: ✭ 227 (-8.84%)
Mutual labels:  autocomplete
Specification
The Solid specifications
Stars: ✭ 202 (-18.88%)
Mutual labels:  specification
Company Sourcekit
Completion for Swift projects via SourceKit with the help of SourceKitten
Stars: ✭ 203 (-18.47%)
Mutual labels:  autocomplete
Spec
CloudEvents Specification
Stars: ✭ 3,025 (+1114.86%)
Mutual labels:  specification
Vdom
🎄 Virtual DOM for Python
Stars: ✭ 200 (-19.68%)
Mutual labels:  specification
Ng Select
⭐ Native angular select component
Stars: ✭ 2,781 (+1016.87%)
Mutual labels:  autocomplete
Vue Cool Select
Select with autocomplete, slots, bootstrap and material design themes.
Stars: ✭ 195 (-21.69%)
Mutual labels:  autocomplete
Wpf Autocomplete Textbox
An autocomplete TextBox for WPF
Stars: ✭ 210 (-15.66%)
Mutual labels:  autocomplete
Academic Phrases
Bypass that mental block when writing your papers.
Stars: ✭ 244 (-2.01%)
Mutual labels:  autocomplete
Specification
OpenMessaging Specification
Stars: ✭ 242 (-2.81%)
Mutual labels:  specification
Lua Lsp
A Lua language server
Stars: ✭ 219 (-12.05%)
Mutual labels:  autocomplete

OpenAutoComplete 📝

Shell-agnostic, declarative CLI autocomplete specification

markdownlint

Specification: SPECIFICATION.md

Nowadays, app developers have to provide autocompletion scripts for their applications for every shell possible by themselves. Usually, they provide autocompletions for bash, zsh and fish, and other shells have to support these completions (and this task is not easy, if even possible).

We want to have a single way an application could provide its autocompletion specification for the user's shell.

Ready-to-use definition files can be located here: https://github.com/openautocomplete/completions.

Basic principles

Declarative

The spec should have means to create CLI autocompletion in a declarative way, mostly without using shell scripting.

Shell-agnostic

There should not be a great problem to write autocompletion module for every shell available with minimum usage of non-standard tools. Our target shells: bash, zsh, fish, PowerShell and others.

Standards-based

OAC uses JSON, so the Runtime implementers can use jq for Unix shells, ConvertFrom-Json in PowerShell and other common approaches to parse OAC document.

Backwards-compatible with legacy applications

The spec should have means to describe most of the today's application CLIs.

Roadmap

Every single item in the roadmap is a subject for discussion

Enumerations support

Argument completion with values, being a part of some sort of enumeration:

  • path (file/directory) (with regex/wildcard filter)
  • storage-volume -- mounted volume. On Unix-like: "/home", "/" (use df?)
  • packages (installed/not installed). Tricky one.
  • PIDs
  • process names
  • something else

Enumerations from command output

This is for commands, like tar, thar can provide some machine-readable list, that could be parsed using a simple regex, and turned into an enumeration list. Also, this could be used for commands, that can provide their own autocompletion lists, like dotnet.

Delegation to another OAC instance

This could be used for delegating command autocompletion to another instance. Better with an example.

Consider a Python Django package. python -m django <TAB><TAB>

We provide python autocompletion by ourselves, and after -m <arg> it contains delegation pattern. When the user invokes autocompletion (double TAB), the Runtime gets definitions for python, then proceeds to a command inside delegation, and tries to get OAC definitions for django package (how?). If successful, it returns a list of currently available django commands: [check, compilemessages, createcachetable, dbshell, diffsettings, dumpdata, flush, inspectdb, ...]

shell-dependent scripting for delegations or enumerations

Well, to make completions more powerful, some sort of shell-dependent scriptiong would be useful (but discouraged). We should think about safety considerations, though.

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].