mirror of
https://github.com/davidhalter/jedi.git
synced 2026-05-06 21:23:58 +08:00
Fix file path completions
This commit is contained in:
+11
-7
@@ -789,6 +789,13 @@ def _os_path_join(args_set, callback):
|
||||
return callback()
|
||||
|
||||
|
||||
_path_overrides = {
|
||||
'dirname': _create_string_input_function(os.path.dirname),
|
||||
'abspath': _create_string_input_function(os.path.abspath),
|
||||
'relpath': _create_string_input_function(os.path.relpath),
|
||||
'join': _os_path_join,
|
||||
}
|
||||
|
||||
_implemented = {
|
||||
'builtins': {
|
||||
'getattr': builtins_getattr,
|
||||
@@ -851,12 +858,8 @@ _implemented = {
|
||||
# For now this works at least better than Jedi trying to understand it.
|
||||
'dataclass': _dataclass
|
||||
},
|
||||
'os.path': {
|
||||
'dirname': _create_string_input_function(os.path.dirname),
|
||||
'abspath': _create_string_input_function(os.path.abspath),
|
||||
'relpath': _create_string_input_function(os.path.relpath),
|
||||
'join': _os_path_join,
|
||||
}
|
||||
'posixpath': _path_overrides,
|
||||
'ntpath': _path_overrides,
|
||||
}
|
||||
|
||||
|
||||
@@ -908,7 +911,8 @@ class EnumInstance(LazyValueWrapper):
|
||||
|
||||
def tree_name_to_values(func):
|
||||
def wrapper(inference_state, context, tree_name):
|
||||
if tree_name.value == 'sep' and context.is_module() and context.py__name__() == 'os.path':
|
||||
if tree_name.value == 'sep' \
|
||||
and context.is_module() and context.py__name__() in ('posixpath', 'ntpath'):
|
||||
return ValueSet({
|
||||
compiled.create_simple_object(inference_state, os.path.sep),
|
||||
})
|
||||
|
||||
@@ -210,9 +210,10 @@ def test_chained_calls(Script):
|
||||
def test_return(Script):
|
||||
source = dedent('''
|
||||
def foo():
|
||||
return '.'.join()''')
|
||||
return (1).conjugate()''')
|
||||
|
||||
assert_signature(Script, source, 'join', 0, column=len(" return '.'.join("))
|
||||
assert_signature(
|
||||
Script, source, 'conjugate', expected_index=None, column=len(" return (1).conjugate("))
|
||||
|
||||
|
||||
def test_find_signature_on_module(Script):
|
||||
@@ -249,9 +250,9 @@ def test_complex(Script, environment):
|
||||
# Do these checks just for Python 3, I'm too lazy to deal with this
|
||||
# legacy stuff. ~ dave.
|
||||
assert get_signature(func1.tree_node) \
|
||||
== 'compile(pattern: AnyStr, flags: _FlagsType = ...) -> Pattern[AnyStr]'
|
||||
== 'compile(pattern: AnyStr, flags: _FlagsType = 0) -> Pattern[AnyStr]'
|
||||
assert get_signature(func2.tree_node) \
|
||||
== 'compile(pattern: Pattern[AnyStr], flags: _FlagsType = ...) ->\nPattern[AnyStr]'
|
||||
== 'compile(pattern: Pattern[AnyStr], flags: _FlagsType = 0) ->\nPattern[AnyStr]'
|
||||
|
||||
# jedi-vim #70
|
||||
s = """def foo("""
|
||||
|
||||
Reference in New Issue
Block a user