mirror of
https://github.com/wting/autojump
synced 2026-03-02 03:49:26 +00:00
(Running pre-commit) Use Yelp-style indentation.
This commit is contained in:
91
bin/autojump
91
bin/autojump
@@ -78,11 +78,13 @@ def set_defaults():
|
||||
data_home = os.path.join(
|
||||
os.path.expanduser('~'),
|
||||
'Library',
|
||||
'autojump')
|
||||
'autojump',
|
||||
)
|
||||
elif is_windows():
|
||||
data_home = os.path.join(
|
||||
os.getenv('APPDATA'),
|
||||
'autojump')
|
||||
'autojump',
|
||||
)
|
||||
else:
|
||||
data_home = os.getenv(
|
||||
'XDG_DATA_HOME',
|
||||
@@ -90,7 +92,9 @@ def set_defaults():
|
||||
os.path.expanduser('~'),
|
||||
'.local',
|
||||
'share',
|
||||
'autojump'))
|
||||
'autojump',
|
||||
),
|
||||
)
|
||||
|
||||
config['data_path'] = os.path.join(data_home, 'autojump.txt')
|
||||
config['backup_path'] = os.path.join(data_home, 'autojump.txt.bak')
|
||||
@@ -101,33 +105,42 @@ def set_defaults():
|
||||
def parse_arguments():
|
||||
parser = ArgumentParser(
|
||||
description='Automatically jump to directory passed as an argument.',
|
||||
epilog='Please see autojump(1) man pages for full documentation.')
|
||||
epilog='Please see autojump(1) man pages for full documentation.',
|
||||
)
|
||||
parser.add_argument(
|
||||
'directory', metavar='DIRECTORY', nargs='*', default='',
|
||||
help='directory to jump to')
|
||||
help='directory to jump to',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-a', '--add', metavar='DIRECTORY',
|
||||
help='add path')
|
||||
help='add path',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-i', '--increase', metavar='WEIGHT', nargs='?', type=int,
|
||||
const=10, default=False,
|
||||
help='increase current directory weight')
|
||||
help='increase current directory weight',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-d', '--decrease', metavar='WEIGHT', nargs='?', type=int,
|
||||
const=15, default=False,
|
||||
help='decrease current directory weight')
|
||||
help='decrease current directory weight',
|
||||
)
|
||||
parser.add_argument(
|
||||
'--complete', action='store_true', default=False,
|
||||
help='used for tab completion')
|
||||
help='used for tab completion',
|
||||
)
|
||||
parser.add_argument(
|
||||
'--purge', action='store_true', default=False,
|
||||
help='remove non-existent paths from database')
|
||||
help='remove non-existent paths from database',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-s', '--stat', action='store_true', default=False,
|
||||
help='show database entries and their key weights')
|
||||
help='show database entries and their key weights',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-v', '--version', action='version', version='%(prog)s v' +
|
||||
VERSION, help='show version information')
|
||||
VERSION, help='show version information',
|
||||
)
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
@@ -187,14 +200,17 @@ def find_matches(entries, needles, check_entries=True):
|
||||
data = sorted(
|
||||
entries,
|
||||
key=attrgetter('weight', 'path'),
|
||||
reverse=True)
|
||||
reverse=True,
|
||||
)
|
||||
|
||||
return ifilter(
|
||||
lambda entry: not is_cwd(entry) and path_exists(entry),
|
||||
chain(
|
||||
match_consecutive(needles, data, ignore_case),
|
||||
match_fuzzy(needles, data, ignore_case),
|
||||
match_anywhere(needles, data, ignore_case)))
|
||||
match_anywhere(needles, data, ignore_case),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def handle_tab_completion(needle, entries):
|
||||
@@ -206,24 +222,33 @@ def handle_tab_completion(needle, entries):
|
||||
get_ith_path = lambda i, iterable: last(take(i, iterable)).path
|
||||
print_local(get_ith_path(
|
||||
tab_index,
|
||||
find_matches(entries, [tab_needle], check_entries=False)))
|
||||
find_matches(entries, [tab_needle], check_entries=False),
|
||||
))
|
||||
elif tab_needle:
|
||||
# found partial tab completion entry
|
||||
print_tab_menu(
|
||||
tab_needle,
|
||||
take(TAB_ENTRIES_COUNT, find_matches(
|
||||
entries,
|
||||
[tab_needle],
|
||||
check_entries=False)),
|
||||
TAB_SEPARATOR)
|
||||
take(
|
||||
TAB_ENTRIES_COUNT, find_matches(
|
||||
entries,
|
||||
[tab_needle],
|
||||
check_entries=False,
|
||||
),
|
||||
),
|
||||
TAB_SEPARATOR,
|
||||
)
|
||||
else:
|
||||
print_tab_menu(
|
||||
needle,
|
||||
take(TAB_ENTRIES_COUNT, find_matches(
|
||||
entries,
|
||||
[needle],
|
||||
check_entries=False)),
|
||||
TAB_SEPARATOR)
|
||||
take(
|
||||
TAB_ENTRIES_COUNT, find_matches(
|
||||
entries,
|
||||
[needle],
|
||||
check_entries=False,
|
||||
),
|
||||
),
|
||||
TAB_SEPARATOR,
|
||||
)
|
||||
|
||||
|
||||
def purge_missing_paths(entries):
|
||||
@@ -242,7 +267,8 @@ def print_stats(data, data_path):
|
||||
|
||||
try:
|
||||
print_local(
|
||||
'%.2f:\t current directory weight' % data.get(os.getcwdu(), 0))
|
||||
'%.2f:\t current directory weight' % data.get(os.getcwdu(), 0),
|
||||
)
|
||||
except OSError:
|
||||
# current directory no longer exists
|
||||
pass
|
||||
@@ -265,7 +291,8 @@ def main(args): # noqa
|
||||
elif args.complete:
|
||||
handle_tab_completion(
|
||||
needle=first(chain(sanitize(args.directory), [''])),
|
||||
entries=entriefy(load(config)))
|
||||
entries=entriefy(load(config)),
|
||||
)
|
||||
elif args.decrease:
|
||||
data, entry = decrease_path(load(config), get_pwd(), args.decrease)
|
||||
save(config, data)
|
||||
@@ -287,7 +314,8 @@ def main(args): # noqa
|
||||
print_local(first(chain(
|
||||
imap(attrgetter('path'), find_matches(entries, [''])),
|
||||
# always return a path to calling shell functions
|
||||
['.'])))
|
||||
['.'],
|
||||
)))
|
||||
else:
|
||||
entries = entriefy(load(config))
|
||||
needles = sanitize(args.directory)
|
||||
@@ -306,12 +334,15 @@ def main(args): # noqa
|
||||
print_local(
|
||||
get_ith_path(
|
||||
tab_index,
|
||||
find_matches(entries, [tab_needle])))
|
||||
find_matches(entries, [tab_needle]),
|
||||
),
|
||||
)
|
||||
else:
|
||||
print_local(first(chain(
|
||||
imap(attrgetter('path'), find_matches(entries, needles)),
|
||||
# always return a path to calling shell functions
|
||||
['.'])))
|
||||
['.'],
|
||||
)))
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user