Skip to content

Commit 7cb8559

Browse files
committed
cli: More naive file completions for shtab
1 parent bf7ccab commit 7cb8559

File tree

3 files changed

+30
-13
lines changed

3 files changed

+30
-13
lines changed

src/tmuxp/cli/convert.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,19 @@
1111
def create_convert_subparser(
1212
parser: argparse.ArgumentParser,
1313
) -> argparse.ArgumentParser:
14-
parser.add_argument(
14+
config_file = parser.add_argument(
1515
dest="config_file",
1616
type=str,
1717
metavar="config-file",
1818
help="checks tmuxp and current directory for config files.",
1919
)
20+
try:
21+
import shtab
22+
23+
config_file.complete = shtab.FILE # type: ignore
24+
except ImportError:
25+
pass
26+
2027
parser.add_argument(
2128
"--yes",
2229
"-y",

src/tmuxp/cli/import_config.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def create_import_subparser(
8181
)
8282

8383
import_teamocilgroup = import_teamocil.add_mutually_exclusive_group(required=True)
84-
import_teamocilgroup.add_argument(
84+
teamocil_config_file = import_teamocilgroup.add_argument(
8585
dest="config_file",
8686
type=str,
8787
nargs="?",
@@ -99,7 +99,7 @@ def create_import_subparser(
9999
import_tmuxinatorgroup = import_tmuxinator.add_mutually_exclusive_group(
100100
required=True
101101
)
102-
import_tmuxinatorgroup.add_argument(
102+
tmuxinator_config_file = import_tmuxinatorgroup.add_argument(
103103
dest="config_file",
104104
type=str,
105105
nargs="?",
@@ -111,6 +111,14 @@ def create_import_subparser(
111111
callback=command_import_tmuxinator, import_subparser_name="tmuxinator"
112112
)
113113

114+
try:
115+
import shtab
116+
117+
teamocil_config_file.complete = shtab.FILE # type: ignore
118+
tmuxinator_config_file.complete = shtab.FILE # type: ignore
119+
except ImportError:
120+
pass
121+
114122
return parser
115123

116124

src/tmuxp/cli/load.py

+12-10
Original file line numberDiff line numberDiff line change
@@ -515,14 +515,6 @@ def create_load_subparser(parser: argparse.ArgumentParser) -> argparse.ArgumentP
515515
help="passthru to tmux(1) -f",
516516
)
517517

518-
try:
519-
import shtab
520-
521-
config_file.complete = shtab.FILE # type: ignore
522-
tmux_config_file.complete = shtab.FILE # type: ignore
523-
except ImportError:
524-
pass
525-
526518
parser.add_argument(
527519
"-s",
528520
dest="new_session_name",
@@ -566,14 +558,24 @@ def create_load_subparser(parser: argparse.ArgumentParser) -> argparse.ArgumentP
566558
const=88,
567559
help="like -2, but indicates that the terminal supports 88 colours.",
568560
)
569-
570561
parser.set_defaults(colors=None)
571-
parser.add_argument(
562+
563+
log_file = parser.add_argument(
572564
"--log-file",
573565
metavar="file_path",
574566
action="store",
575567
help="file to log errors/output to",
576568
)
569+
570+
try:
571+
import shtab
572+
573+
config_file.complete = shtab.FILE # type: ignore
574+
tmux_config_file.complete = shtab.FILE # type: ignore
575+
log_file.complete = shtab.FILE # type: ignore
576+
except ImportError:
577+
pass
578+
577579
return parser
578580

579581

0 commit comments

Comments
 (0)