Uploaded Test files
This commit is contained in:
parent
f584ad9d97
commit
2e81cb7d99
16627 changed files with 2065359 additions and 102444 deletions
|
@ -0,0 +1,3 @@
|
|||
from .system import SystemCompleter
|
||||
|
||||
__all__ = ["SystemCompleter"]
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,62 @@
|
|||
from prompt_toolkit.completion.filesystem import ExecutableCompleter, PathCompleter
|
||||
from prompt_toolkit.contrib.regular_languages.compiler import compile
|
||||
from prompt_toolkit.contrib.regular_languages.completion import GrammarCompleter
|
||||
|
||||
__all__ = [
|
||||
"SystemCompleter",
|
||||
]
|
||||
|
||||
|
||||
class SystemCompleter(GrammarCompleter):
|
||||
"""
|
||||
Completer for system commands.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
# Compile grammar.
|
||||
g = compile(
|
||||
r"""
|
||||
# First we have an executable.
|
||||
(?P<executable>[^\s]+)
|
||||
|
||||
# Ignore literals in between.
|
||||
(
|
||||
\s+
|
||||
("[^"]*" | '[^']*' | [^'"]+ )
|
||||
)*
|
||||
|
||||
\s+
|
||||
|
||||
# Filename as parameters.
|
||||
(
|
||||
(?P<filename>[^\s]+) |
|
||||
"(?P<double_quoted_filename>[^\s]+)" |
|
||||
'(?P<single_quoted_filename>[^\s]+)'
|
||||
)
|
||||
""",
|
||||
escape_funcs={
|
||||
"double_quoted_filename": (lambda string: string.replace('"', '\\"')),
|
||||
"single_quoted_filename": (lambda string: string.replace("'", "\\'")),
|
||||
},
|
||||
unescape_funcs={
|
||||
"double_quoted_filename": (
|
||||
lambda string: string.replace('\\"', '"')
|
||||
), # XXX: not entirely correct.
|
||||
"single_quoted_filename": (lambda string: string.replace("\\'", "'")),
|
||||
},
|
||||
)
|
||||
|
||||
# Create GrammarCompleter
|
||||
super().__init__(
|
||||
g,
|
||||
{
|
||||
"executable": ExecutableCompleter(),
|
||||
"filename": PathCompleter(only_directories=False, expanduser=True),
|
||||
"double_quoted_filename": PathCompleter(
|
||||
only_directories=False, expanduser=True
|
||||
),
|
||||
"single_quoted_filename": PathCompleter(
|
||||
only_directories=False, expanduser=True
|
||||
),
|
||||
},
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue