Skip to content

Commit 14aa358

Browse files
committed
Ropemode updated to version 0.2.0.
1 parent 441d199 commit 14aa358

File tree

7 files changed

+51
-100
lines changed

7 files changed

+51
-100
lines changed

pylibs/ropemode/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
"""ropemode, a helper for using rope refactoring library in IDEs"""
22

33
INFO = __doc__
4-
VERSION = '0.1-rc2'
4+
VERSION = '0.2'
55
COPYRIGHT = """\
6-
Copyright (C) 2007-2008 Ali Gholami Rudi
6+
Copyright (C) 2007-2012 Ali Gholami Rudi
77
88
This program is free software; you can redistribute it and/or modify it
99
under the terms of GNU General Public License as published by the

pylibs/ropemode/decorators.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ def _show(self, message):
2020
else:
2121
self.message(message)
2222

23-
2423
logger = Logger()
2524

2625

@@ -48,7 +47,6 @@ def lispfunction(func):
4847
exceptions.ModuleSyntaxError,
4948
exceptions.BadIdentifierError)
5049

51-
5250
def _exception_handler(func):
5351
def newfunc(*args, **kwds):
5452
try:
@@ -62,11 +60,9 @@ def newfunc(*args, **kwds):
6260
newfunc.__doc__ = func.__doc__
6361
return newfunc
6462

65-
6663
def _exception_message(e):
6764
return '%s: %s' % (e.__class__.__name__, str(e))
6865

69-
7066
def rope_hook(hook):
7167
def decorator(func):
7268
func = lisphook(func)

pylibs/ropemode/dialog.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ def __init__(self, prompt=None, default=False):
2020
Data.__init__(self, prompt, self._encode(default),
2121
[self._encode(True), self._encode(False)])
2222

23-
@staticmethod
24-
def _encode(value):
23+
def _encode(self, value):
2524
if value:
2625
return 'yes'
2726
return 'no'
@@ -32,19 +31,11 @@ def decode(self, value):
3231
return False
3332

3433

35-
def show_dialog(askdata, actions, confs=None, optionals=None, initial_asking=True):
34+
def show_dialog(askdata, actions, confs={}, optionals={}, initial_asking=True):
3635
result = {}
37-
38-
if confs is None:
39-
confs = dict()
40-
41-
if optionals is None:
42-
optionals = dict()
43-
4436
if initial_asking:
4537
for name, conf in confs.items():
4638
result[name] = askdata(conf)
47-
4839
actions.append('batchset')
4940
names = list(actions)
5041
names.extend(optionals.keys())
@@ -95,8 +86,9 @@ def _parse_batchset(sets):
9586
else:
9687
if not line.strip():
9788
continue
98-
multiline = False
89+
multiline= False
9990
tokens = line.split(None, 1)
91+
value = ''
10092
if len(tokens) > 1:
10193
result.append([tokens[0], tokens[1].rstrip('\r\n')])
10294
else:

pylibs/ropemode/environment.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def filenames(self):
5757
def save_files(self, filenames):
5858
pass
5959

60-
def reload_files(self, filenames, moves=None):
60+
def reload_files(self, filenames, moves={}):
6161
pass
6262

6363
def find_file(self, filename, readonly=False, other=False):
@@ -96,9 +96,9 @@ def global_command(self, name, callback, key=None, prefix=False):
9696
def add_hook(self, name, callback, hook):
9797
pass
9898

99-
@staticmethod
100-
def _completion_text(proposal):
101-
return proposal.name.partition(':')[0].strip()
99+
def _completion_text(self, proposal):
100+
return proposal.name
102101

103102
def _completion_data(self, proposal):
104103
return self._completion_text(proposal)
104+

pylibs/ropemode/filter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def resources(project, rules):
1010
exclusion.
1111
1212
"""
13-
all_files = set(project.pycore.get_python_files())
13+
all = set(project.pycore.get_python_files())
1414
files = None
1515
for line in rules.splitlines():
1616
if not line.strip():
@@ -23,7 +23,7 @@ def resources(project, rules):
2323
except exceptions.ResourceNotFoundError:
2424
continue
2525
if resource.is_folder():
26-
matches = set(filter(resource.contains, all_files))
26+
matches = set(filter(lambda item: resource.contains(item), all))
2727
else:
2828
matches = set([resource])
2929
if first == '+':
@@ -32,8 +32,8 @@ def resources(project, rules):
3232
files.update(matches)
3333
if first == '-':
3434
if files is None:
35-
files = set(all_files)
35+
files = set(all)
3636
files -= matches
3737
if files is None:
38-
return all_files
38+
return all
3939
return files

pylibs/ropemode/interface.py

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,8 @@ def open_project(self, root=None):
9191
if not self.env.y_or_n('Project not exists in %s, create one?' % root):
9292
self.env.message("Project creation aborted")
9393
return
94-
9594
progress = self.env.create_progress('Opening [%s] project' % root)
9695
self.project = rope.base.project.Project(root)
97-
9896
if self.env.get('enable_autoimport'):
9997
underlined = self.env.get('autoimport_underlineds')
10098
self.autoimport = autoimport.AutoImport(self.project,
@@ -182,21 +180,24 @@ def _base_definition_location(self):
182180
@decorators.local_command('a d', 'P', 'C-c d')
183181
def show_doc(self, prefix):
184182
self._check_project()
185-
self._base_show_doc(prefix, codeassist.get_doc)
183+
self._base_show_doc(prefix, self._base_get_doc(codeassist.get_doc))
186184

187-
@decorators.local_command('a c', 'P')
188-
def show_calltip(self, prefix):
185+
@decorators.local_command()
186+
def get_calltip(self):
189187
self._check_project()
190188
def _get_doc(project, text, offset, *args, **kwds):
191189
try:
192190
offset = text.rindex('(', 0, offset) - 1
193191
except ValueError:
194192
return None
195193
return codeassist.get_calltip(project, text, offset, *args, **kwds)
196-
self._base_show_doc(prefix, _get_doc)
194+
return self._base_get_doc(_get_doc)
197195

198-
def _base_show_doc(self, prefix, get_doc):
199-
docs = self._base_get_doc(get_doc)
196+
@decorators.local_command('a c', 'P')
197+
def show_calltip(self, prefix):
198+
self._base_show_doc(prefix, self.get_calltip())
199+
200+
def _base_show_doc(self, prefix, docs):
200201
if docs:
201202
self.env.show_doc(docs, prefix)
202203
else:
@@ -302,31 +303,29 @@ def _check_autoimport(self):
302303

303304
@decorators.global_command('g')
304305
def generate_autoimport_cache(self):
305-
306306
if not self._check_autoimport():
307307
return
308-
309308
modules = self.env.get('autoimport_modules')
310309
modules = [ m if isinstance(m, basestring) else m.value() for m in modules ]
311310

312-
def gen(handle):
311+
def generate(handle):
313312
self.autoimport.generate_cache(task_handle=handle)
314313
self.autoimport.generate_modules_cache(modules, task_handle=handle)
315314

316-
refactor.runtask(self.env, gen, 'Generate autoimport cache')
315+
refactor.runtask(self.env, generate, 'Generate autoimport cache')
317316
self.write_project()
318317

319318
@decorators.global_command('f', 'P')
320319
def find_file(self, prefix):
321-
f = self._base_find_file(prefix)
322-
if f is not None:
323-
self.env.find_file(f.real_path)
320+
file = self._base_find_file(prefix)
321+
if file is not None:
322+
self.env.find_file(file.real_path)
324323

325324
@decorators.global_command('4 f', 'P')
326325
def find_file_other_window(self, prefix):
327-
f = self._base_find_file(prefix)
328-
if f is not None:
329-
self.env.find_file(f.real_path, other=True)
326+
file = self._base_find_file(prefix)
327+
if file is not None:
328+
self.env.find_file(file.real_path, other=True)
330329

331330
def _base_find_file(self, prefix):
332331
self._check_project()
@@ -338,14 +337,14 @@ def _base_find_file(self, prefix):
338337

339338
def _ask_file(self, files):
340339
names = []
341-
for f in files:
342-
names.append('<'.join(reversed(f.path.split('/'))))
340+
for file in files:
341+
names.append('<'.join(reversed(file.path.split('/'))))
343342
result = self.env.ask_values('Rope Find File: ', names)
344343
if result is not None:
345344
path = '/'.join(reversed(result.split('<')))
346-
f = self.project.get_file(path)
347-
return f
348-
self.env.message('No f selected')
345+
file = self.project.get_file(path)
346+
return file
347+
self.env.message('No file selected')
349348

350349
@decorators.local_command('a j')
351350
def jump_to_global(self):
@@ -464,6 +463,13 @@ def resource(self):
464463
if resource and resource.exists():
465464
return resource
466465

466+
@decorators.global_command()
467+
def get_project_root(self):
468+
if self.project is not None:
469+
return self.project.root.real_path
470+
else:
471+
return None
472+
467473
def _check_project(self):
468474
if self.project is None:
469475
if self.env.get('guess_project'):
@@ -490,12 +496,10 @@ def _reload_buffers(self, changes, undo=False):
490496
changes.get_changed_resources(),
491497
self._get_moved_resources(changes, undo))
492498

493-
def _reload_buffers_for_changes(self, changed, moved=None):
494-
if moved is None:
495-
moved = dict()
496-
499+
def _reload_buffers_for_changes(self, changed, moved={}):
497500
filenames = [resource.real_path for resource in changed]
498-
moved = dict((resource.real_path, moved[resource].real_path) for resource in moved)
501+
moved = dict([(resource.real_path, moved[resource].real_path)
502+
for resource in moved])
499503
self.env.reload_files(filenames, moved)
500504

501505
def _get_moved_resources(self, changes, undo=False):
@@ -595,7 +599,6 @@ def lucky_assist(self, prefix):
595599
self._apply_assist(result)
596600

597601
def auto_import(self):
598-
599602
if not self.interface._check_autoimport():
600603
return
601604

@@ -604,7 +607,6 @@ def auto_import(self):
604607

605608
name = self.env.current_word()
606609
modules = self.autoimport.get_modules(name)
607-
608610
if modules:
609611
if len(modules) == 1:
610612
module = modules[0]
@@ -644,7 +646,7 @@ def _calculate_proposals(self):
644646
proposals = codeassist.code_assist(
645647
self.interface.project, self.source, self.offset,
646648
resource, maxfixes=maxfixes)
647-
if self.env.get('sorted_completions'):
649+
if self.env.get('sorted_completions', True):
648650
proposals = codeassist.sorted_proposals(proposals)
649651
if self.autoimport is not None:
650652
if self.starting.strip() and '.' not in self.expression:

0 commit comments

Comments
 (0)