mirror of
https://github.com/wting/autojump
synced 2024-10-27 20:34:07 +00:00
adding option to decrease weight
added a new option, -d/--decrease to decrease the weight of a path. added --increase as an alias to --add for symetry.
This commit is contained in:
parent
0a87804277
commit
b8901586cb
23
bin/autojump
23
bin/autojump
@ -83,7 +83,7 @@ class Database:
|
||||
|
||||
def add(self, path, increment = 10):
|
||||
"""
|
||||
Increment existing paths or initialize new ones to 10.
|
||||
Increase wheight of existing paths or initialize new ones to 10.
|
||||
"""
|
||||
if path not in self.data:
|
||||
self.data[path] = increment
|
||||
@ -92,6 +92,15 @@ class Database:
|
||||
self.data[path] = math.sqrt((self.data[path]**2)+(increment**2))
|
||||
self.save()
|
||||
|
||||
def decrease(self, path, increment=10):
|
||||
"""
|
||||
Decrease wheight of existing path. Unknown ones are ignored.
|
||||
"""
|
||||
if path in self.data:
|
||||
import math
|
||||
self.data[path] = math.sqrt((self.data[path] ** 2) - (increment ** 2))
|
||||
self.save()
|
||||
|
||||
def decay(self):
|
||||
"""
|
||||
Decay database entries.
|
||||
@ -221,8 +230,10 @@ def options():
|
||||
epilog="Please see autojump(1) man pages for full documentation.")
|
||||
parser.add_argument('directory', metavar='DIR', nargs='*', default='',
|
||||
help='directory to jump to')
|
||||
parser.add_argument('-a', '--add', metavar='DIR',
|
||||
help='manually add path to database')
|
||||
parser.add_argument('-a', '--add', '--increase', metavar='DIR',
|
||||
help='manually add path to database, or increase path weight for existing paths')
|
||||
parser.add_argument('-d', '--decrease', metavar='DIR',
|
||||
help='manually decrease path weight in the database')
|
||||
parser.add_argument('-b', '--bash', action="store_true", default=False,
|
||||
help='enclose directory quotes to prevent errors')
|
||||
parser.add_argument('--complete', action="store_true", default=False,
|
||||
@ -243,6 +254,12 @@ def options():
|
||||
db.add(decode(ARGS.add))
|
||||
return True
|
||||
|
||||
if (ARGS.decrease):
|
||||
if(ARGS.decrease != os.path.expanduser("~")):
|
||||
db = Database(DB_FILE)
|
||||
db.decrease(ARGS.decrease)
|
||||
return True
|
||||
|
||||
if (ARGS.purge):
|
||||
db = Database(DB_FILE)
|
||||
removed = db.purge()
|
||||
|
@ -53,6 +53,15 @@ class TestAutojump(unittest.TestCase):
|
||||
self.db.add('/2', 10)
|
||||
self.assertEqual(self.db.get_weight('/2'), 14.142135623730951)
|
||||
|
||||
def test_db_decrease(self):
|
||||
self.db.add('/1', 100)
|
||||
self.db.decrease('/a', 42)
|
||||
self.assertTrue(self.db.get_weight('/a') < 100)
|
||||
self.db.add('/2', 100)
|
||||
self.db.add('/2', 42)
|
||||
self.db.decrease('/2', 42)
|
||||
self.assertEquals(self.db.get_weight('/2'), 100)
|
||||
|
||||
def test_db_get_weight(self):
|
||||
self.assertEqual(self.db.get_weight('/'), 0)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user